1. Packages
  2. Google Cloud (GCP) Classic
  3. API Docs
  4. apigee
  5. AppGroup
Google Cloud Classic v8.9.3 published on Monday, Nov 18, 2024 by Pulumi

gcp.apigee.AppGroup

Explore with Pulumi AI

gcp logo
Google Cloud Classic v8.9.3 published on Monday, Nov 18, 2024 by Pulumi

    An AppGroup in Apigee.

    To get more information about AppGroup, see:

    Example Usage

    Apigee App Group Basic

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const current = gcp.organizations.getClientConfig({});
    const apigeeNetwork = new gcp.compute.Network("apigee_network", {name: "apigee-network"});
    const apigeeRange = new gcp.compute.GlobalAddress("apigee_range", {
        name: "apigee-range",
        purpose: "VPC_PEERING",
        addressType: "INTERNAL",
        prefixLength: 16,
        network: apigeeNetwork.id,
    });
    const apigeeVpcConnection = new gcp.servicenetworking.Connection("apigee_vpc_connection", {
        network: apigeeNetwork.id,
        service: "servicenetworking.googleapis.com",
        reservedPeeringRanges: [apigeeRange.name],
    });
    const apigeeOrg = new gcp.apigee.Organization("apigee_org", {
        analyticsRegion: "us-central1",
        projectId: current.then(current => current.project),
        authorizedNetwork: apigeeNetwork.id,
    }, {
        dependsOn: [apigeeVpcConnection],
    });
    const apigeeInstance = new gcp.apigee.Instance("apigee_instance", {
        name: "instance",
        location: "us-central1",
        orgId: apigeeOrg.id,
        peeringCidrRange: "SLASH_22",
    });
    const apigeeAppGroup = new gcp.apigee.AppGroup("apigee_app_group", {
        name: "my-app-group",
        displayName: "Test app group",
        channelId: "storefront",
        channelUri: "https://my-dev-portal.org/groups/my-group",
        status: "active",
        orgId: apigeeOrg.id,
    }, {
        dependsOn: [apigeeInstance],
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    current = gcp.organizations.get_client_config()
    apigee_network = gcp.compute.Network("apigee_network", name="apigee-network")
    apigee_range = gcp.compute.GlobalAddress("apigee_range",
        name="apigee-range",
        purpose="VPC_PEERING",
        address_type="INTERNAL",
        prefix_length=16,
        network=apigee_network.id)
    apigee_vpc_connection = gcp.servicenetworking.Connection("apigee_vpc_connection",
        network=apigee_network.id,
        service="servicenetworking.googleapis.com",
        reserved_peering_ranges=[apigee_range.name])
    apigee_org = gcp.apigee.Organization("apigee_org",
        analytics_region="us-central1",
        project_id=current.project,
        authorized_network=apigee_network.id,
        opts = pulumi.ResourceOptions(depends_on=[apigee_vpc_connection]))
    apigee_instance = gcp.apigee.Instance("apigee_instance",
        name="instance",
        location="us-central1",
        org_id=apigee_org.id,
        peering_cidr_range="SLASH_22")
    apigee_app_group = gcp.apigee.AppGroup("apigee_app_group",
        name="my-app-group",
        display_name="Test app group",
        channel_id="storefront",
        channel_uri="https://my-dev-portal.org/groups/my-group",
        status="active",
        org_id=apigee_org.id,
        opts = pulumi.ResourceOptions(depends_on=[apigee_instance]))
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/apigee"
    	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
    	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
    	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/servicenetworking"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		current, err := organizations.GetClientConfig(ctx, map[string]interface{}{}, nil)
    		if err != nil {
    			return err
    		}
    		apigeeNetwork, err := compute.NewNetwork(ctx, "apigee_network", &compute.NetworkArgs{
    			Name: pulumi.String("apigee-network"),
    		})
    		if err != nil {
    			return err
    		}
    		apigeeRange, err := compute.NewGlobalAddress(ctx, "apigee_range", &compute.GlobalAddressArgs{
    			Name:         pulumi.String("apigee-range"),
    			Purpose:      pulumi.String("VPC_PEERING"),
    			AddressType:  pulumi.String("INTERNAL"),
    			PrefixLength: pulumi.Int(16),
    			Network:      apigeeNetwork.ID(),
    		})
    		if err != nil {
    			return err
    		}
    		apigeeVpcConnection, err := servicenetworking.NewConnection(ctx, "apigee_vpc_connection", &servicenetworking.ConnectionArgs{
    			Network: apigeeNetwork.ID(),
    			Service: pulumi.String("servicenetworking.googleapis.com"),
    			ReservedPeeringRanges: pulumi.StringArray{
    				apigeeRange.Name,
    			},
    		})
    		if err != nil {
    			return err
    		}
    		apigeeOrg, err := apigee.NewOrganization(ctx, "apigee_org", &apigee.OrganizationArgs{
    			AnalyticsRegion:   pulumi.String("us-central1"),
    			ProjectId:         pulumi.String(current.Project),
    			AuthorizedNetwork: apigeeNetwork.ID(),
    		}, pulumi.DependsOn([]pulumi.Resource{
    			apigeeVpcConnection,
    		}))
    		if err != nil {
    			return err
    		}
    		apigeeInstance, err := apigee.NewInstance(ctx, "apigee_instance", &apigee.InstanceArgs{
    			Name:             pulumi.String("instance"),
    			Location:         pulumi.String("us-central1"),
    			OrgId:            apigeeOrg.ID(),
    			PeeringCidrRange: pulumi.String("SLASH_22"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = apigee.NewAppGroup(ctx, "apigee_app_group", &apigee.AppGroupArgs{
    			Name:        pulumi.String("my-app-group"),
    			DisplayName: pulumi.String("Test app group"),
    			ChannelId:   pulumi.String("storefront"),
    			ChannelUri:  pulumi.String("https://my-dev-portal.org/groups/my-group"),
    			Status:      pulumi.String("active"),
    			OrgId:       apigeeOrg.ID(),
    		}, pulumi.DependsOn([]pulumi.Resource{
    			apigeeInstance,
    		}))
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var current = Gcp.Organizations.GetClientConfig.Invoke();
    
        var apigeeNetwork = new Gcp.Compute.Network("apigee_network", new()
        {
            Name = "apigee-network",
        });
    
        var apigeeRange = new Gcp.Compute.GlobalAddress("apigee_range", new()
        {
            Name = "apigee-range",
            Purpose = "VPC_PEERING",
            AddressType = "INTERNAL",
            PrefixLength = 16,
            Network = apigeeNetwork.Id,
        });
    
        var apigeeVpcConnection = new Gcp.ServiceNetworking.Connection("apigee_vpc_connection", new()
        {
            Network = apigeeNetwork.Id,
            Service = "servicenetworking.googleapis.com",
            ReservedPeeringRanges = new[]
            {
                apigeeRange.Name,
            },
        });
    
        var apigeeOrg = new Gcp.Apigee.Organization("apigee_org", new()
        {
            AnalyticsRegion = "us-central1",
            ProjectId = current.Apply(getClientConfigResult => getClientConfigResult.Project),
            AuthorizedNetwork = apigeeNetwork.Id,
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                apigeeVpcConnection,
            },
        });
    
        var apigeeInstance = new Gcp.Apigee.Instance("apigee_instance", new()
        {
            Name = "instance",
            Location = "us-central1",
            OrgId = apigeeOrg.Id,
            PeeringCidrRange = "SLASH_22",
        });
    
        var apigeeAppGroup = new Gcp.Apigee.AppGroup("apigee_app_group", new()
        {
            Name = "my-app-group",
            DisplayName = "Test app group",
            ChannelId = "storefront",
            ChannelUri = "https://my-dev-portal.org/groups/my-group",
            Status = "active",
            OrgId = apigeeOrg.Id,
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                apigeeInstance,
            },
        });
    
    });
    
    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.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.apigee.Organization;
    import com.pulumi.gcp.apigee.OrganizationArgs;
    import com.pulumi.gcp.apigee.Instance;
    import com.pulumi.gcp.apigee.InstanceArgs;
    import com.pulumi.gcp.apigee.AppGroup;
    import com.pulumi.gcp.apigee.AppGroupArgs;
    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) {
            final var current = OrganizationsFunctions.getClientConfig();
    
            var apigeeNetwork = new Network("apigeeNetwork", NetworkArgs.builder()
                .name("apigee-network")
                .build());
    
            var apigeeRange = new GlobalAddress("apigeeRange", GlobalAddressArgs.builder()
                .name("apigee-range")
                .purpose("VPC_PEERING")
                .addressType("INTERNAL")
                .prefixLength(16)
                .network(apigeeNetwork.id())
                .build());
    
            var apigeeVpcConnection = new Connection("apigeeVpcConnection", ConnectionArgs.builder()
                .network(apigeeNetwork.id())
                .service("servicenetworking.googleapis.com")
                .reservedPeeringRanges(apigeeRange.name())
                .build());
    
            var apigeeOrg = new Organization("apigeeOrg", OrganizationArgs.builder()
                .analyticsRegion("us-central1")
                .projectId(current.applyValue(getClientConfigResult -> getClientConfigResult.project()))
                .authorizedNetwork(apigeeNetwork.id())
                .build(), CustomResourceOptions.builder()
                    .dependsOn(apigeeVpcConnection)
                    .build());
    
            var apigeeInstance = new Instance("apigeeInstance", InstanceArgs.builder()
                .name("instance")
                .location("us-central1")
                .orgId(apigeeOrg.id())
                .peeringCidrRange("SLASH_22")
                .build());
    
            var apigeeAppGroup = new AppGroup("apigeeAppGroup", AppGroupArgs.builder()
                .name("my-app-group")
                .displayName("Test app group")
                .channelId("storefront")
                .channelUri("https://my-dev-portal.org/groups/my-group")
                .status("active")
                .orgId(apigeeOrg.id())
                .build(), CustomResourceOptions.builder()
                    .dependsOn(apigeeInstance)
                    .build());
    
        }
    }
    
    resources:
      apigeeNetwork:
        type: gcp:compute:Network
        name: apigee_network
        properties:
          name: apigee-network
      apigeeRange:
        type: gcp:compute:GlobalAddress
        name: apigee_range
        properties:
          name: apigee-range
          purpose: VPC_PEERING
          addressType: INTERNAL
          prefixLength: 16
          network: ${apigeeNetwork.id}
      apigeeVpcConnection:
        type: gcp:servicenetworking:Connection
        name: apigee_vpc_connection
        properties:
          network: ${apigeeNetwork.id}
          service: servicenetworking.googleapis.com
          reservedPeeringRanges:
            - ${apigeeRange.name}
      apigeeOrg:
        type: gcp:apigee:Organization
        name: apigee_org
        properties:
          analyticsRegion: us-central1
          projectId: ${current.project}
          authorizedNetwork: ${apigeeNetwork.id}
        options:
          dependson:
            - ${apigeeVpcConnection}
      apigeeInstance:
        type: gcp:apigee:Instance
        name: apigee_instance
        properties:
          name: instance
          location: us-central1
          orgId: ${apigeeOrg.id}
          peeringCidrRange: SLASH_22
      apigeeAppGroup:
        type: gcp:apigee:AppGroup
        name: apigee_app_group
        properties:
          name: my-app-group
          displayName: Test app group
          channelId: storefront
          channelUri: https://my-dev-portal.org/groups/my-group
          status: active
          orgId: ${apigeeOrg.id}
        options:
          dependson:
            - ${apigeeInstance}
    variables:
      current:
        fn::invoke:
          Function: gcp:organizations:getClientConfig
          Arguments: {}
    

    Apigee App Group With Attributes

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const current = gcp.organizations.getClientConfig({});
    const apigeeNetwork = new gcp.compute.Network("apigee_network", {name: "apigee-network"});
    const apigeeRange = new gcp.compute.GlobalAddress("apigee_range", {
        name: "apigee-range",
        purpose: "VPC_PEERING",
        addressType: "INTERNAL",
        prefixLength: 16,
        network: apigeeNetwork.id,
    });
    const apigeeVpcConnection = new gcp.servicenetworking.Connection("apigee_vpc_connection", {
        network: apigeeNetwork.id,
        service: "servicenetworking.googleapis.com",
        reservedPeeringRanges: [apigeeRange.name],
    });
    const apigeeOrg = new gcp.apigee.Organization("apigee_org", {
        analyticsRegion: "us-central1",
        projectId: current.then(current => current.project),
        authorizedNetwork: apigeeNetwork.id,
    }, {
        dependsOn: [apigeeVpcConnection],
    });
    const apigeeInstance = new gcp.apigee.Instance("apigee_instance", {
        name: "instance",
        location: "us-central1",
        orgId: apigeeOrg.id,
        peeringCidrRange: "SLASH_22",
    });
    const apigeeAppGroup = new gcp.apigee.AppGroup("apigee_app_group", {
        name: "my-app-group",
        displayName: "Test app group",
        channelId: "storefront",
        channelUri: "https://my-dev-portal.org/groups/my-group",
        status: "active",
        orgId: apigeeOrg.id,
        attributes: [
            {
                name: "business_unit",
                value: "HR",
            },
            {
                name: "department",
                value: "payroll",
            },
        ],
    }, {
        dependsOn: [apigeeInstance],
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    current = gcp.organizations.get_client_config()
    apigee_network = gcp.compute.Network("apigee_network", name="apigee-network")
    apigee_range = gcp.compute.GlobalAddress("apigee_range",
        name="apigee-range",
        purpose="VPC_PEERING",
        address_type="INTERNAL",
        prefix_length=16,
        network=apigee_network.id)
    apigee_vpc_connection = gcp.servicenetworking.Connection("apigee_vpc_connection",
        network=apigee_network.id,
        service="servicenetworking.googleapis.com",
        reserved_peering_ranges=[apigee_range.name])
    apigee_org = gcp.apigee.Organization("apigee_org",
        analytics_region="us-central1",
        project_id=current.project,
        authorized_network=apigee_network.id,
        opts = pulumi.ResourceOptions(depends_on=[apigee_vpc_connection]))
    apigee_instance = gcp.apigee.Instance("apigee_instance",
        name="instance",
        location="us-central1",
        org_id=apigee_org.id,
        peering_cidr_range="SLASH_22")
    apigee_app_group = gcp.apigee.AppGroup("apigee_app_group",
        name="my-app-group",
        display_name="Test app group",
        channel_id="storefront",
        channel_uri="https://my-dev-portal.org/groups/my-group",
        status="active",
        org_id=apigee_org.id,
        attributes=[
            {
                "name": "business_unit",
                "value": "HR",
            },
            {
                "name": "department",
                "value": "payroll",
            },
        ],
        opts = pulumi.ResourceOptions(depends_on=[apigee_instance]))
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/apigee"
    	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
    	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
    	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/servicenetworking"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		current, err := organizations.GetClientConfig(ctx, map[string]interface{}{}, nil)
    		if err != nil {
    			return err
    		}
    		apigeeNetwork, err := compute.NewNetwork(ctx, "apigee_network", &compute.NetworkArgs{
    			Name: pulumi.String("apigee-network"),
    		})
    		if err != nil {
    			return err
    		}
    		apigeeRange, err := compute.NewGlobalAddress(ctx, "apigee_range", &compute.GlobalAddressArgs{
    			Name:         pulumi.String("apigee-range"),
    			Purpose:      pulumi.String("VPC_PEERING"),
    			AddressType:  pulumi.String("INTERNAL"),
    			PrefixLength: pulumi.Int(16),
    			Network:      apigeeNetwork.ID(),
    		})
    		if err != nil {
    			return err
    		}
    		apigeeVpcConnection, err := servicenetworking.NewConnection(ctx, "apigee_vpc_connection", &servicenetworking.ConnectionArgs{
    			Network: apigeeNetwork.ID(),
    			Service: pulumi.String("servicenetworking.googleapis.com"),
    			ReservedPeeringRanges: pulumi.StringArray{
    				apigeeRange.Name,
    			},
    		})
    		if err != nil {
    			return err
    		}
    		apigeeOrg, err := apigee.NewOrganization(ctx, "apigee_org", &apigee.OrganizationArgs{
    			AnalyticsRegion:   pulumi.String("us-central1"),
    			ProjectId:         pulumi.String(current.Project),
    			AuthorizedNetwork: apigeeNetwork.ID(),
    		}, pulumi.DependsOn([]pulumi.Resource{
    			apigeeVpcConnection,
    		}))
    		if err != nil {
    			return err
    		}
    		apigeeInstance, err := apigee.NewInstance(ctx, "apigee_instance", &apigee.InstanceArgs{
    			Name:             pulumi.String("instance"),
    			Location:         pulumi.String("us-central1"),
    			OrgId:            apigeeOrg.ID(),
    			PeeringCidrRange: pulumi.String("SLASH_22"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = apigee.NewAppGroup(ctx, "apigee_app_group", &apigee.AppGroupArgs{
    			Name:        pulumi.String("my-app-group"),
    			DisplayName: pulumi.String("Test app group"),
    			ChannelId:   pulumi.String("storefront"),
    			ChannelUri:  pulumi.String("https://my-dev-portal.org/groups/my-group"),
    			Status:      pulumi.String("active"),
    			OrgId:       apigeeOrg.ID(),
    			Attributes: apigee.AppGroupAttributeArray{
    				&apigee.AppGroupAttributeArgs{
    					Name:  pulumi.String("business_unit"),
    					Value: pulumi.String("HR"),
    				},
    				&apigee.AppGroupAttributeArgs{
    					Name:  pulumi.String("department"),
    					Value: pulumi.String("payroll"),
    				},
    			},
    		}, pulumi.DependsOn([]pulumi.Resource{
    			apigeeInstance,
    		}))
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var current = Gcp.Organizations.GetClientConfig.Invoke();
    
        var apigeeNetwork = new Gcp.Compute.Network("apigee_network", new()
        {
            Name = "apigee-network",
        });
    
        var apigeeRange = new Gcp.Compute.GlobalAddress("apigee_range", new()
        {
            Name = "apigee-range",
            Purpose = "VPC_PEERING",
            AddressType = "INTERNAL",
            PrefixLength = 16,
            Network = apigeeNetwork.Id,
        });
    
        var apigeeVpcConnection = new Gcp.ServiceNetworking.Connection("apigee_vpc_connection", new()
        {
            Network = apigeeNetwork.Id,
            Service = "servicenetworking.googleapis.com",
            ReservedPeeringRanges = new[]
            {
                apigeeRange.Name,
            },
        });
    
        var apigeeOrg = new Gcp.Apigee.Organization("apigee_org", new()
        {
            AnalyticsRegion = "us-central1",
            ProjectId = current.Apply(getClientConfigResult => getClientConfigResult.Project),
            AuthorizedNetwork = apigeeNetwork.Id,
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                apigeeVpcConnection,
            },
        });
    
        var apigeeInstance = new Gcp.Apigee.Instance("apigee_instance", new()
        {
            Name = "instance",
            Location = "us-central1",
            OrgId = apigeeOrg.Id,
            PeeringCidrRange = "SLASH_22",
        });
    
        var apigeeAppGroup = new Gcp.Apigee.AppGroup("apigee_app_group", new()
        {
            Name = "my-app-group",
            DisplayName = "Test app group",
            ChannelId = "storefront",
            ChannelUri = "https://my-dev-portal.org/groups/my-group",
            Status = "active",
            OrgId = apigeeOrg.Id,
            Attributes = new[]
            {
                new Gcp.Apigee.Inputs.AppGroupAttributeArgs
                {
                    Name = "business_unit",
                    Value = "HR",
                },
                new Gcp.Apigee.Inputs.AppGroupAttributeArgs
                {
                    Name = "department",
                    Value = "payroll",
                },
            },
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                apigeeInstance,
            },
        });
    
    });
    
    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.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.apigee.Organization;
    import com.pulumi.gcp.apigee.OrganizationArgs;
    import com.pulumi.gcp.apigee.Instance;
    import com.pulumi.gcp.apigee.InstanceArgs;
    import com.pulumi.gcp.apigee.AppGroup;
    import com.pulumi.gcp.apigee.AppGroupArgs;
    import com.pulumi.gcp.apigee.inputs.AppGroupAttributeArgs;
    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) {
            final var current = OrganizationsFunctions.getClientConfig();
    
            var apigeeNetwork = new Network("apigeeNetwork", NetworkArgs.builder()
                .name("apigee-network")
                .build());
    
            var apigeeRange = new GlobalAddress("apigeeRange", GlobalAddressArgs.builder()
                .name("apigee-range")
                .purpose("VPC_PEERING")
                .addressType("INTERNAL")
                .prefixLength(16)
                .network(apigeeNetwork.id())
                .build());
    
            var apigeeVpcConnection = new Connection("apigeeVpcConnection", ConnectionArgs.builder()
                .network(apigeeNetwork.id())
                .service("servicenetworking.googleapis.com")
                .reservedPeeringRanges(apigeeRange.name())
                .build());
    
            var apigeeOrg = new Organization("apigeeOrg", OrganizationArgs.builder()
                .analyticsRegion("us-central1")
                .projectId(current.applyValue(getClientConfigResult -> getClientConfigResult.project()))
                .authorizedNetwork(apigeeNetwork.id())
                .build(), CustomResourceOptions.builder()
                    .dependsOn(apigeeVpcConnection)
                    .build());
    
            var apigeeInstance = new Instance("apigeeInstance", InstanceArgs.builder()
                .name("instance")
                .location("us-central1")
                .orgId(apigeeOrg.id())
                .peeringCidrRange("SLASH_22")
                .build());
    
            var apigeeAppGroup = new AppGroup("apigeeAppGroup", AppGroupArgs.builder()
                .name("my-app-group")
                .displayName("Test app group")
                .channelId("storefront")
                .channelUri("https://my-dev-portal.org/groups/my-group")
                .status("active")
                .orgId(apigeeOrg.id())
                .attributes(            
                    AppGroupAttributeArgs.builder()
                        .name("business_unit")
                        .value("HR")
                        .build(),
                    AppGroupAttributeArgs.builder()
                        .name("department")
                        .value("payroll")
                        .build())
                .build(), CustomResourceOptions.builder()
                    .dependsOn(apigeeInstance)
                    .build());
    
        }
    }
    
    resources:
      apigeeNetwork:
        type: gcp:compute:Network
        name: apigee_network
        properties:
          name: apigee-network
      apigeeRange:
        type: gcp:compute:GlobalAddress
        name: apigee_range
        properties:
          name: apigee-range
          purpose: VPC_PEERING
          addressType: INTERNAL
          prefixLength: 16
          network: ${apigeeNetwork.id}
      apigeeVpcConnection:
        type: gcp:servicenetworking:Connection
        name: apigee_vpc_connection
        properties:
          network: ${apigeeNetwork.id}
          service: servicenetworking.googleapis.com
          reservedPeeringRanges:
            - ${apigeeRange.name}
      apigeeOrg:
        type: gcp:apigee:Organization
        name: apigee_org
        properties:
          analyticsRegion: us-central1
          projectId: ${current.project}
          authorizedNetwork: ${apigeeNetwork.id}
        options:
          dependson:
            - ${apigeeVpcConnection}
      apigeeInstance:
        type: gcp:apigee:Instance
        name: apigee_instance
        properties:
          name: instance
          location: us-central1
          orgId: ${apigeeOrg.id}
          peeringCidrRange: SLASH_22
      apigeeAppGroup:
        type: gcp:apigee:AppGroup
        name: apigee_app_group
        properties:
          name: my-app-group
          displayName: Test app group
          channelId: storefront
          channelUri: https://my-dev-portal.org/groups/my-group
          status: active
          orgId: ${apigeeOrg.id}
          attributes:
            - name: business_unit
              value: HR
            - name: department
              value: payroll
        options:
          dependson:
            - ${apigeeInstance}
    variables:
      current:
        fn::invoke:
          Function: gcp:organizations:getClientConfig
          Arguments: {}
    

    Create AppGroup Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new AppGroup(name: string, args: AppGroupArgs, opts?: CustomResourceOptions);
    @overload
    def AppGroup(resource_name: str,
                 args: AppGroupArgs,
                 opts: Optional[ResourceOptions] = None)
    
    @overload
    def AppGroup(resource_name: str,
                 opts: Optional[ResourceOptions] = None,
                 org_id: Optional[str] = None,
                 attributes: Optional[Sequence[AppGroupAttributeArgs]] = None,
                 channel_id: Optional[str] = None,
                 channel_uri: Optional[str] = None,
                 display_name: Optional[str] = None,
                 name: Optional[str] = None,
                 status: Optional[str] = None)
    func NewAppGroup(ctx *Context, name string, args AppGroupArgs, opts ...ResourceOption) (*AppGroup, error)
    public AppGroup(string name, AppGroupArgs args, CustomResourceOptions? opts = null)
    public AppGroup(String name, AppGroupArgs args)
    public AppGroup(String name, AppGroupArgs args, CustomResourceOptions options)
    
    type: gcp:apigee:AppGroup
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args AppGroupArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args AppGroupArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args AppGroupArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args AppGroupArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args AppGroupArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var appGroupResource = new Gcp.Apigee.AppGroup("appGroupResource", new()
    {
        OrgId = "string",
        Attributes = new[]
        {
            new Gcp.Apigee.Inputs.AppGroupAttributeArgs
            {
                Name = "string",
                Value = "string",
            },
        },
        ChannelId = "string",
        ChannelUri = "string",
        DisplayName = "string",
        Name = "string",
        Status = "string",
    });
    
    example, err := apigee.NewAppGroup(ctx, "appGroupResource", &apigee.AppGroupArgs{
    	OrgId: pulumi.String("string"),
    	Attributes: apigee.AppGroupAttributeArray{
    		&apigee.AppGroupAttributeArgs{
    			Name:  pulumi.String("string"),
    			Value: pulumi.String("string"),
    		},
    	},
    	ChannelId:   pulumi.String("string"),
    	ChannelUri:  pulumi.String("string"),
    	DisplayName: pulumi.String("string"),
    	Name:        pulumi.String("string"),
    	Status:      pulumi.String("string"),
    })
    
    var appGroupResource = new AppGroup("appGroupResource", AppGroupArgs.builder()
        .orgId("string")
        .attributes(AppGroupAttributeArgs.builder()
            .name("string")
            .value("string")
            .build())
        .channelId("string")
        .channelUri("string")
        .displayName("string")
        .name("string")
        .status("string")
        .build());
    
    app_group_resource = gcp.apigee.AppGroup("appGroupResource",
        org_id="string",
        attributes=[{
            "name": "string",
            "value": "string",
        }],
        channel_id="string",
        channel_uri="string",
        display_name="string",
        name="string",
        status="string")
    
    const appGroupResource = new gcp.apigee.AppGroup("appGroupResource", {
        orgId: "string",
        attributes: [{
            name: "string",
            value: "string",
        }],
        channelId: "string",
        channelUri: "string",
        displayName: "string",
        name: "string",
        status: "string",
    });
    
    type: gcp:apigee:AppGroup
    properties:
        attributes:
            - name: string
              value: string
        channelId: string
        channelUri: string
        displayName: string
        name: string
        orgId: string
        status: string
    

    AppGroup Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The AppGroup resource accepts the following input properties:

    OrgId string
    The Apigee Organization associated with the Apigee app group, in the format organizations/{{org_name}}.


    Attributes List<AppGroupAttribute>
    A list of attributes Structure is documented below.
    ChannelId string
    Channel identifier identifies the owner maintaing this grouping.
    ChannelUri string
    A reference to the associated storefront/marketplace.
    DisplayName string
    App group name displayed in the UI
    Name string
    Name of the AppGroup. Characters you can use in the name are restricted to: A-Z0-9._-$ %.
    Status string
    Valid values are active or inactive. Note that the status of the AppGroup should be updated via UpdateAppGroupRequest by setting the action as active or inactive. Possible values are: active, inactive.
    OrgId string
    The Apigee Organization associated with the Apigee app group, in the format organizations/{{org_name}}.


    Attributes []AppGroupAttributeArgs
    A list of attributes Structure is documented below.
    ChannelId string
    Channel identifier identifies the owner maintaing this grouping.
    ChannelUri string
    A reference to the associated storefront/marketplace.
    DisplayName string
    App group name displayed in the UI
    Name string
    Name of the AppGroup. Characters you can use in the name are restricted to: A-Z0-9._-$ %.
    Status string
    Valid values are active or inactive. Note that the status of the AppGroup should be updated via UpdateAppGroupRequest by setting the action as active or inactive. Possible values are: active, inactive.
    orgId String
    The Apigee Organization associated with the Apigee app group, in the format organizations/{{org_name}}.


    attributes List<AppGroupAttribute>
    A list of attributes Structure is documented below.
    channelId String
    Channel identifier identifies the owner maintaing this grouping.
    channelUri String
    A reference to the associated storefront/marketplace.
    displayName String
    App group name displayed in the UI
    name String
    Name of the AppGroup. Characters you can use in the name are restricted to: A-Z0-9._-$ %.
    status String
    Valid values are active or inactive. Note that the status of the AppGroup should be updated via UpdateAppGroupRequest by setting the action as active or inactive. Possible values are: active, inactive.
    orgId string
    The Apigee Organization associated with the Apigee app group, in the format organizations/{{org_name}}.


    attributes AppGroupAttribute[]
    A list of attributes Structure is documented below.
    channelId string
    Channel identifier identifies the owner maintaing this grouping.
    channelUri string
    A reference to the associated storefront/marketplace.
    displayName string
    App group name displayed in the UI
    name string
    Name of the AppGroup. Characters you can use in the name are restricted to: A-Z0-9._-$ %.
    status string
    Valid values are active or inactive. Note that the status of the AppGroup should be updated via UpdateAppGroupRequest by setting the action as active or inactive. Possible values are: active, inactive.
    org_id str
    The Apigee Organization associated with the Apigee app group, in the format organizations/{{org_name}}.


    attributes Sequence[AppGroupAttributeArgs]
    A list of attributes Structure is documented below.
    channel_id str
    Channel identifier identifies the owner maintaing this grouping.
    channel_uri str
    A reference to the associated storefront/marketplace.
    display_name str
    App group name displayed in the UI
    name str
    Name of the AppGroup. Characters you can use in the name are restricted to: A-Z0-9._-$ %.
    status str
    Valid values are active or inactive. Note that the status of the AppGroup should be updated via UpdateAppGroupRequest by setting the action as active or inactive. Possible values are: active, inactive.
    orgId String
    The Apigee Organization associated with the Apigee app group, in the format organizations/{{org_name}}.


    attributes List<Property Map>
    A list of attributes Structure is documented below.
    channelId String
    Channel identifier identifies the owner maintaing this grouping.
    channelUri String
    A reference to the associated storefront/marketplace.
    displayName String
    App group name displayed in the UI
    name String
    Name of the AppGroup. Characters you can use in the name are restricted to: A-Z0-9._-$ %.
    status String
    Valid values are active or inactive. Note that the status of the AppGroup should be updated via UpdateAppGroupRequest by setting the action as active or inactive. Possible values are: active, inactive.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the AppGroup resource produces the following output properties:

    AppGroupId string
    Internal identifier that cannot be edited
    CreatedAt string
    Created time as milliseconds since epoch.
    Id string
    The provider-assigned unique ID for this managed resource.
    LastModifiedAt string
    Modified time as milliseconds since epoch.
    Organization string
    App group name displayed in the UI
    AppGroupId string
    Internal identifier that cannot be edited
    CreatedAt string
    Created time as milliseconds since epoch.
    Id string
    The provider-assigned unique ID for this managed resource.
    LastModifiedAt string
    Modified time as milliseconds since epoch.
    Organization string
    App group name displayed in the UI
    appGroupId String
    Internal identifier that cannot be edited
    createdAt String
    Created time as milliseconds since epoch.
    id String
    The provider-assigned unique ID for this managed resource.
    lastModifiedAt String
    Modified time as milliseconds since epoch.
    organization String
    App group name displayed in the UI
    appGroupId string
    Internal identifier that cannot be edited
    createdAt string
    Created time as milliseconds since epoch.
    id string
    The provider-assigned unique ID for this managed resource.
    lastModifiedAt string
    Modified time as milliseconds since epoch.
    organization string
    App group name displayed in the UI
    app_group_id str
    Internal identifier that cannot be edited
    created_at str
    Created time as milliseconds since epoch.
    id str
    The provider-assigned unique ID for this managed resource.
    last_modified_at str
    Modified time as milliseconds since epoch.
    organization str
    App group name displayed in the UI
    appGroupId String
    Internal identifier that cannot be edited
    createdAt String
    Created time as milliseconds since epoch.
    id String
    The provider-assigned unique ID for this managed resource.
    lastModifiedAt String
    Modified time as milliseconds since epoch.
    organization String
    App group name displayed in the UI

    Look up Existing AppGroup Resource

    Get an existing AppGroup resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: AppGroupState, opts?: CustomResourceOptions): AppGroup
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            app_group_id: Optional[str] = None,
            attributes: Optional[Sequence[AppGroupAttributeArgs]] = None,
            channel_id: Optional[str] = None,
            channel_uri: Optional[str] = None,
            created_at: Optional[str] = None,
            display_name: Optional[str] = None,
            last_modified_at: Optional[str] = None,
            name: Optional[str] = None,
            org_id: Optional[str] = None,
            organization: Optional[str] = None,
            status: Optional[str] = None) -> AppGroup
    func GetAppGroup(ctx *Context, name string, id IDInput, state *AppGroupState, opts ...ResourceOption) (*AppGroup, error)
    public static AppGroup Get(string name, Input<string> id, AppGroupState? state, CustomResourceOptions? opts = null)
    public static AppGroup get(String name, Output<String> id, AppGroupState state, CustomResourceOptions options)
    Resource lookup is not supported in YAML
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    AppGroupId string
    Internal identifier that cannot be edited
    Attributes List<AppGroupAttribute>
    A list of attributes Structure is documented below.
    ChannelId string
    Channel identifier identifies the owner maintaing this grouping.
    ChannelUri string
    A reference to the associated storefront/marketplace.
    CreatedAt string
    Created time as milliseconds since epoch.
    DisplayName string
    App group name displayed in the UI
    LastModifiedAt string
    Modified time as milliseconds since epoch.
    Name string
    Name of the AppGroup. Characters you can use in the name are restricted to: A-Z0-9._-$ %.
    OrgId string
    The Apigee Organization associated with the Apigee app group, in the format organizations/{{org_name}}.


    Organization string
    App group name displayed in the UI
    Status string
    Valid values are active or inactive. Note that the status of the AppGroup should be updated via UpdateAppGroupRequest by setting the action as active or inactive. Possible values are: active, inactive.
    AppGroupId string
    Internal identifier that cannot be edited
    Attributes []AppGroupAttributeArgs
    A list of attributes Structure is documented below.
    ChannelId string
    Channel identifier identifies the owner maintaing this grouping.
    ChannelUri string
    A reference to the associated storefront/marketplace.
    CreatedAt string
    Created time as milliseconds since epoch.
    DisplayName string
    App group name displayed in the UI
    LastModifiedAt string
    Modified time as milliseconds since epoch.
    Name string
    Name of the AppGroup. Characters you can use in the name are restricted to: A-Z0-9._-$ %.
    OrgId string
    The Apigee Organization associated with the Apigee app group, in the format organizations/{{org_name}}.


    Organization string
    App group name displayed in the UI
    Status string
    Valid values are active or inactive. Note that the status of the AppGroup should be updated via UpdateAppGroupRequest by setting the action as active or inactive. Possible values are: active, inactive.
    appGroupId String
    Internal identifier that cannot be edited
    attributes List<AppGroupAttribute>
    A list of attributes Structure is documented below.
    channelId String
    Channel identifier identifies the owner maintaing this grouping.
    channelUri String
    A reference to the associated storefront/marketplace.
    createdAt String
    Created time as milliseconds since epoch.
    displayName String
    App group name displayed in the UI
    lastModifiedAt String
    Modified time as milliseconds since epoch.
    name String
    Name of the AppGroup. Characters you can use in the name are restricted to: A-Z0-9._-$ %.
    orgId String
    The Apigee Organization associated with the Apigee app group, in the format organizations/{{org_name}}.


    organization String
    App group name displayed in the UI
    status String
    Valid values are active or inactive. Note that the status of the AppGroup should be updated via UpdateAppGroupRequest by setting the action as active or inactive. Possible values are: active, inactive.
    appGroupId string
    Internal identifier that cannot be edited
    attributes AppGroupAttribute[]
    A list of attributes Structure is documented below.
    channelId string
    Channel identifier identifies the owner maintaing this grouping.
    channelUri string
    A reference to the associated storefront/marketplace.
    createdAt string
    Created time as milliseconds since epoch.
    displayName string
    App group name displayed in the UI
    lastModifiedAt string
    Modified time as milliseconds since epoch.
    name string
    Name of the AppGroup. Characters you can use in the name are restricted to: A-Z0-9._-$ %.
    orgId string
    The Apigee Organization associated with the Apigee app group, in the format organizations/{{org_name}}.


    organization string
    App group name displayed in the UI
    status string
    Valid values are active or inactive. Note that the status of the AppGroup should be updated via UpdateAppGroupRequest by setting the action as active or inactive. Possible values are: active, inactive.
    app_group_id str
    Internal identifier that cannot be edited
    attributes Sequence[AppGroupAttributeArgs]
    A list of attributes Structure is documented below.
    channel_id str
    Channel identifier identifies the owner maintaing this grouping.
    channel_uri str
    A reference to the associated storefront/marketplace.
    created_at str
    Created time as milliseconds since epoch.
    display_name str
    App group name displayed in the UI
    last_modified_at str
    Modified time as milliseconds since epoch.
    name str
    Name of the AppGroup. Characters you can use in the name are restricted to: A-Z0-9._-$ %.
    org_id str
    The Apigee Organization associated with the Apigee app group, in the format organizations/{{org_name}}.


    organization str
    App group name displayed in the UI
    status str
    Valid values are active or inactive. Note that the status of the AppGroup should be updated via UpdateAppGroupRequest by setting the action as active or inactive. Possible values are: active, inactive.
    appGroupId String
    Internal identifier that cannot be edited
    attributes List<Property Map>
    A list of attributes Structure is documented below.
    channelId String
    Channel identifier identifies the owner maintaing this grouping.
    channelUri String
    A reference to the associated storefront/marketplace.
    createdAt String
    Created time as milliseconds since epoch.
    displayName String
    App group name displayed in the UI
    lastModifiedAt String
    Modified time as milliseconds since epoch.
    name String
    Name of the AppGroup. Characters you can use in the name are restricted to: A-Z0-9._-$ %.
    orgId String
    The Apigee Organization associated with the Apigee app group, in the format organizations/{{org_name}}.


    organization String
    App group name displayed in the UI
    status String
    Valid values are active or inactive. Note that the status of the AppGroup should be updated via UpdateAppGroupRequest by setting the action as active or inactive. Possible values are: active, inactive.

    Supporting Types

    AppGroupAttribute, AppGroupAttributeArgs

    Name string
    Key of the attribute
    Value string
    Value of the attribute
    Name string
    Key of the attribute
    Value string
    Value of the attribute
    name String
    Key of the attribute
    value String
    Value of the attribute
    name string
    Key of the attribute
    value string
    Value of the attribute
    name str
    Key of the attribute
    value str
    Value of the attribute
    name String
    Key of the attribute
    value String
    Value of the attribute

    Import

    AppGroup can be imported using any of these accepted formats:

    • {{org_id}}/appgroups/{{name}}

    • {{org_id}}/{{name}}

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

    $ pulumi import gcp:apigee/appGroup:AppGroup default {{org_id}}/appgroups/{{name}}
    
    $ pulumi import gcp:apigee/appGroup:AppGroup default {{org_id}}/{{name}}
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    Google Cloud (GCP) Classic pulumi/pulumi-gcp
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the google-beta Terraform Provider.
    gcp logo
    Google Cloud Classic v8.9.3 published on Monday, Nov 18, 2024 by Pulumi