Workflow

class Workflow : KotlinCustomResource

Resource representation of a workflow Uses Azure REST API version 2022-10-11-preview. In version 1.x of the Azure Native provider, it used API version 2022-04-01-preview. Other available API versions: 2023-08-01, 2024-05-01-preview, 2024-08-01-preview, 2025-03-01-preview.

Example Usage

Create Workflow

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var workflow = new AzureNative.DevHub.Workflow("workflow", new()
{
Acr = new AzureNative.DevHub.Inputs.ACRArgs
{
AcrRegistryName = "registry1",
AcrRepositoryName = "repo1",
AcrResourceGroup = "resourceGroup1",
AcrSubscriptionId = "subscriptionId1",
},
AksResourceId = "/subscriptions/subscriptionId1/resourcegroups/resourceGroup1/providers/Microsoft.ContainerService/managedClusters/cluster1",
BranchName = "branch1",
DeploymentProperties = new AzureNative.DevHub.Inputs.DeploymentPropertiesArgs
{
KubeManifestLocations = new[]
{
"/src/manifests/",
},
ManifestType = AzureNative.DevHub.ManifestType.Kube,
Overrides =
{
{ "key1", "value1" },
},
},
DockerBuildContext = "repo1/src/",
Dockerfile = "repo1/images/Dockerfile",
Location = "location1",
Namespace = "namespace1",
OidcCredentials = new AzureNative.DevHub.Inputs.GitHubWorkflowProfileOidcCredentialsArgs
{
AzureClientId = "12345678-3456-7890-5678-012345678901",
AzureTenantId = "66666666-3456-7890-5678-012345678901",
},
RepositoryName = "repo1",
RepositoryOwner = "owner1",
ResourceGroupName = "resourceGroup1",
Tags =
{
{ "appname", "testApp" },
},
WorkflowName = "workflow1",
});
});
package main
import (
devhub "github.com/pulumi/pulumi-azure-native-sdk/devhub/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := devhub.NewWorkflow(ctx, "workflow", &devhub.WorkflowArgs{
Acr: &devhub.ACRArgs{
AcrRegistryName: pulumi.String("registry1"),
AcrRepositoryName: pulumi.String("repo1"),
AcrResourceGroup: pulumi.String("resourceGroup1"),
AcrSubscriptionId: pulumi.String("subscriptionId1"),
},
AksResourceId: pulumi.String("/subscriptions/subscriptionId1/resourcegroups/resourceGroup1/providers/Microsoft.ContainerService/managedClusters/cluster1"),
BranchName: pulumi.String("branch1"),
DeploymentProperties: &devhub.DeploymentPropertiesArgs{
KubeManifestLocations: pulumi.StringArray{
pulumi.String("/src/manifests/"),
},
ManifestType: pulumi.String(devhub.ManifestTypeKube),
Overrides: pulumi.StringMap{
"key1": pulumi.String("value1"),
},
},
DockerBuildContext: pulumi.String("repo1/src/"),
Dockerfile: pulumi.String("repo1/images/Dockerfile"),
Location: pulumi.String("location1"),
Namespace: pulumi.String("namespace1"),
OidcCredentials: &devhub.GitHubWorkflowProfileOidcCredentialsArgs{
AzureClientId: pulumi.String("12345678-3456-7890-5678-012345678901"),
AzureTenantId: pulumi.String("66666666-3456-7890-5678-012345678901"),
},
RepositoryName: pulumi.String("repo1"),
RepositoryOwner: pulumi.String("owner1"),
ResourceGroupName: pulumi.String("resourceGroup1"),
Tags: pulumi.StringMap{
"appname": pulumi.String("testApp"),
},
WorkflowName: pulumi.String("workflow1"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.devhub.Workflow;
import com.pulumi.azurenative.devhub.WorkflowArgs;
import com.pulumi.azurenative.devhub.inputs.ACRArgs;
import com.pulumi.azurenative.devhub.inputs.DeploymentPropertiesArgs;
import com.pulumi.azurenative.devhub.inputs.GitHubWorkflowProfileOidcCredentialsArgs;
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()
.acr(ACRArgs.builder()
.acrRegistryName("registry1")
.acrRepositoryName("repo1")
.acrResourceGroup("resourceGroup1")
.acrSubscriptionId("subscriptionId1")
.build())
.aksResourceId("/subscriptions/subscriptionId1/resourcegroups/resourceGroup1/providers/Microsoft.ContainerService/managedClusters/cluster1")
.branchName("branch1")
.deploymentProperties(DeploymentPropertiesArgs.builder()
.kubeManifestLocations("/src/manifests/")
.manifestType("kube")
.overrides(Map.of("key1", "value1"))
.build())
.dockerBuildContext("repo1/src/")
.dockerfile("repo1/images/Dockerfile")
.location("location1")
.namespace("namespace1")
.oidcCredentials(GitHubWorkflowProfileOidcCredentialsArgs.builder()
.azureClientId("12345678-3456-7890-5678-012345678901")
.azureTenantId("66666666-3456-7890-5678-012345678901")
.build())
.repositoryName("repo1")
.repositoryOwner("owner1")
.resourceGroupName("resourceGroup1")
.tags(Map.of("appname", "testApp"))
.workflowName("workflow1")
.build());
}
}

Create Workflow With Artifact Generation

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var workflow = new AzureNative.DevHub.Workflow("workflow", new()
{
Acr = new AzureNative.DevHub.Inputs.ACRArgs
{
AcrRegistryName = "registry1",
AcrRepositoryName = "repo1",
AcrResourceGroup = "resourceGroup1",
AcrSubscriptionId = "subscriptionId1",
},
AksResourceId = "/subscriptions/subscriptionId1/resourcegroups/resourceGroup1/providers/Microsoft.ContainerService/managedClusters/cluster1",
AppName = "my-app",
BranchName = "branch1",
DeploymentProperties = new AzureNative.DevHub.Inputs.DeploymentPropertiesArgs
{
KubeManifestLocations = new[]
{
"/src/manifests/",
},
ManifestType = AzureNative.DevHub.ManifestType.Kube,
Overrides =
{
{ "key1", "value1" },
},
},
DockerBuildContext = "repo1/src/",
Dockerfile = "repo1/images/Dockerfile",
DockerfileGenerationMode = AzureNative.DevHub.DockerfileGenerationMode.Enabled,
DockerfileOutputDirectory = "./",
GenerationLanguage = AzureNative.DevHub.GenerationLanguage.Javascript,
ImageName = "myimage",
ImageTag = "latest",
LanguageVersion = "14",
Location = "location1",
ManifestGenerationMode = AzureNative.DevHub.ManifestGenerationMode.Enabled,
ManifestOutputDirectory = "./",
ManifestType = AzureNative.DevHub.GenerationManifestType.Kube,
OidcCredentials = new AzureNative.DevHub.Inputs.GitHubWorkflowProfileOidcCredentialsArgs
{
AzureClientId = "12345678-3456-7890-5678-012345678901",
AzureTenantId = "66666666-3456-7890-5678-012345678901",
},
Port = "80",
RepositoryName = "repo1",
RepositoryOwner = "owner1",
ResourceGroupName = "resourceGroup1",
Tags =
{
{ "appname", "testApp" },
},
WorkflowName = "workflow1",
});
});
package main
import (
devhub "github.com/pulumi/pulumi-azure-native-sdk/devhub/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := devhub.NewWorkflow(ctx, "workflow", &devhub.WorkflowArgs{
Acr: &devhub.ACRArgs{
AcrRegistryName: pulumi.String("registry1"),
AcrRepositoryName: pulumi.String("repo1"),
AcrResourceGroup: pulumi.String("resourceGroup1"),
AcrSubscriptionId: pulumi.String("subscriptionId1"),
},
AksResourceId: pulumi.String("/subscriptions/subscriptionId1/resourcegroups/resourceGroup1/providers/Microsoft.ContainerService/managedClusters/cluster1"),
AppName: pulumi.String("my-app"),
BranchName: pulumi.String("branch1"),
DeploymentProperties: &devhub.DeploymentPropertiesArgs{
KubeManifestLocations: pulumi.StringArray{
pulumi.String("/src/manifests/"),
},
ManifestType: pulumi.String(devhub.ManifestTypeKube),
Overrides: pulumi.StringMap{
"key1": pulumi.String("value1"),
},
},
DockerBuildContext: pulumi.String("repo1/src/"),
Dockerfile: pulumi.String("repo1/images/Dockerfile"),
DockerfileGenerationMode: pulumi.String(devhub.DockerfileGenerationModeEnabled),
DockerfileOutputDirectory: pulumi.String("./"),
GenerationLanguage: pulumi.String(devhub.GenerationLanguageJavascript),
ImageName: pulumi.String("myimage"),
ImageTag: pulumi.String("latest"),
LanguageVersion: pulumi.String("14"),
Location: pulumi.String("location1"),
ManifestGenerationMode: pulumi.String(devhub.ManifestGenerationModeEnabled),
ManifestOutputDirectory: pulumi.String("./"),
ManifestType: pulumi.String(devhub.GenerationManifestTypeKube),
OidcCredentials: &devhub.GitHubWorkflowProfileOidcCredentialsArgs{
AzureClientId: pulumi.String("12345678-3456-7890-5678-012345678901"),
AzureTenantId: pulumi.String("66666666-3456-7890-5678-012345678901"),
},
Port: pulumi.String("80"),
RepositoryName: pulumi.String("repo1"),
RepositoryOwner: pulumi.String("owner1"),
ResourceGroupName: pulumi.String("resourceGroup1"),
Tags: pulumi.StringMap{
"appname": pulumi.String("testApp"),
},
WorkflowName: pulumi.String("workflow1"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.devhub.Workflow;
import com.pulumi.azurenative.devhub.WorkflowArgs;
import com.pulumi.azurenative.devhub.inputs.ACRArgs;
import com.pulumi.azurenative.devhub.inputs.DeploymentPropertiesArgs;
import com.pulumi.azurenative.devhub.inputs.GitHubWorkflowProfileOidcCredentialsArgs;
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()
.acr(ACRArgs.builder()
.acrRegistryName("registry1")
.acrRepositoryName("repo1")
.acrResourceGroup("resourceGroup1")
.acrSubscriptionId("subscriptionId1")
.build())
.aksResourceId("/subscriptions/subscriptionId1/resourcegroups/resourceGroup1/providers/Microsoft.ContainerService/managedClusters/cluster1")
.appName("my-app")
.branchName("branch1")
.deploymentProperties(DeploymentPropertiesArgs.builder()
.kubeManifestLocations("/src/manifests/")
.manifestType("kube")
.overrides(Map.of("key1", "value1"))
.build())
.dockerBuildContext("repo1/src/")
.dockerfile("repo1/images/Dockerfile")
.dockerfileGenerationMode("enabled")
.dockerfileOutputDirectory("./")
.generationLanguage("javascript")
.imageName("myimage")
.imageTag("latest")
.languageVersion("14")
.location("location1")
.manifestGenerationMode("enabled")
.manifestOutputDirectory("./")
.manifestType("kube")
.oidcCredentials(GitHubWorkflowProfileOidcCredentialsArgs.builder()
.azureClientId("12345678-3456-7890-5678-012345678901")
.azureTenantId("66666666-3456-7890-5678-012345678901")
.build())
.port("80")
.repositoryName("repo1")
.repositoryOwner("owner1")
.resourceGroupName("resourceGroup1")
.tags(Map.of("appname", "testApp"))
.workflowName("workflow1")
.build());
}
}

Import

An existing resource can be imported using its type token, name, and identifier, e.g.

$ pulumi import azure-native:devhub:Workflow workflow1 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevHub/workflows/{workflowName}

Properties

Link copied to clipboard
val acr: Output<ACRResponse>?

Information on the azure container registry

Link copied to clipboard
val aksResourceId: Output<String>?

The Azure Kubernetes Cluster Resource the application will be deployed to.

Link copied to clipboard
val appName: Output<String>?

The name of the app.

Link copied to clipboard
val authStatus: Output<String>

Determines the authorization status of requests.

Link copied to clipboard
val branchName: Output<String>?

Repository Branch Name

Link copied to clipboard
val builderVersion: Output<String>?

The version of the language image used for building the code in the generated dockerfile.

Link copied to clipboard

Path to Dockerfile Build Context within the repository.

Link copied to clipboard
val dockerfile: Output<String>?

Path to the Dockerfile within the repository.

Link copied to clipboard

The mode of generation to be used for generating Dockerfiles.

Link copied to clipboard

The directory to output the generated Dockerfile to.

Link copied to clipboard

The programming language used.

Link copied to clipboard
val id: Output<String>
Link copied to clipboard
val imageName: Output<String>?

The name of the image to be generated.

Link copied to clipboard
val imageTag: Output<String>?

The tag to apply to the generated image.

Link copied to clipboard
val languageVersion: Output<String>?

The version of the language image used for execution in the generated dockerfile.

Link copied to clipboard
Link copied to clipboard
val location: Output<String>

The geo-location where the resource lives

Link copied to clipboard

The mode of generation to be used for generating Manifest.

Link copied to clipboard

The directory to output the generated manifests to.

Link copied to clipboard
val manifestType: Output<String>?

Determines the type of manifests to be generated.

Link copied to clipboard
val name: Output<String>

The name of the resource

Link copied to clipboard
val namespace: Output<String>?

Kubernetes namespace the application is deployed to.

Link copied to clipboard

The fields needed for OIDC with GitHub.

Link copied to clipboard
val port: Output<String>?

The port the application is exposed on.

Link copied to clipboard
val prStatus: Output<String>

The status of the Pull Request submitted against the users repository.

Link copied to clipboard
val prURL: Output<String>

The URL to the Pull Request submitted against the users repository.

Link copied to clipboard
val pullNumber: Output<Int>

The number associated with the submitted pull request.

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val repositoryName: Output<String>?

Repository Name

Link copied to clipboard
val repositoryOwner: Output<String>?

Repository Owner

Link copied to clipboard

Azure Resource Manager metadata containing createdBy and modifiedBy information.

Link copied to clipboard
val tags: Output<Map<String, String>>?

Resource tags.

Link copied to clipboard
val type: Output<String>

The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"

Link copied to clipboard
val urn: Output<String>