BitbucketServerConfig class

BitbucketServerConfig represents the configuration for a Bitbucket Server.

To get more information about BitbucketServerConfig, see:

Example Usage

Cloudbuild Bitbucket Server Config

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

const bbs_config = new gcp.cloudbuild.BitbucketServerConfig("bbs-config", {
    configId: "bbs-config",
    location: "us-central1",
    hostUri: "https://bbs.com",
    secrets: {
        adminAccessTokenVersionName: "projects/myProject/secrets/mybbspat/versions/1",
        readAccessTokenVersionName: "projects/myProject/secrets/mybbspat/versions/1",
        webhookSecretVersionName: "projects/myProject/secrets/mybbspat/versions/1",
    },
    username: "test",
    apiKey: "<api-key>",
});
import pulumi
import pulumi_gcp as gcp

bbs_config = gcp.cloudbuild.BitbucketServerConfig("bbs-config",
    config_id="bbs-config",
    location="us-central1",
    host_uri="https://bbs.com",
    secrets={
        "admin_access_token_version_name": "projects/myProject/secrets/mybbspat/versions/1",
        "read_access_token_version_name": "projects/myProject/secrets/mybbspat/versions/1",
        "webhook_secret_version_name": "projects/myProject/secrets/mybbspat/versions/1",
    },
    username="test",
    api_key="<api-key>")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() =>
{
    var bbs_config = new Gcp.CloudBuild.BitbucketServerConfig("bbs-config", new()
    {
        ConfigId = "bbs-config",
        Location = "us-central1",
        HostUri = "https://bbs.com",
        Secrets = new Gcp.CloudBuild.Inputs.BitbucketServerConfigSecretsArgs
        {
            AdminAccessTokenVersionName = "projects/myProject/secrets/mybbspat/versions/1",
            ReadAccessTokenVersionName = "projects/myProject/secrets/mybbspat/versions/1",
            WebhookSecretVersionName = "projects/myProject/secrets/mybbspat/versions/1",
        },
        Username = "test",
        ApiKey = "<api-key>",
    });

});
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/cloudbuild"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := cloudbuild.NewBitbucketServerConfig(ctx, "bbs-config", &cloudbuild.BitbucketServerConfigArgs{
			ConfigId: pulumi.String("bbs-config"),
			Location: pulumi.String("us-central1"),
			HostUri:  pulumi.String("https://bbs.com"),
			Secrets: &cloudbuild.BitbucketServerConfigSecretsArgs{
				AdminAccessTokenVersionName: pulumi.String("projects/myProject/secrets/mybbspat/versions/1"),
				ReadAccessTokenVersionName:  pulumi.String("projects/myProject/secrets/mybbspat/versions/1"),
				WebhookSecretVersionName:    pulumi.String("projects/myProject/secrets/mybbspat/versions/1"),
			},
			Username: pulumi.String("test"),
			ApiKey:   pulumi.String("<api-key>"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
pulumi {
  required_providers {
    gcp = {
      source = "pulumi/gcp"
    }
  }
}

resource "gcp_cloudbuild_bitbucketserverconfig" "bbs-config" {
  config_id = "bbs-config"
  location  = "us-central1"
  host_uri  = "https://bbs.com"
  secrets = {
    admin_access_token_version_name = "projects/myProject/secrets/mybbspat/versions/1"
    read_access_token_version_name  = "projects/myProject/secrets/mybbspat/versions/1"
    webhook_secret_version_name     = "projects/myProject/secrets/mybbspat/versions/1"
  }
  username = "test"
  api_key  = "<api-key>"
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.cloudbuild.BitbucketServerConfig;
import com.pulumi.gcp.cloudbuild.BitbucketServerConfigArgs;
import com.pulumi.gcp.cloudbuild.inputs.BitbucketServerConfigSecretsArgs;
import java.util.ArrayList;
import java.util.Arrays;
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 bbs_config = new BitbucketServerConfig("bbs-config", BitbucketServerConfigArgs.builder()
            .configId("bbs-config")
            .location("us-central1")
            .hostUri("https://bbs.com")
            .secrets(BitbucketServerConfigSecretsArgs.builder()
                .adminAccessTokenVersionName("projects/myProject/secrets/mybbspat/versions/1")
                .readAccessTokenVersionName("projects/myProject/secrets/mybbspat/versions/1")
                .webhookSecretVersionName("projects/myProject/secrets/mybbspat/versions/1")
                .build())
            .username("test")
            .apiKey("<api-key>")
            .build());

    }
}
resources:
  bbs-config:
    type: gcp:cloudbuild:BitbucketServerConfig
    properties:
      configId: bbs-config
      location: us-central1
      hostUri: https://bbs.com
      secrets:
        adminAccessTokenVersionName: projects/myProject/secrets/mybbspat/versions/1
        readAccessTokenVersionName: projects/myProject/secrets/mybbspat/versions/1
        webhookSecretVersionName: projects/myProject/secrets/mybbspat/versions/1
      username: test
      apiKey: <api-key>

Cloudbuild Bitbucket Server Config Repositories

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

const bbs_config_with_repos = new gcp.cloudbuild.BitbucketServerConfig("bbs-config-with-repos", {
    configId: "bbs-config",
    location: "us-central1",
    hostUri: "https://bbs.com",
    secrets: {
        adminAccessTokenVersionName: "projects/myProject/secrets/mybbspat/versions/1",
        readAccessTokenVersionName: "projects/myProject/secrets/mybbspat/versions/1",
        webhookSecretVersionName: "projects/myProject/secrets/mybbspat/versions/1",
    },
    username: "test",
    apiKey: "<api-key>",
    connectedRepositories: [
        {
            projectKey: "DEV",
            repoSlug: "repo1",
        },
        {
            projectKey: "PROD",
            repoSlug: "repo1",
        },
    ],
});
import pulumi
import pulumi_gcp as gcp

bbs_config_with_repos = gcp.cloudbuild.BitbucketServerConfig("bbs-config-with-repos",
    config_id="bbs-config",
    location="us-central1",
    host_uri="https://bbs.com",
    secrets={
        "admin_access_token_version_name": "projects/myProject/secrets/mybbspat/versions/1",
        "read_access_token_version_name": "projects/myProject/secrets/mybbspat/versions/1",
        "webhook_secret_version_name": "projects/myProject/secrets/mybbspat/versions/1",
    },
    username="test",
    api_key="<api-key>",
    connected_repositories=[
        {
            "project_key": "DEV",
            "repo_slug": "repo1",
        },
        {
            "project_key": "PROD",
            "repo_slug": "repo1",
        },
    ])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() =>
{
    var bbs_config_with_repos = new Gcp.CloudBuild.BitbucketServerConfig("bbs-config-with-repos", new()
    {
        ConfigId = "bbs-config",
        Location = "us-central1",
        HostUri = "https://bbs.com",
        Secrets = new Gcp.CloudBuild.Inputs.BitbucketServerConfigSecretsArgs
        {
            AdminAccessTokenVersionName = "projects/myProject/secrets/mybbspat/versions/1",
            ReadAccessTokenVersionName = "projects/myProject/secrets/mybbspat/versions/1",
            WebhookSecretVersionName = "projects/myProject/secrets/mybbspat/versions/1",
        },
        Username = "test",
        ApiKey = "<api-key>",
        ConnectedRepositories = new[]
        {
            new Gcp.CloudBuild.Inputs.BitbucketServerConfigConnectedRepositoryArgs
            {
                ProjectKey = "DEV",
                RepoSlug = "repo1",
            },
            new Gcp.CloudBuild.Inputs.BitbucketServerConfigConnectedRepositoryArgs
            {
                ProjectKey = "PROD",
                RepoSlug = "repo1",
            },
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/cloudbuild"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := cloudbuild.NewBitbucketServerConfig(ctx, "bbs-config-with-repos", &cloudbuild.BitbucketServerConfigArgs{
			ConfigId: pulumi.String("bbs-config"),
			Location: pulumi.String("us-central1"),
			HostUri:  pulumi.String("https://bbs.com"),
			Secrets: &cloudbuild.BitbucketServerConfigSecretsArgs{
				AdminAccessTokenVersionName: pulumi.String("projects/myProject/secrets/mybbspat/versions/1"),
				ReadAccessTokenVersionName:  pulumi.String("projects/myProject/secrets/mybbspat/versions/1"),
				WebhookSecretVersionName:    pulumi.String("projects/myProject/secrets/mybbspat/versions/1"),
			},
			Username: pulumi.String("test"),
			ApiKey:   pulumi.String("<api-key>"),
			ConnectedRepositories: cloudbuild.BitbucketServerConfigConnectedRepositoryArray{
				&cloudbuild.BitbucketServerConfigConnectedRepositoryArgs{
					ProjectKey: pulumi.String("DEV"),
					RepoSlug:   pulumi.String("repo1"),
				},
				&cloudbuild.BitbucketServerConfigConnectedRepositoryArgs{
					ProjectKey: pulumi.String("PROD"),
					RepoSlug:   pulumi.String("repo1"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
pulumi {
  required_providers {
    gcp = {
      source = "pulumi/gcp"
    }
  }
}

resource "gcp_cloudbuild_bitbucketserverconfig" "bbs-config-with-repos" {
  config_id = "bbs-config"
  location  = "us-central1"
  host_uri  = "https://bbs.com"
  secrets = {
    admin_access_token_version_name = "projects/myProject/secrets/mybbspat/versions/1"
    read_access_token_version_name  = "projects/myProject/secrets/mybbspat/versions/1"
    webhook_secret_version_name     = "projects/myProject/secrets/mybbspat/versions/1"
  }
  username = "test"
  api_key  = "<api-key>"
  connected_repositories {
    project_key = "DEV"
    repo_slug   = "repo1"
  }
  connected_repositories {
    project_key = "PROD"
    repo_slug   = "repo1"
  }
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.cloudbuild.BitbucketServerConfig;
import com.pulumi.gcp.cloudbuild.BitbucketServerConfigArgs;
import com.pulumi.gcp.cloudbuild.inputs.BitbucketServerConfigSecretsArgs;
import com.pulumi.gcp.cloudbuild.inputs.BitbucketServerConfigConnectedRepositoryArgs;
import java.util.ArrayList;
import java.util.Arrays;
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 bbs_config_with_repos = new BitbucketServerConfig("bbs-config-with-repos", BitbucketServerConfigArgs.builder()
            .configId("bbs-config")
            .location("us-central1")
            .hostUri("https://bbs.com")
            .secrets(BitbucketServerConfigSecretsArgs.builder()
                .adminAccessTokenVersionName("projects/myProject/secrets/mybbspat/versions/1")
                .readAccessTokenVersionName("projects/myProject/secrets/mybbspat/versions/1")
                .webhookSecretVersionName("projects/myProject/secrets/mybbspat/versions/1")
                .build())
            .username("test")
            .apiKey("<api-key>")
            .connectedRepositories(
                BitbucketServerConfigConnectedRepositoryArgs.builder()
                    .projectKey("DEV")
                    .repoSlug("repo1")
                    .build(),
                BitbucketServerConfigConnectedRepositoryArgs.builder()
                    .projectKey("PROD")
                    .repoSlug("repo1")
                    .build())
            .build());

    }
}
resources:
  bbs-config-with-repos:
    type: gcp:cloudbuild:BitbucketServerConfig
    properties:
      configId: bbs-config
      location: us-central1
      hostUri: https://bbs.com
      secrets:
        adminAccessTokenVersionName: projects/myProject/secrets/mybbspat/versions/1
        readAccessTokenVersionName: projects/myProject/secrets/mybbspat/versions/1
        webhookSecretVersionName: projects/myProject/secrets/mybbspat/versions/1
      username: test
      apiKey: <api-key>
      connectedRepositories:
        - projectKey: DEV
          repoSlug: repo1
        - projectKey: PROD
          repoSlug: repo1

Cloudbuild Bitbucket Server Config Peered Network

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

const project = gcp.organizations.getProject({});
const servicenetworking = new gcp.projects.Service("servicenetworking", {service: "servicenetworking.googleapis.com"});
const vpcNetwork = new gcp.compute.Network("vpc_network", {name: "vpc-network"}, {
    dependsOn: [servicenetworking],
});
const privateIpAlloc = new gcp.compute.GlobalAddress("private_ip_alloc", {
    name: "private-ip-alloc",
    purpose: "VPC_PEERING",
    addressType: "INTERNAL",
    prefixLength: 16,
    network: vpcNetwork.id,
});
const _default = new gcp.servicenetworking.Connection("default", {
    network: vpcNetwork.id,
    service: "servicenetworking.googleapis.com",
    reservedPeeringRanges: [privateIpAlloc.name],
}, {
    dependsOn: [servicenetworking],
});
const bbs_config_with_peered_network = new gcp.cloudbuild.BitbucketServerConfig("bbs-config-with-peered-network", {
    configId: "bbs-config",
    location: "us-central1",
    hostUri: "https://bbs.com",
    secrets: {
        adminAccessTokenVersionName: "projects/myProject/secrets/mybbspat/versions/1",
        readAccessTokenVersionName: "projects/myProject/secrets/mybbspat/versions/1",
        webhookSecretVersionName: "projects/myProject/secrets/mybbspat/versions/1",
    },
    username: "test",
    apiKey: "<api-key>",
    peeredNetwork: std.replaceOutput({
        text: vpcNetwork.id,
        search: project.then(project => project.name),
        replace: project.then(project => project.number),
    }).result,
    sslCa: `-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
`,
}, {
    dependsOn: [_default],
});
import pulumi
import pulumi_gcp as gcp
import pulumi_std as std

project = gcp.organizations.get_project()
servicenetworking = gcp.projects.Service("servicenetworking", service="servicenetworking.googleapis.com")
vpc_network = gcp.compute.Network("vpc_network", name="vpc-network",
opts = pulumi.ResourceOptions(depends_on=[servicenetworking]))
private_ip_alloc = gcp.compute.GlobalAddress("private_ip_alloc",
    name="private-ip-alloc",
    purpose="VPC_PEERING",
    address_type="INTERNAL",
    prefix_length=16,
    network=vpc_network.id)
default = gcp.servicenetworking.Connection("default",
    network=vpc_network.id,
    service="servicenetworking.googleapis.com",
    reserved_peering_ranges=[private_ip_alloc.name],
    opts = pulumi.ResourceOptions(depends_on=[servicenetworking]))
bbs_config_with_peered_network = gcp.cloudbuild.BitbucketServerConfig("bbs-config-with-peered-network",
    config_id="bbs-config",
    location="us-central1",
    host_uri="https://bbs.com",
    secrets={
        "admin_access_token_version_name": "projects/myProject/secrets/mybbspat/versions/1",
        "read_access_token_version_name": "projects/myProject/secrets/mybbspat/versions/1",
        "webhook_secret_version_name": "projects/myProject/secrets/mybbspat/versions/1",
    },
    username="test",
    api_key="<api-key>",
    peered_network=std.replace_output(text=vpc_network.id,
        search=project.name,
        replace=project.number).result,
    ssl_ca="""-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
""",
    opts = pulumi.ResourceOptions(depends_on=[default]))
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
using Std = Pulumi.Std;

return await Deployment.RunAsync(() =>
{
    var project = Gcp.Organizations.GetProject.Invoke();

    var servicenetworking = new Gcp.Projects.Service("servicenetworking", new()
    {
        ServiceName = "servicenetworking.googleapis.com",
    });

    var vpcNetwork = new Gcp.Compute.Network("vpc_network", new()
    {
        Name = "vpc-network",
    }, new CustomResourceOptions
    {
        DependsOn =
        {
            servicenetworking,
        },
    });

    var privateIpAlloc = new Gcp.Compute.GlobalAddress("private_ip_alloc", new()
    {
        Name = "private-ip-alloc",
        Purpose = "VPC_PEERING",
        AddressType = "INTERNAL",
        PrefixLength = 16,
        Network = vpcNetwork.Id,
    });

    var @default = new Gcp.ServiceNetworking.Connection("default", new()
    {
        Network = vpcNetwork.Id,
        Service = "servicenetworking.googleapis.com",
        ReservedPeeringRanges = new[]
        {
            privateIpAlloc.Name,
        },
    }, new CustomResourceOptions
    {
        DependsOn =
        {
            servicenetworking,
        },
    });

    var bbs_config_with_peered_network = new Gcp.CloudBuild.BitbucketServerConfig("bbs-config-with-peered-network", new()
    {
        ConfigId = "bbs-config",
        Location = "us-central1",
        HostUri = "https://bbs.com",
        Secrets = new Gcp.CloudBuild.Inputs.BitbucketServerConfigSecretsArgs
        {
            AdminAccessTokenVersionName = "projects/myProject/secrets/mybbspat/versions/1",
            ReadAccessTokenVersionName = "projects/myProject/secrets/mybbspat/versions/1",
            WebhookSecretVersionName = "projects/myProject/secrets/mybbspat/versions/1",
        },
        Username = "test",
        ApiKey = "<api-key>",
        PeeredNetwork = Std.Replace.Invoke(new()
        {
            Text = vpcNetwork.Id,
            Search = project.Apply(getProjectResult => getProjectResult.Name),
            Replace = project.Apply(getProjectResult => getProjectResult.Number),
        }).Apply(invoke => invoke.Result),
        SslCa = @"-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
",
    }, new CustomResourceOptions
    {
        DependsOn =
        {
            @default,
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/cloudbuild"
	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/compute"
	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/organizations"
	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/projects"
	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/servicenetworking"
	"github.com/pulumi/pulumi-std/sdk/go/std"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		project, err := organizations.LookupProject(ctx, &organizations.LookupProjectArgs{}, nil)
		if err != nil {
			return err
		}
		servicenetworking2, err := projects.NewService(ctx, "servicenetworking", &projects.ServiceArgs{
			Service: pulumi.String("servicenetworking.googleapis.com"),
		})
		if err != nil {
			return err
		}
		vpcNetwork, err := compute.NewNetwork(ctx, "vpc_network", &compute.NetworkArgs{
			Name: pulumi.String("vpc-network"),
		}, pulumi.DependsOn([]pulumi.Resource{
			servicenetworking2,
		}))
		if err != nil {
			return err
		}
		privateIpAlloc, err := compute.NewGlobalAddress(ctx, "private_ip_alloc", &compute.GlobalAddressArgs{
			Name:         pulumi.String("private-ip-alloc"),
			Purpose:      pulumi.String("VPC_PEERING"),
			AddressType:  pulumi.String("INTERNAL"),
			PrefixLength: pulumi.Int(16),
			Network:      vpcNetwork.ID().ToIDOutput().ToStringOutput(),
		})
		if err != nil {
			return err
		}
		_default, err := servicenetworking.NewConnection(ctx, "default", &servicenetworking.ConnectionArgs{
			Network: vpcNetwork.ID().ToIDOutput().ToStringOutput(),
			Service: pulumi.String("servicenetworking.googleapis.com"),
			ReservedPeeringRanges: pulumi.StringArray{
				privateIpAlloc.Name,
			},
		}, pulumi.DependsOn([]pulumi.Resource{
			servicenetworking2,
		}))
		if err != nil {
			return err
		}
		_, err = cloudbuild.NewBitbucketServerConfig(ctx, "bbs-config-with-peered-network", &cloudbuild.BitbucketServerConfigArgs{
			ConfigId: pulumi.String("bbs-config"),
			Location: pulumi.String("us-central1"),
			HostUri:  pulumi.String("https://bbs.com"),
			Secrets: &cloudbuild.BitbucketServerConfigSecretsArgs{
				AdminAccessTokenVersionName: pulumi.String("projects/myProject/secrets/mybbspat/versions/1"),
				ReadAccessTokenVersionName:  pulumi.String("projects/myProject/secrets/mybbspat/versions/1"),
				WebhookSecretVersionName:    pulumi.String("projects/myProject/secrets/mybbspat/versions/1"),
			},
			Username: pulumi.String("test"),
			ApiKey:   pulumi.String("<api-key>"),
			PeeredNetwork: std.ReplaceOutput(ctx, std.ReplaceOutputArgs{
				Text:    vpcNetwork.ID().ToIDOutput().ToStringOutput(),
				Search:  pulumi.String(project.Name),
				Replace: pulumi.String(project.Number),
			}, nil).Result(),
			SslCa: pulumi.String("-----BEGIN CERTIFICATE-----\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\n-----END CERTIFICATE-----\n"),
		}, pulumi.DependsOn([]pulumi.Resource{
			_default,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}
pulumi {
  required_providers {
    gcp = {
      source = "pulumi/gcp"
    }
    std = {
      source = "pulumi/std"
    }
  }
}

data "gcp_organizations_getproject" "project" {
}

resource "gcp_projects_service" "servicenetworking" {
  service = "servicenetworking.googleapis.com"
}
resource "gcp_compute_network" "vpc_network" {
  depends_on = [gcp_projects_service.servicenetworking]
  name       = "vpc-network"
}
resource "gcp_compute_globaladdress" "private_ip_alloc" {
  name          = "private-ip-alloc"
  purpose       = "VPC_PEERING"
  address_type  = "INTERNAL"
  prefix_length = 16
  network       = gcp_compute_network.vpc_network.id
}
resource "gcp_servicenetworking_connection" "default" {
  depends_on              = [gcp_projects_service.servicenetworking]
  network                 = gcp_compute_network.vpc_network.id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [gcp_compute_globaladdress.private_ip_alloc.name]
}
resource "gcp_cloudbuild_bitbucketserverconfig" "bbs-config-with-peered-network" {
  depends_on = [gcp_servicenetworking_connection.default]
  config_id  = "bbs-config"
  location   = "us-central1"
  host_uri   = "https://bbs.com"
  secrets = {
    admin_access_token_version_name = "projects/myProject/secrets/mybbspat/versions/1"
    read_access_token_version_name  = "projects/myProject/secrets/mybbspat/versions/1"
    webhook_secret_version_name     = "projects/myProject/secrets/mybbspat/versions/1"
  }
  username       = "test"
  api_key        = "<api-key>"
  peered_network = replace(gcp_compute_network.vpc_network.id, data.gcp_organizations_getproject.project.name, data.gcp_organizations_getproject.project.number)
  ssl_ca         = "-----BEGIN CERTIFICATE-----\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\n-----END CERTIFICATE-----\n"
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.organizations.OrganizationsFunctions;
import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
import com.pulumi.gcp.projects.Service;
import com.pulumi.gcp.projects.ServiceArgs;
import com.pulumi.gcp.compute.Network;
import com.pulumi.gcp.compute.NetworkArgs;
import com.pulumi.gcp.compute.GlobalAddress;
import com.pulumi.gcp.compute.GlobalAddressArgs;
import com.pulumi.gcp.servicenetworking.Connection;
import com.pulumi.gcp.servicenetworking.ConnectionArgs;
import com.pulumi.gcp.cloudbuild.BitbucketServerConfig;
import com.pulumi.gcp.cloudbuild.BitbucketServerConfigArgs;
import com.pulumi.gcp.cloudbuild.inputs.BitbucketServerConfigSecretsArgs;
import com.pulumi.std.StdFunctions;
import com.pulumi.std.inputs.ReplaceArgs;
import com.pulumi.resources.CustomResourceOptions;
import java.util.ArrayList;
import java.util.Arrays;
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) {
        final var project = OrganizationsFunctions.getProject(GetProjectArgs.builder()
            .build());

        var servicenetworking = new Service("servicenetworking", ServiceArgs.builder()
            .service("servicenetworking.googleapis.com")
            .build());

        var vpcNetwork = new Network("vpcNetwork", NetworkArgs.builder()
            .name("vpc-network")
            .build(), CustomResourceOptions.builder()
                .dependsOn(servicenetworking)
                .build());

        var privateIpAlloc = new GlobalAddress("privateIpAlloc", GlobalAddressArgs.builder()
            .name("private-ip-alloc")
            .purpose("VPC_PEERING")
            .addressType("INTERNAL")
            .prefixLength(16)
            .network(vpcNetwork.id())
            .build());

        var default_ = new Connection("default", ConnectionArgs.builder()
            .network(vpcNetwork.id())
            .service("servicenetworking.googleapis.com")
            .reservedPeeringRanges(privateIpAlloc.name())
            .build(), CustomResourceOptions.builder()
                .dependsOn(servicenetworking)
                .build());

        var bbs_config_with_peered_network = new BitbucketServerConfig("bbs-config-with-peered-network", BitbucketServerConfigArgs.builder()
            .configId("bbs-config")
            .location("us-central1")
            .hostUri("https://bbs.com")
            .secrets(BitbucketServerConfigSecretsArgs.builder()
                .adminAccessTokenVersionName("projects/myProject/secrets/mybbspat/versions/1")
                .readAccessTokenVersionName("projects/myProject/secrets/mybbspat/versions/1")
                .webhookSecretVersionName("projects/myProject/secrets/mybbspat/versions/1")
                .build())
            .username("test")
            .apiKey("<api-key>")
            .peeredNetwork(StdFunctions.replace(ReplaceArgs.builder()
                .text(vpcNetwork.id())
                .search(project.name())
                .replace(project.number())
                .build()).applyValue(_invoke -> _invoke.result()))
            .sslCa("""
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
            """)
            .build(), CustomResourceOptions.builder()
                .dependsOn(default_)
                .build());

    }
}
resources:
  servicenetworking:
    type: gcp:projects:Service
    properties:
      service: servicenetworking.googleapis.com
  vpcNetwork:
    type: gcp:compute:Network
    name: vpc_network
    properties:
      name: vpc-network
    options:
      dependsOn:
        - ${servicenetworking}
  privateIpAlloc:
    type: gcp:compute:GlobalAddress
    name: private_ip_alloc
    properties:
      name: private-ip-alloc
      purpose: VPC_PEERING
      addressType: INTERNAL
      prefixLength: 16
      network: ${vpcNetwork.id}
  default:
    type: gcp:servicenetworking:Connection
    properties:
      network: ${vpcNetwork.id}
      service: servicenetworking.googleapis.com
      reservedPeeringRanges:
        - ${privateIpAlloc.name}
    options:
      dependsOn:
        - ${servicenetworking}
  bbs-config-with-peered-network:
    type: gcp:cloudbuild:BitbucketServerConfig
    properties:
      configId: bbs-config
      location: us-central1
      hostUri: https://bbs.com
      secrets:
        adminAccessTokenVersionName: projects/myProject/secrets/mybbspat/versions/1
        readAccessTokenVersionName: projects/myProject/secrets/mybbspat/versions/1
        webhookSecretVersionName: projects/myProject/secrets/mybbspat/versions/1
      username: test
      apiKey: <api-key>
      peeredNetwork:
        fn::invoke:
          function: std:replace
          arguments:
            text: ${vpcNetwork.id}
            search: ${project.name}
            replace: ${project.number}
          return: result
      sslCa: |
        -----BEGIN CERTIFICATE-----
        -----END CERTIFICATE-----
        -----BEGIN CERTIFICATE-----
        -----END CERTIFICATE-----
    options:
      dependsOn:
        - ${default}
variables:
  project:
    fn::invoke:
      function: gcp:organizations:getProject
      arguments: {}

Import

BitbucketServerConfig can be imported using any of these accepted formats:

  • projects/{{project}}/locations/{{location}}/bitbucketServerConfigs/{{config_id}}
  • {{project}}/{{location}}/{{config_id}}
  • {{location}}/{{config_id}}

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

$ pulumi import gcp:cloudbuild/bitbucketServerConfig:BitbucketServerConfig default projects/{{project}}/locations/{{location}}/bitbucketServerConfigs/{{config_id}}
$ pulumi import gcp:cloudbuild/bitbucketServerConfig:BitbucketServerConfig default {{project}}/{{location}}/{{config_id}}
$ pulumi import gcp:cloudbuild/bitbucketServerConfig:BitbucketServerConfig default {{location}}/{{config_id}}

Constructors

BitbucketServerConfig(String name, {BitbucketServerConfigArgs? args, CustomResourceOptions? options})
Creates a new BitbucketServerConfig. name The Pulumi resource name. args Arguments used to configure this BitbucketServerConfig. The set of arguments for BitbucketServerConfig. options Resource options controlling this resource's behavior.
BitbucketServerConfig.reference(String urn)
Creates a typed reference to an existing BitbucketServerConfig resource.

Properties

apiKey ↔ Output<String>
Immutable. API Key that will be attached to webhook. Once this field has been set, it cannot be changed. Changing this field will result in deleting/ recreating the resource.
latefinal
childResources → Set<Resource>
finalinherited
completionSources ↔ Map<String, IOutputCompletionSource>
latefinalinherited
configId ↔ Output<String>
The ID to use for the BitbucketServerConfig, which will become the final component of the BitbucketServerConfig's resource name.
latefinal
connectedRepositories ↔ Output<List<BitbucketServerConfigConnectedRepository>?>
Connected Bitbucket Server repositories for this config. Structure is documented below.
latefinal
deletionPolicy ↔ Output<String>
Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
latefinal
hashCode → int
The hash code for this object.
no setterinherited
hostUri ↔ Output<String>
Immutable. The URI of the Bitbucket Server host. Once this field has been set, it cannot be changed. If you need to change it, please create another BitbucketServerConfig.
latefinal
id ↔ Output<String>
getter/setter pairinherited
isCustom → bool
Returns whether this resource is provider-managed.
no setterinherited
isProtected → bool
Returns whether this resource is protected from deletion.
no setterinherited
isRemote → bool
Whether this resource is registered as remote.
no setterinherited
isResourceReference → bool
Whether this instance represents a resource value returned over RPC.
finalinherited
location ↔ Output<String>
The location of this bitbucket server config.
latefinal
name ↔ Output<String>
The resource name for the config.
latefinal
peeredNetwork ↔ Output<String?>
The network to be used when reaching out to the Bitbucket Server instance. The VPC network must be enabled for private service connection. This should be set if the Bitbucket Server instance is hosted on-premises and not reachable by public internet. If this field is left empty, no network peering will occur and calls to the Bitbucket Server instance will be made over the public internet. Must be in the format projects/{project}/global/networks/{network}, where {project} is a project number or id and {network} is the name of a VPC network in the project.
latefinal
project ↔ Output<String>
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
latefinal
resourceTransforms → List<ResourceTransform>
Inherited/explicit async transforms.
no setterinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
secrets ↔ Output<BitbucketServerConfigSecrets>
Secret Manager secrets needed by the config. Structure is documented below.
latefinal
sslCa ↔ Output<String?>
SSL certificate to use for requests to Bitbucket Server. The format should be PEM format but the extension can be one of .pem, .cer, or .crt.
latefinal
transformations → List<ResourceTransformation>
Inherited/explicit legacy transformations.
no setterinherited
urn ↔ Output<String>
latefinalinherited
username ↔ Output<String>
Username of the account Cloud Build will use on Bitbucket Server.
latefinal
webhookKey ↔ Output<String>
Output only. UUID included in webhook requests. The UUID is used to look up the corresponding config.
latefinal

Methods

failId(Object error) → void
Completes this resource ID with an error when registration fails.
inherited
failOutputs(Object error) → void
Completes all output properties with error.
inherited
failUrn(Object error) → void
Completes this resource URN with an error when registration fails.
inherited
getProvider(String moduleMember) → ProviderResource?
Returns provider for moduleMember's package, if configured.
inherited
getResourceName() → String
Returns this resource's logical name.
inherited
getResourceType() → String
Returns this resource's Pulumi type token.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
registerOutput<T>(String propertyName, {Object? decoder(Object?)?, bool isSecret = false}) → Output<T>
Registers a dynamic output property for this resource.
inherited
resolveId(String? value, {required bool isKnown}) → void
Resolves the provider-assigned ID for this resource.
inherited
resolveOutputs(Struct outputs) → void
Resolves all output properties from a monitor response payload.
inherited
resolveUrn(String value) → void
Resolves this resource's URN once assigned by the engine.
inherited
serializeProperties(Map<String, dynamic> properties) → Future<Struct>
Serializes resource properties for RPC transmission.
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Static Methods

get(String name, Input<String> id, {BitbucketServerConfigState? state, CustomResourceOptions? options}) → BitbucketServerConfig
Gets an existing BitbucketServerConfig resource's state with the given name and id.