Binding class

Represents a user-defined Binding.

Example Usage

Agent Registry Binding Basic

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

const _default = gcp.agentregistry.getAgent({
    location: "global",
    filter: "displayName:Workspace Agent",
});
const defaultIamConnectorsConnector = new google.index.IamConnectorsConnector("default", {
    location: "us-central1",
    connectorId: "ar-binding",
    connectorTypeParams: [{
        connectorVersion: "projects/my-project-name/locations/global/providers/gcp/connectors/pubsub/versions/1",
    }],
});
const defaultBinding = new gcp.agentregistry.Binding("default", {
    location: "us-central1",
    bindingId: "ar-binding",
    displayName: "My Binding",
    description: "My GA agent registry binding",
    source: {
        identifier: _default.then(_default => _default.urn),
    },
    target: {
        identifier: _default.then(_default => _default.urn),
    },
    authProviderBinding: {
        authProvider: defaultIamConnectorsConnector.id,
        scopes: ["https://www.googleapis.com/auth/cloud-platform"],
        continueUri: "https://example.com/continue",
    },
}, {
    dependsOn: [defaultIamConnectorsConnector],
});
import pulumi
import pulumi_gcp as gcp
import pulumi_google as google

default = gcp.agentregistry.get_agent(location="global",
    filter="displayName:Workspace Agent")
default_iam_connectors_connector = google.IamConnectorsConnector("default",
    location=us-central1,
    connector_id=ar-binding,
    connector_type_params=[{
        connectorVersion: projects/my-project-name/locations/global/providers/gcp/connectors/pubsub/versions/1,
    }])
default_binding = gcp.agentregistry.Binding("default",
    location="us-central1",
    binding_id="ar-binding",
    display_name="My Binding",
    description="My GA agent registry binding",
    source={
        "identifier": default.urn,
    },
    target={
        "identifier": default.urn,
    },
    auth_provider_binding={
        "auth_provider": default_iam_connectors_connector["id"],
        "scopes": ["https://www.googleapis.com/auth/cloud-platform"],
        "continue_uri": "https://example.com/continue",
    },
    opts = pulumi.ResourceOptions(depends_on=[default_iam_connectors_connector]))
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
using Google = Pulumi.Google;

return await Deployment.RunAsync(() =>
{
    var @default = Gcp.AgentRegistry.GetAgent.Invoke(new()
    {
        Location = "global",
        Filter = "displayName:Workspace Agent",
    });

    var defaultIamConnectorsConnector = new Google.IamConnectorsConnector("default", new()
    {
        Location = "us-central1",
        ConnectorId = "ar-binding",
        ConnectorTypeParams = new[]
        {

            {
                { "connectorVersion", "projects/my-project-name/locations/global/providers/gcp/connectors/pubsub/versions/1" },
            },
        },
    });

    var defaultBinding = new Gcp.AgentRegistry.Binding("default", new()
    {
        Location = "us-central1",
        BindingId = "ar-binding",
        DisplayName = "My Binding",
        Description = "My GA agent registry binding",
        Source = new Gcp.AgentRegistry.Inputs.BindingSourceArgs
        {
            Identifier = @default.Apply(@default => @default.Apply(getAgentResult => getAgentResult.Urn)),
        },
        Target = new Gcp.AgentRegistry.Inputs.BindingTargetArgs
        {
            Identifier = @default.Apply(@default => @default.Apply(getAgentResult => getAgentResult.Urn)),
        },
        AuthProviderBinding = new Gcp.AgentRegistry.Inputs.BindingAuthProviderBindingArgs
        {
            AuthProvider = defaultIamConnectorsConnector.Id,
            Scopes = new[]
            {
                "https://www.googleapis.com/auth/cloud-platform",
            },
            ContinueUri = "https://example.com/continue",
        },
    }, new CustomResourceOptions
    {
        DependsOn =
        {
            defaultIamConnectorsConnector,
        },
    });

});
package main

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

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_default, err := agentregistry.GetAgent(ctx, &agentregistry.GetAgentArgs{
			Location: "global",
			Filter:   pulumi.StringRef("displayName:Workspace Agent"),
		}, nil)
		if err != nil {
			return err
		}
		defaultIamConnectorsConnector, err := google.NewIamConnectorsConnector(ctx, "default", &google.IamConnectorsConnectorArgs{
			Location:    "us-central1",
			ConnectorId: "ar-binding",
			ConnectorTypeParams: []map[string]string{
				{
					"connectorVersion": "projects/my-project-name/locations/global/providers/gcp/connectors/pubsub/versions/1",
				},
			},
		})
		if err != nil {
			return err
		}
		_, err = agentregistry.NewBinding(ctx, "default", &agentregistry.BindingArgs{
			Location:    pulumi.String("us-central1"),
			BindingId:   pulumi.String("ar-binding"),
			DisplayName: pulumi.String("My Binding"),
			Description: pulumi.String("My GA agent registry binding"),
			Source: &agentregistry.BindingSourceArgs{
				Identifier: pulumi.String(_default.Urn),
			},
			Target: &agentregistry.BindingTargetArgs{
				Identifier: pulumi.String(_default.Urn),
			},
			AuthProviderBinding: &agentregistry.BindingAuthProviderBindingArgs{
				AuthProvider: defaultIamConnectorsConnector.Id,
				Scopes: pulumi.StringArray{
					pulumi.String("https://www.googleapis.com/auth/cloud-platform"),
				},
				ContinueUri: pulumi.String("https://example.com/continue"),
			},
		}, pulumi.DependsOn([]pulumi.Resource{
			defaultIamConnectorsConnector,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}
pulumi {
  required_providers {
    gcp = {
      source = "pulumi/gcp"
    }
  }
}

data "gcp_agentregistry_getagent" "default" {
  location = "global"
  filter   = "displayName:Workspace Agent"
}

resource "gcp_agentregistry_binding" "default" {
  depends_on   = [google_iamconnectorsconnector.default]
  location     = "us-central1"
  binding_id   = "ar-binding"
  display_name = "My Binding"
  description  = "My GA agent registry binding"
  source = {
    identifier = data.gcp_agentregistry_getagent.default.urn
  }
  target = {
    identifier = data.gcp_agentregistry_getagent.default.urn
  }
  auth_provider_binding = {
    auth_provider = google_iamconnectorsconnector.default.id
    scopes        = ["https://www.googleapis.com/auth/cloud-platform"]
    continue_uri  = "https://example.com/continue"
  }
}
resource "google_iamconnectorsconnector" "default" {
  location     = "us-central1"
  connector_id = "ar-binding"
  connector_type_params = [{
    "connectorVersion" = "projects/my-project-name/locations/global/providers/gcp/connectors/pubsub/versions/1"
  }]
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.agentregistry.AgentregistryFunctions;
import com.pulumi.gcp.agentregistry.inputs.GetAgentArgs;
import com.pulumi.google.IamConnectorsConnector;
import com.pulumi.google.IamConnectorsConnectorArgs;
import com.pulumi.gcp.agentregistry.Binding;
import com.pulumi.gcp.agentregistry.BindingArgs;
import com.pulumi.gcp.agentregistry.inputs.BindingSourceArgs;
import com.pulumi.gcp.agentregistry.inputs.BindingTargetArgs;
import com.pulumi.gcp.agentregistry.inputs.BindingAuthProviderBindingArgs;
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 default = AgentregistryFunctions.getAgent(GetAgentArgs.builder()
            .location("global")
            .filter("displayName:Workspace Agent")
            .build());

        var defaultIamConnectorsConnector = new IamConnectorsConnector("defaultIamConnectorsConnector", IamConnectorsConnectorArgs.builder()
            .location("us-central1")
            .connectorId("ar-binding")
            .connectorTypeParams(Arrays.asList(Map.of("connectorVersion", "projects/my-project-name/locations/global/providers/gcp/connectors/pubsub/versions/1")))
            .build());

        var defaultBinding = new Binding("defaultBinding", BindingArgs.builder()
            .location("us-central1")
            .bindingId("ar-binding")
            .displayName("My Binding")
            .description("My GA agent registry binding")
            .source(BindingSourceArgs.builder()
                .identifier(default_.urn())
                .build())
            .target(BindingTargetArgs.builder()
                .identifier(default_.urn())
                .build())
            .authProviderBinding(BindingAuthProviderBindingArgs.builder()
                .authProvider(defaultIamConnectorsConnector.get("id"))
                .scopes("https://www.googleapis.com/auth/cloud-platform")
                .continueUri("https://example.com/continue")
                .build())
            .build(), CustomResourceOptions.builder()
                .dependsOn(defaultIamConnectorsConnector)
                .build());

    }
}
resources:
  defaultBinding:
    type: gcp:agentregistry:Binding
    name: default
    properties:
      location: us-central1
      bindingId: ar-binding
      displayName: My Binding
      description: My GA agent registry binding
      source:
        identifier: ${default.urn}
      target:
        identifier: ${default.urn}
      authProviderBinding:
        authProvider: ${defaultIamConnectorsConnector.id}
        scopes:
          - https://www.googleapis.com/auth/cloud-platform
        continueUri: https://example.com/continue
    options:
      dependsOn:
        - ${defaultIamConnectorsConnector}
  defaultIamConnectorsConnector:
    type: google:IamConnectorsConnector
    name: default
    properties:
      location: us-central1
      connectorId: ar-binding
      connectorTypeParams:
        - connectorVersion: projects/my-project-name/locations/global/providers/gcp/connectors/pubsub/versions/1
variables:
  default:
    fn::invoke:
      function: gcp:agentregistry:getAgent
      arguments:
        location: global
        filter: displayName:Workspace Agent

Import

Binding can be imported using any of these accepted formats:

  • projects/{{project}}/locations/{{location}}/bindings/{{binding_id}}
  • {{project}}/{{location}}/{{binding_id}}
  • {{location}}/{{binding_id}}

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

$ pulumi import gcp:agentregistry/binding:Binding default projects/{{project}}/locations/{{location}}/bindings/{{binding_id}}
$ pulumi import gcp:agentregistry/binding:Binding default {{project}}/{{location}}/{{binding_id}}
$ pulumi import gcp:agentregistry/binding:Binding default {{location}}/{{binding_id}}

Constructors

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

Properties

authProviderBinding ↔ Output<BindingAuthProviderBinding>
The auth provider of the Binding. Structure is documented below.
latefinal
bindingId ↔ Output<String>
The name of the Binding.
latefinal
childResources → Set<Resource>
finalinherited
completionSources ↔ Map<String, IOutputCompletionSource>
latefinalinherited
createTime ↔ Output<String>
The timestamp when the resource was created.
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
description ↔ Output<String?>
The description of the Binding.
latefinal
displayName ↔ Output<String?>
User-defined display name for the Binding.
latefinal
hashCode → int
The hash code for this object.
no setterinherited
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 the resource.
latefinal
name ↔ Output<String>
The resource name of the Binding.
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
source ↔ Output<BindingSource>
The source of the Binding. Structure is documented below.
latefinal
target ↔ Output<BindingTarget>
The target of the Binding. Structure is documented below.
latefinal
transformations → List<ResourceTransformation>
Inherited/explicit legacy transformations.
no setterinherited
updateTime ↔ Output<String>
The timestamp when the resource was updated.
latefinal
urn ↔ Output<String>
latefinalinherited

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, {BindingState? state, CustomResourceOptions? options}) → Binding
Gets an existing Binding resource's state with the given name and id.