gcp.apigee.ApiProduct
Explore with Pulumi AI
An ApiProduct
in Apigee.
To get more information about ApiProduct, see:
- API documentation
- How-to Guides
Example Usage
Apigee Api Product 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: "my-instance",
location: "us-central1",
orgId: apigeeOrg.id,
peeringCidrRange: "SLASH_22",
});
const basicApiProduct = new gcp.apigee.ApiProduct("basic_api_product", {
orgId: apigeeOrg.id,
name: "my-product",
displayName: "My Basic API Product",
approvalType: "auto",
}, {
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="my-instance",
location="us-central1",
org_id=apigee_org.id,
peering_cidr_range="SLASH_22")
basic_api_product = gcp.apigee.ApiProduct("basic_api_product",
org_id=apigee_org.id,
name="my-product",
display_name="My Basic API Product",
approval_type="auto",
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("my-instance"),
Location: pulumi.String("us-central1"),
OrgId: apigeeOrg.ID(),
PeeringCidrRange: pulumi.String("SLASH_22"),
})
if err != nil {
return err
}
_, err = apigee.NewApiProduct(ctx, "basic_api_product", &apigee.ApiProductArgs{
OrgId: apigeeOrg.ID(),
Name: pulumi.String("my-product"),
DisplayName: pulumi.String("My Basic API Product"),
ApprovalType: pulumi.String("auto"),
}, 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 = "my-instance",
Location = "us-central1",
OrgId = apigeeOrg.Id,
PeeringCidrRange = "SLASH_22",
});
var basicApiProduct = new Gcp.Apigee.ApiProduct("basic_api_product", new()
{
OrgId = apigeeOrg.Id,
Name = "my-product",
DisplayName = "My Basic API Product",
ApprovalType = "auto",
}, 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.ApiProduct;
import com.pulumi.gcp.apigee.ApiProductArgs;
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(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);
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.project())
.authorizedNetwork(apigeeNetwork.id())
.build(), CustomResourceOptions.builder()
.dependsOn(apigeeVpcConnection)
.build());
var apigeeInstance = new Instance("apigeeInstance", InstanceArgs.builder()
.name("my-instance")
.location("us-central1")
.orgId(apigeeOrg.id())
.peeringCidrRange("SLASH_22")
.build());
var basicApiProduct = new ApiProduct("basicApiProduct", ApiProductArgs.builder()
.orgId(apigeeOrg.id())
.name("my-product")
.displayName("My Basic API Product")
.approvalType("auto")
.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: my-instance
location: us-central1
orgId: ${apigeeOrg.id}
peeringCidrRange: SLASH_22
basicApiProduct:
type: gcp:apigee:ApiProduct
name: basic_api_product
properties:
orgId: ${apigeeOrg.id}
name: my-product
displayName: My Basic API Product
approvalType: auto
options:
dependsOn:
- ${apigeeInstance}
variables:
current:
fn::invoke:
function: gcp:organizations:getClientConfig
arguments: {}
Apigee Api Product With Legacy Operation
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: "my-instance",
location: "us-central1",
orgId: apigeeOrg.id,
peeringCidrRange: "SLASH_22",
});
const fullApiProduct = new gcp.apigee.ApiProduct("full_api_product", {
orgId: apigeeOrg.id,
name: "my-product",
displayName: "My full API Product",
approvalType: "auto",
description: "This is a sample API Product created with Terraform.",
attributes: [{
name: "access",
value: "private",
}],
environments: [
"dev",
"hom",
],
proxies: ["hello-world"],
apiResources: [
"/",
"/weather/**",
],
scopes: [
"read:weather",
"write:reports",
],
quota: "10000",
quotaInterval: "1",
quotaTimeUnit: "day",
quotaCounterScope: "PROXY",
}, {
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="my-instance",
location="us-central1",
org_id=apigee_org.id,
peering_cidr_range="SLASH_22")
full_api_product = gcp.apigee.ApiProduct("full_api_product",
org_id=apigee_org.id,
name="my-product",
display_name="My full API Product",
approval_type="auto",
description="This is a sample API Product created with Terraform.",
attributes=[{
"name": "access",
"value": "private",
}],
environments=[
"dev",
"hom",
],
proxies=["hello-world"],
api_resources=[
"/",
"/weather/**",
],
scopes=[
"read:weather",
"write:reports",
],
quota="10000",
quota_interval="1",
quota_time_unit="day",
quota_counter_scope="PROXY",
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("my-instance"),
Location: pulumi.String("us-central1"),
OrgId: apigeeOrg.ID(),
PeeringCidrRange: pulumi.String("SLASH_22"),
})
if err != nil {
return err
}
_, err = apigee.NewApiProduct(ctx, "full_api_product", &apigee.ApiProductArgs{
OrgId: apigeeOrg.ID(),
Name: pulumi.String("my-product"),
DisplayName: pulumi.String("My full API Product"),
ApprovalType: pulumi.String("auto"),
Description: pulumi.String("This is a sample API Product created with Terraform."),
Attributes: apigee.ApiProductAttributeArray{
&apigee.ApiProductAttributeArgs{
Name: pulumi.String("access"),
Value: pulumi.String("private"),
},
},
Environments: pulumi.StringArray{
pulumi.String("dev"),
pulumi.String("hom"),
},
Proxies: pulumi.StringArray{
pulumi.String("hello-world"),
},
ApiResources: pulumi.StringArray{
pulumi.String("/"),
pulumi.String("/weather/**"),
},
Scopes: pulumi.StringArray{
pulumi.String("read:weather"),
pulumi.String("write:reports"),
},
Quota: pulumi.String("10000"),
QuotaInterval: pulumi.String("1"),
QuotaTimeUnit: pulumi.String("day"),
QuotaCounterScope: pulumi.String("PROXY"),
}, 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 = "my-instance",
Location = "us-central1",
OrgId = apigeeOrg.Id,
PeeringCidrRange = "SLASH_22",
});
var fullApiProduct = new Gcp.Apigee.ApiProduct("full_api_product", new()
{
OrgId = apigeeOrg.Id,
Name = "my-product",
DisplayName = "My full API Product",
ApprovalType = "auto",
Description = "This is a sample API Product created with Terraform.",
Attributes = new[]
{
new Gcp.Apigee.Inputs.ApiProductAttributeArgs
{
Name = "access",
Value = "private",
},
},
Environments = new[]
{
"dev",
"hom",
},
Proxies = new[]
{
"hello-world",
},
ApiResources = new[]
{
"/",
"/weather/**",
},
Scopes = new[]
{
"read:weather",
"write:reports",
},
Quota = "10000",
QuotaInterval = "1",
QuotaTimeUnit = "day",
QuotaCounterScope = "PROXY",
}, 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.ApiProduct;
import com.pulumi.gcp.apigee.ApiProductArgs;
import com.pulumi.gcp.apigee.inputs.ApiProductAttributeArgs;
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(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);
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.project())
.authorizedNetwork(apigeeNetwork.id())
.build(), CustomResourceOptions.builder()
.dependsOn(apigeeVpcConnection)
.build());
var apigeeInstance = new Instance("apigeeInstance", InstanceArgs.builder()
.name("my-instance")
.location("us-central1")
.orgId(apigeeOrg.id())
.peeringCidrRange("SLASH_22")
.build());
var fullApiProduct = new ApiProduct("fullApiProduct", ApiProductArgs.builder()
.orgId(apigeeOrg.id())
.name("my-product")
.displayName("My full API Product")
.approvalType("auto")
.description("This is a sample API Product created with Terraform.")
.attributes(ApiProductAttributeArgs.builder()
.name("access")
.value("private")
.build())
.environments(
"dev",
"hom")
.proxies("hello-world")
.apiResources(
"/",
"/weather/**")
.scopes(
"read:weather",
"write:reports")
.quota("10000")
.quotaInterval("1")
.quotaTimeUnit("day")
.quotaCounterScope("PROXY")
.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: my-instance
location: us-central1
orgId: ${apigeeOrg.id}
peeringCidrRange: SLASH_22
fullApiProduct:
type: gcp:apigee:ApiProduct
name: full_api_product
properties:
orgId: ${apigeeOrg.id}
name: my-product
displayName: My full API Product
approvalType: auto
description: This is a sample API Product created with Terraform.
attributes:
- name: access
value: private
environments:
- dev
- hom
proxies:
- hello-world
apiResources:
- /
- /weather/**
scopes:
- read:weather
- write:reports
quota: '10000'
quotaInterval: '1'
quotaTimeUnit: day
quotaCounterScope: PROXY
options:
dependsOn:
- ${apigeeInstance}
variables:
current:
fn::invoke:
function: gcp:organizations:getClientConfig
arguments: {}
Apigee Api Product 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: "my-instance",
location: "us-central1",
orgId: apigeeOrg.id,
peeringCidrRange: "SLASH_22",
});
const fullApiProduct = new gcp.apigee.ApiProduct("full_api_product", {
orgId: apigeeOrg.id,
name: "my-product",
displayName: "My full API Product",
approvalType: "auto",
description: "This is a sample API Product created with Terraform.",
quota: "10000",
quotaInterval: "1",
quotaTimeUnit: "day",
quotaCounterScope: "PROXY",
environments: [
"dev",
"hom",
],
scopes: [
"read:weather",
"write:reports",
],
attributes: [
{
name: "access",
value: "private",
},
{
name: "custom",
value: "value",
},
],
operationGroup: {
operationConfigType: "proxy",
operationConfigs: [
{
apiSource: "anoter-proxy",
operations: [{
resource: "/",
methods: [
"POST",
"GET",
],
}],
quota: {
limit: "1000",
interval: "5",
timeUnit: "minute",
},
attributes: [{
name: "custom",
value: "value",
}],
},
{
apiSource: "hello-world",
operations: [{
resource: "/test",
methods: [
"POST",
"GET",
],
}],
quota: {
limit: "10",
interval: "30",
timeUnit: "second",
},
attributes: [{
name: "custom",
value: "value",
}],
},
],
},
graphqlOperationGroup: {
operationConfigType: "proxy",
operationConfigs: [
{
apiSource: "hello-world",
quota: {
limit: "30",
interval: "50",
timeUnit: "second",
},
operations: [{
operationTypes: ["QUERY"],
operation: "test",
}],
attributes: [{
name: "custom",
value: "value",
}],
},
{
apiSource: "another-proxy",
quota: {
limit: "50000",
interval: "12",
timeUnit: "hour",
},
operations: [{
operationTypes: ["MUTATION"],
operation: "test",
}],
attributes: [{
name: "custom",
value: "value",
}],
},
],
},
grpcOperationGroup: {
operationConfigs: [
{
apiSource: "another-proxy",
service: "grpc another test",
methods: [
"method3",
"method4",
],
quota: {
limit: "1000000",
interval: "1",
timeUnit: "month",
},
attributes: [{
name: "graph",
value: "value",
}],
},
{
apiSource: "hello-world",
service: "grpc test",
methods: [
"method1",
"method2",
],
quota: {
limit: "5",
interval: "1",
timeUnit: "second",
},
attributes: [{
name: "graph",
value: "value",
}],
},
],
},
}, {
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="my-instance",
location="us-central1",
org_id=apigee_org.id,
peering_cidr_range="SLASH_22")
full_api_product = gcp.apigee.ApiProduct("full_api_product",
org_id=apigee_org.id,
name="my-product",
display_name="My full API Product",
approval_type="auto",
description="This is a sample API Product created with Terraform.",
quota="10000",
quota_interval="1",
quota_time_unit="day",
quota_counter_scope="PROXY",
environments=[
"dev",
"hom",
],
scopes=[
"read:weather",
"write:reports",
],
attributes=[
{
"name": "access",
"value": "private",
},
{
"name": "custom",
"value": "value",
},
],
operation_group={
"operation_config_type": "proxy",
"operation_configs": [
{
"api_source": "anoter-proxy",
"operations": [{
"resource": "/",
"methods": [
"POST",
"GET",
],
}],
"quota": {
"limit": "1000",
"interval": "5",
"time_unit": "minute",
},
"attributes": [{
"name": "custom",
"value": "value",
}],
},
{
"api_source": "hello-world",
"operations": [{
"resource": "/test",
"methods": [
"POST",
"GET",
],
}],
"quota": {
"limit": "10",
"interval": "30",
"time_unit": "second",
},
"attributes": [{
"name": "custom",
"value": "value",
}],
},
],
},
graphql_operation_group={
"operation_config_type": "proxy",
"operation_configs": [
{
"api_source": "hello-world",
"quota": {
"limit": "30",
"interval": "50",
"time_unit": "second",
},
"operations": [{
"operation_types": ["QUERY"],
"operation": "test",
}],
"attributes": [{
"name": "custom",
"value": "value",
}],
},
{
"api_source": "another-proxy",
"quota": {
"limit": "50000",
"interval": "12",
"time_unit": "hour",
},
"operations": [{
"operation_types": ["MUTATION"],
"operation": "test",
}],
"attributes": [{
"name": "custom",
"value": "value",
}],
},
],
},
grpc_operation_group={
"operation_configs": [
{
"api_source": "another-proxy",
"service": "grpc another test",
"methods": [
"method3",
"method4",
],
"quota": {
"limit": "1000000",
"interval": "1",
"time_unit": "month",
},
"attributes": [{
"name": "graph",
"value": "value",
}],
},
{
"api_source": "hello-world",
"service": "grpc test",
"methods": [
"method1",
"method2",
],
"quota": {
"limit": "5",
"interval": "1",
"time_unit": "second",
},
"attributes": [{
"name": "graph",
"value": "value",
}],
},
],
},
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("my-instance"),
Location: pulumi.String("us-central1"),
OrgId: apigeeOrg.ID(),
PeeringCidrRange: pulumi.String("SLASH_22"),
})
if err != nil {
return err
}
_, err = apigee.NewApiProduct(ctx, "full_api_product", &apigee.ApiProductArgs{
OrgId: apigeeOrg.ID(),
Name: pulumi.String("my-product"),
DisplayName: pulumi.String("My full API Product"),
ApprovalType: pulumi.String("auto"),
Description: pulumi.String("This is a sample API Product created with Terraform."),
Quota: pulumi.String("10000"),
QuotaInterval: pulumi.String("1"),
QuotaTimeUnit: pulumi.String("day"),
QuotaCounterScope: pulumi.String("PROXY"),
Environments: pulumi.StringArray{
pulumi.String("dev"),
pulumi.String("hom"),
},
Scopes: pulumi.StringArray{
pulumi.String("read:weather"),
pulumi.String("write:reports"),
},
Attributes: apigee.ApiProductAttributeArray{
&apigee.ApiProductAttributeArgs{
Name: pulumi.String("access"),
Value: pulumi.String("private"),
},
&apigee.ApiProductAttributeArgs{
Name: pulumi.String("custom"),
Value: pulumi.String("value"),
},
},
OperationGroup: &apigee.ApiProductOperationGroupArgs{
OperationConfigType: pulumi.String("proxy"),
OperationConfigs: apigee.ApiProductOperationGroupOperationConfigArray{
&apigee.ApiProductOperationGroupOperationConfigArgs{
ApiSource: pulumi.String("anoter-proxy"),
Operations: apigee.ApiProductOperationGroupOperationConfigOperationArray{
&apigee.ApiProductOperationGroupOperationConfigOperationArgs{
Resource: pulumi.String("/"),
Methods: pulumi.StringArray{
pulumi.String("POST"),
pulumi.String("GET"),
},
},
},
Quota: &apigee.ApiProductOperationGroupOperationConfigQuotaArgs{
Limit: pulumi.String("1000"),
Interval: pulumi.String("5"),
TimeUnit: pulumi.String("minute"),
},
Attributes: apigee.ApiProductOperationGroupOperationConfigAttributeArray{
&apigee.ApiProductOperationGroupOperationConfigAttributeArgs{
Name: pulumi.String("custom"),
Value: pulumi.String("value"),
},
},
},
&apigee.ApiProductOperationGroupOperationConfigArgs{
ApiSource: pulumi.String("hello-world"),
Operations: apigee.ApiProductOperationGroupOperationConfigOperationArray{
&apigee.ApiProductOperationGroupOperationConfigOperationArgs{
Resource: pulumi.String("/test"),
Methods: pulumi.StringArray{
pulumi.String("POST"),
pulumi.String("GET"),
},
},
},
Quota: &apigee.ApiProductOperationGroupOperationConfigQuotaArgs{
Limit: pulumi.String("10"),
Interval: pulumi.String("30"),
TimeUnit: pulumi.String("second"),
},
Attributes: apigee.ApiProductOperationGroupOperationConfigAttributeArray{
&apigee.ApiProductOperationGroupOperationConfigAttributeArgs{
Name: pulumi.String("custom"),
Value: pulumi.String("value"),
},
},
},
},
},
GraphqlOperationGroup: &apigee.ApiProductGraphqlOperationGroupArgs{
OperationConfigType: pulumi.String("proxy"),
OperationConfigs: apigee.ApiProductGraphqlOperationGroupOperationConfigArray{
&apigee.ApiProductGraphqlOperationGroupOperationConfigArgs{
ApiSource: pulumi.String("hello-world"),
Quota: &apigee.ApiProductGraphqlOperationGroupOperationConfigQuotaArgs{
Limit: pulumi.String("30"),
Interval: pulumi.String("50"),
TimeUnit: pulumi.String("second"),
},
Operations: apigee.ApiProductGraphqlOperationGroupOperationConfigOperationArray{
&apigee.ApiProductGraphqlOperationGroupOperationConfigOperationArgs{
OperationTypes: pulumi.StringArray{
pulumi.String("QUERY"),
},
Operation: pulumi.String("test"),
},
},
Attributes: apigee.ApiProductGraphqlOperationGroupOperationConfigAttributeArray{
&apigee.ApiProductGraphqlOperationGroupOperationConfigAttributeArgs{
Name: pulumi.String("custom"),
Value: pulumi.String("value"),
},
},
},
&apigee.ApiProductGraphqlOperationGroupOperationConfigArgs{
ApiSource: pulumi.String("another-proxy"),
Quota: &apigee.ApiProductGraphqlOperationGroupOperationConfigQuotaArgs{
Limit: pulumi.String("50000"),
Interval: pulumi.String("12"),
TimeUnit: pulumi.String("hour"),
},
Operations: apigee.ApiProductGraphqlOperationGroupOperationConfigOperationArray{
&apigee.ApiProductGraphqlOperationGroupOperationConfigOperationArgs{
OperationTypes: pulumi.StringArray{
pulumi.String("MUTATION"),
},
Operation: pulumi.String("test"),
},
},
Attributes: apigee.ApiProductGraphqlOperationGroupOperationConfigAttributeArray{
&apigee.ApiProductGraphqlOperationGroupOperationConfigAttributeArgs{
Name: pulumi.String("custom"),
Value: pulumi.String("value"),
},
},
},
},
},
GrpcOperationGroup: &apigee.ApiProductGrpcOperationGroupArgs{
OperationConfigs: apigee.ApiProductGrpcOperationGroupOperationConfigArray{
&apigee.ApiProductGrpcOperationGroupOperationConfigArgs{
ApiSource: pulumi.String("another-proxy"),
Service: pulumi.String("grpc another test"),
Methods: pulumi.StringArray{
pulumi.String("method3"),
pulumi.String("method4"),
},
Quota: &apigee.ApiProductGrpcOperationGroupOperationConfigQuotaArgs{
Limit: pulumi.String("1000000"),
Interval: pulumi.String("1"),
TimeUnit: pulumi.String("month"),
},
Attributes: apigee.ApiProductGrpcOperationGroupOperationConfigAttributeArray{
&apigee.ApiProductGrpcOperationGroupOperationConfigAttributeArgs{
Name: pulumi.String("graph"),
Value: pulumi.String("value"),
},
},
},
&apigee.ApiProductGrpcOperationGroupOperationConfigArgs{
ApiSource: pulumi.String("hello-world"),
Service: pulumi.String("grpc test"),
Methods: pulumi.StringArray{
pulumi.String("method1"),
pulumi.String("method2"),
},
Quota: &apigee.ApiProductGrpcOperationGroupOperationConfigQuotaArgs{
Limit: pulumi.String("5"),
Interval: pulumi.String("1"),
TimeUnit: pulumi.String("second"),
},
Attributes: apigee.ApiProductGrpcOperationGroupOperationConfigAttributeArray{
&apigee.ApiProductGrpcOperationGroupOperationConfigAttributeArgs{
Name: pulumi.String("graph"),
Value: pulumi.String("value"),
},
},
},
},
},
}, 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 = "my-instance",
Location = "us-central1",
OrgId = apigeeOrg.Id,
PeeringCidrRange = "SLASH_22",
});
var fullApiProduct = new Gcp.Apigee.ApiProduct("full_api_product", new()
{
OrgId = apigeeOrg.Id,
Name = "my-product",
DisplayName = "My full API Product",
ApprovalType = "auto",
Description = "This is a sample API Product created with Terraform.",
Quota = "10000",
QuotaInterval = "1",
QuotaTimeUnit = "day",
QuotaCounterScope = "PROXY",
Environments = new[]
{
"dev",
"hom",
},
Scopes = new[]
{
"read:weather",
"write:reports",
},
Attributes = new[]
{
new Gcp.Apigee.Inputs.ApiProductAttributeArgs
{
Name = "access",
Value = "private",
},
new Gcp.Apigee.Inputs.ApiProductAttributeArgs
{
Name = "custom",
Value = "value",
},
},
OperationGroup = new Gcp.Apigee.Inputs.ApiProductOperationGroupArgs
{
OperationConfigType = "proxy",
OperationConfigs = new[]
{
new Gcp.Apigee.Inputs.ApiProductOperationGroupOperationConfigArgs
{
ApiSource = "anoter-proxy",
Operations = new[]
{
new Gcp.Apigee.Inputs.ApiProductOperationGroupOperationConfigOperationArgs
{
Resource = "/",
Methods = new[]
{
"POST",
"GET",
},
},
},
Quota = new Gcp.Apigee.Inputs.ApiProductOperationGroupOperationConfigQuotaArgs
{
Limit = "1000",
Interval = "5",
TimeUnit = "minute",
},
Attributes = new[]
{
new Gcp.Apigee.Inputs.ApiProductOperationGroupOperationConfigAttributeArgs
{
Name = "custom",
Value = "value",
},
},
},
new Gcp.Apigee.Inputs.ApiProductOperationGroupOperationConfigArgs
{
ApiSource = "hello-world",
Operations = new[]
{
new Gcp.Apigee.Inputs.ApiProductOperationGroupOperationConfigOperationArgs
{
Resource = "/test",
Methods = new[]
{
"POST",
"GET",
},
},
},
Quota = new Gcp.Apigee.Inputs.ApiProductOperationGroupOperationConfigQuotaArgs
{
Limit = "10",
Interval = "30",
TimeUnit = "second",
},
Attributes = new[]
{
new Gcp.Apigee.Inputs.ApiProductOperationGroupOperationConfigAttributeArgs
{
Name = "custom",
Value = "value",
},
},
},
},
},
GraphqlOperationGroup = new Gcp.Apigee.Inputs.ApiProductGraphqlOperationGroupArgs
{
OperationConfigType = "proxy",
OperationConfigs = new[]
{
new Gcp.Apigee.Inputs.ApiProductGraphqlOperationGroupOperationConfigArgs
{
ApiSource = "hello-world",
Quota = new Gcp.Apigee.Inputs.ApiProductGraphqlOperationGroupOperationConfigQuotaArgs
{
Limit = "30",
Interval = "50",
TimeUnit = "second",
},
Operations = new[]
{
new Gcp.Apigee.Inputs.ApiProductGraphqlOperationGroupOperationConfigOperationArgs
{
OperationTypes = new[]
{
"QUERY",
},
Operation = "test",
},
},
Attributes = new[]
{
new Gcp.Apigee.Inputs.ApiProductGraphqlOperationGroupOperationConfigAttributeArgs
{
Name = "custom",
Value = "value",
},
},
},
new Gcp.Apigee.Inputs.ApiProductGraphqlOperationGroupOperationConfigArgs
{
ApiSource = "another-proxy",
Quota = new Gcp.Apigee.Inputs.ApiProductGraphqlOperationGroupOperationConfigQuotaArgs
{
Limit = "50000",
Interval = "12",
TimeUnit = "hour",
},
Operations = new[]
{
new Gcp.Apigee.Inputs.ApiProductGraphqlOperationGroupOperationConfigOperationArgs
{
OperationTypes = new[]
{
"MUTATION",
},
Operation = "test",
},
},
Attributes = new[]
{
new Gcp.Apigee.Inputs.ApiProductGraphqlOperationGroupOperationConfigAttributeArgs
{
Name = "custom",
Value = "value",
},
},
},
},
},
GrpcOperationGroup = new Gcp.Apigee.Inputs.ApiProductGrpcOperationGroupArgs
{
OperationConfigs = new[]
{
new Gcp.Apigee.Inputs.ApiProductGrpcOperationGroupOperationConfigArgs
{
ApiSource = "another-proxy",
Service = "grpc another test",
Methods = new[]
{
"method3",
"method4",
},
Quota = new Gcp.Apigee.Inputs.ApiProductGrpcOperationGroupOperationConfigQuotaArgs
{
Limit = "1000000",
Interval = "1",
TimeUnit = "month",
},
Attributes = new[]
{
new Gcp.Apigee.Inputs.ApiProductGrpcOperationGroupOperationConfigAttributeArgs
{
Name = "graph",
Value = "value",
},
},
},
new Gcp.Apigee.Inputs.ApiProductGrpcOperationGroupOperationConfigArgs
{
ApiSource = "hello-world",
Service = "grpc test",
Methods = new[]
{
"method1",
"method2",
},
Quota = new Gcp.Apigee.Inputs.ApiProductGrpcOperationGroupOperationConfigQuotaArgs
{
Limit = "5",
Interval = "1",
TimeUnit = "second",
},
Attributes = new[]
{
new Gcp.Apigee.Inputs.ApiProductGrpcOperationGroupOperationConfigAttributeArgs
{
Name = "graph",
Value = "value",
},
},
},
},
},
}, 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.ApiProduct;
import com.pulumi.gcp.apigee.ApiProductArgs;
import com.pulumi.gcp.apigee.inputs.ApiProductAttributeArgs;
import com.pulumi.gcp.apigee.inputs.ApiProductOperationGroupArgs;
import com.pulumi.gcp.apigee.inputs.ApiProductGraphqlOperationGroupArgs;
import com.pulumi.gcp.apigee.inputs.ApiProductGrpcOperationGroupArgs;
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(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);
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.project())
.authorizedNetwork(apigeeNetwork.id())
.build(), CustomResourceOptions.builder()
.dependsOn(apigeeVpcConnection)
.build());
var apigeeInstance = new Instance("apigeeInstance", InstanceArgs.builder()
.name("my-instance")
.location("us-central1")
.orgId(apigeeOrg.id())
.peeringCidrRange("SLASH_22")
.build());
var fullApiProduct = new ApiProduct("fullApiProduct", ApiProductArgs.builder()
.orgId(apigeeOrg.id())
.name("my-product")
.displayName("My full API Product")
.approvalType("auto")
.description("This is a sample API Product created with Terraform.")
.quota("10000")
.quotaInterval("1")
.quotaTimeUnit("day")
.quotaCounterScope("PROXY")
.environments(
"dev",
"hom")
.scopes(
"read:weather",
"write:reports")
.attributes(
ApiProductAttributeArgs.builder()
.name("access")
.value("private")
.build(),
ApiProductAttributeArgs.builder()
.name("custom")
.value("value")
.build())
.operationGroup(ApiProductOperationGroupArgs.builder()
.operationConfigType("proxy")
.operationConfigs(
ApiProductOperationGroupOperationConfigArgs.builder()
.apiSource("anoter-proxy")
.operations(ApiProductOperationGroupOperationConfigOperationArgs.builder()
.resource("/")
.methods(
"POST",
"GET")
.build())
.quota(ApiProductOperationGroupOperationConfigQuotaArgs.builder()
.limit("1000")
.interval("5")
.timeUnit("minute")
.build())
.attributes(ApiProductOperationGroupOperationConfigAttributeArgs.builder()
.name("custom")
.value("value")
.build())
.build(),
ApiProductOperationGroupOperationConfigArgs.builder()
.apiSource("hello-world")
.operations(ApiProductOperationGroupOperationConfigOperationArgs.builder()
.resource("/test")
.methods(
"POST",
"GET")
.build())
.quota(ApiProductOperationGroupOperationConfigQuotaArgs.builder()
.limit("10")
.interval("30")
.timeUnit("second")
.build())
.attributes(ApiProductOperationGroupOperationConfigAttributeArgs.builder()
.name("custom")
.value("value")
.build())
.build())
.build())
.graphqlOperationGroup(ApiProductGraphqlOperationGroupArgs.builder()
.operationConfigType("proxy")
.operationConfigs(
ApiProductGraphqlOperationGroupOperationConfigArgs.builder()
.apiSource("hello-world")
.quota(ApiProductGraphqlOperationGroupOperationConfigQuotaArgs.builder()
.limit("30")
.interval("50")
.timeUnit("second")
.build())
.operations(ApiProductGraphqlOperationGroupOperationConfigOperationArgs.builder()
.operationTypes("QUERY")
.operation("test")
.build())
.attributes(ApiProductGraphqlOperationGroupOperationConfigAttributeArgs.builder()
.name("custom")
.value("value")
.build())
.build(),
ApiProductGraphqlOperationGroupOperationConfigArgs.builder()
.apiSource("another-proxy")
.quota(ApiProductGraphqlOperationGroupOperationConfigQuotaArgs.builder()
.limit("50000")
.interval("12")
.timeUnit("hour")
.build())
.operations(ApiProductGraphqlOperationGroupOperationConfigOperationArgs.builder()
.operationTypes("MUTATION")
.operation("test")
.build())
.attributes(ApiProductGraphqlOperationGroupOperationConfigAttributeArgs.builder()
.name("custom")
.value("value")
.build())
.build())
.build())
.grpcOperationGroup(ApiProductGrpcOperationGroupArgs.builder()
.operationConfigs(
ApiProductGrpcOperationGroupOperationConfigArgs.builder()
.apiSource("another-proxy")
.service("grpc another test")
.methods(
"method3",
"method4")
.quota(ApiProductGrpcOperationGroupOperationConfigQuotaArgs.builder()
.limit("1000000")
.interval("1")
.timeUnit("month")
.build())
.attributes(ApiProductGrpcOperationGroupOperationConfigAttributeArgs.builder()
.name("graph")
.value("value")
.build())
.build(),
ApiProductGrpcOperationGroupOperationConfigArgs.builder()
.apiSource("hello-world")
.service("grpc test")
.methods(
"method1",
"method2")
.quota(ApiProductGrpcOperationGroupOperationConfigQuotaArgs.builder()
.limit("5")
.interval("1")
.timeUnit("second")
.build())
.attributes(ApiProductGrpcOperationGroupOperationConfigAttributeArgs.builder()
.name("graph")
.value("value")
.build())
.build())
.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: my-instance
location: us-central1
orgId: ${apigeeOrg.id}
peeringCidrRange: SLASH_22
fullApiProduct:
type: gcp:apigee:ApiProduct
name: full_api_product
properties:
orgId: ${apigeeOrg.id}
name: my-product
displayName: My full API Product
approvalType: auto
description: This is a sample API Product created with Terraform.
quota: '10000'
quotaInterval: '1'
quotaTimeUnit: day
quotaCounterScope: PROXY
environments:
- dev
- hom
scopes:
- read:weather
- write:reports
attributes:
- name: access
value: private
- name: custom
value: value
operationGroup:
operationConfigType: proxy
operationConfigs:
- apiSource: anoter-proxy
operations:
- resource: /
methods:
- POST
- GET
quota:
limit: '1000'
interval: '5'
timeUnit: minute
attributes:
- name: custom
value: value
- apiSource: hello-world
operations:
- resource: /test
methods:
- POST
- GET
quota:
limit: '10'
interval: '30'
timeUnit: second
attributes:
- name: custom
value: value
graphqlOperationGroup:
operationConfigType: proxy
operationConfigs:
- apiSource: hello-world
quota:
limit: '30'
interval: '50'
timeUnit: second
operations:
- operationTypes:
- QUERY
operation: test
attributes:
- name: custom
value: value
- apiSource: another-proxy
quota:
limit: '50000'
interval: '12'
timeUnit: hour
operations:
- operationTypes:
- MUTATION
operation: test
attributes:
- name: custom
value: value
grpcOperationGroup:
operationConfigs:
- apiSource: another-proxy
service: grpc another test
methods:
- method3
- method4
quota:
limit: '1000000'
interval: '1'
timeUnit: month
attributes:
- name: graph
value: value
- apiSource: hello-world
service: grpc test
methods:
- method1
- method2
quota:
limit: '5'
interval: '1'
timeUnit: second
attributes:
- name: graph
value: value
options:
dependsOn:
- ${apigeeInstance}
variables:
current:
fn::invoke:
function: gcp:organizations:getClientConfig
arguments: {}
Create ApiProduct Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new ApiProduct(name: string, args: ApiProductArgs, opts?: CustomResourceOptions);
@overload
def ApiProduct(resource_name: str,
args: ApiProductArgs,
opts: Optional[ResourceOptions] = None)
@overload
def ApiProduct(resource_name: str,
opts: Optional[ResourceOptions] = None,
display_name: Optional[str] = None,
org_id: Optional[str] = None,
name: Optional[str] = None,
operation_group: Optional[ApiProductOperationGroupArgs] = None,
attributes: Optional[Sequence[ApiProductAttributeArgs]] = None,
environments: Optional[Sequence[str]] = None,
graphql_operation_group: Optional[ApiProductGraphqlOperationGroupArgs] = None,
grpc_operation_group: Optional[ApiProductGrpcOperationGroupArgs] = None,
api_resources: Optional[Sequence[str]] = None,
description: Optional[str] = None,
approval_type: Optional[str] = None,
proxies: Optional[Sequence[str]] = None,
quota: Optional[str] = None,
quota_counter_scope: Optional[str] = None,
quota_interval: Optional[str] = None,
quota_time_unit: Optional[str] = None,
scopes: Optional[Sequence[str]] = None,
space: Optional[str] = None)
func NewApiProduct(ctx *Context, name string, args ApiProductArgs, opts ...ResourceOption) (*ApiProduct, error)
public ApiProduct(string name, ApiProductArgs args, CustomResourceOptions? opts = null)
public ApiProduct(String name, ApiProductArgs args)
public ApiProduct(String name, ApiProductArgs args, CustomResourceOptions options)
type: gcp:apigee:ApiProduct
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 ApiProductArgs
- 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 ApiProductArgs
- 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 ApiProductArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args ApiProductArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args ApiProductArgs
- 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 apiProductResource = new Gcp.Apigee.ApiProduct("apiProductResource", new()
{
DisplayName = "string",
OrgId = "string",
Name = "string",
OperationGroup = new Gcp.Apigee.Inputs.ApiProductOperationGroupArgs
{
OperationConfigType = "string",
OperationConfigs = new[]
{
new Gcp.Apigee.Inputs.ApiProductOperationGroupOperationConfigArgs
{
ApiSource = "string",
Attributes = new[]
{
new Gcp.Apigee.Inputs.ApiProductOperationGroupOperationConfigAttributeArgs
{
Name = "string",
Value = "string",
},
},
Operations = new[]
{
new Gcp.Apigee.Inputs.ApiProductOperationGroupOperationConfigOperationArgs
{
Methods = new[]
{
"string",
},
Resource = "string",
},
},
Quota = new Gcp.Apigee.Inputs.ApiProductOperationGroupOperationConfigQuotaArgs
{
Interval = "string",
Limit = "string",
TimeUnit = "string",
},
},
},
},
Attributes = new[]
{
new Gcp.Apigee.Inputs.ApiProductAttributeArgs
{
Name = "string",
Value = "string",
},
},
Environments = new[]
{
"string",
},
GraphqlOperationGroup = new Gcp.Apigee.Inputs.ApiProductGraphqlOperationGroupArgs
{
OperationConfigType = "string",
OperationConfigs = new[]
{
new Gcp.Apigee.Inputs.ApiProductGraphqlOperationGroupOperationConfigArgs
{
ApiSource = "string",
Attributes = new[]
{
new Gcp.Apigee.Inputs.ApiProductGraphqlOperationGroupOperationConfigAttributeArgs
{
Name = "string",
Value = "string",
},
},
Operations = new[]
{
new Gcp.Apigee.Inputs.ApiProductGraphqlOperationGroupOperationConfigOperationArgs
{
Operation = "string",
OperationTypes = new[]
{
"string",
},
},
},
Quota = new Gcp.Apigee.Inputs.ApiProductGraphqlOperationGroupOperationConfigQuotaArgs
{
Interval = "string",
Limit = "string",
TimeUnit = "string",
},
},
},
},
GrpcOperationGroup = new Gcp.Apigee.Inputs.ApiProductGrpcOperationGroupArgs
{
OperationConfigs = new[]
{
new Gcp.Apigee.Inputs.ApiProductGrpcOperationGroupOperationConfigArgs
{
ApiSource = "string",
Attributes = new[]
{
new Gcp.Apigee.Inputs.ApiProductGrpcOperationGroupOperationConfigAttributeArgs
{
Name = "string",
Value = "string",
},
},
Methods = new[]
{
"string",
},
Quota = new Gcp.Apigee.Inputs.ApiProductGrpcOperationGroupOperationConfigQuotaArgs
{
Interval = "string",
Limit = "string",
TimeUnit = "string",
},
Service = "string",
},
},
},
ApiResources = new[]
{
"string",
},
Description = "string",
ApprovalType = "string",
Proxies = new[]
{
"string",
},
Quota = "string",
QuotaCounterScope = "string",
QuotaInterval = "string",
QuotaTimeUnit = "string",
Scopes = new[]
{
"string",
},
Space = "string",
});
example, err := apigee.NewApiProduct(ctx, "apiProductResource", &apigee.ApiProductArgs{
DisplayName: pulumi.String("string"),
OrgId: pulumi.String("string"),
Name: pulumi.String("string"),
OperationGroup: &apigee.ApiProductOperationGroupArgs{
OperationConfigType: pulumi.String("string"),
OperationConfigs: apigee.ApiProductOperationGroupOperationConfigArray{
&apigee.ApiProductOperationGroupOperationConfigArgs{
ApiSource: pulumi.String("string"),
Attributes: apigee.ApiProductOperationGroupOperationConfigAttributeArray{
&apigee.ApiProductOperationGroupOperationConfigAttributeArgs{
Name: pulumi.String("string"),
Value: pulumi.String("string"),
},
},
Operations: apigee.ApiProductOperationGroupOperationConfigOperationArray{
&apigee.ApiProductOperationGroupOperationConfigOperationArgs{
Methods: pulumi.StringArray{
pulumi.String("string"),
},
Resource: pulumi.String("string"),
},
},
Quota: &apigee.ApiProductOperationGroupOperationConfigQuotaArgs{
Interval: pulumi.String("string"),
Limit: pulumi.String("string"),
TimeUnit: pulumi.String("string"),
},
},
},
},
Attributes: apigee.ApiProductAttributeArray{
&apigee.ApiProductAttributeArgs{
Name: pulumi.String("string"),
Value: pulumi.String("string"),
},
},
Environments: pulumi.StringArray{
pulumi.String("string"),
},
GraphqlOperationGroup: &apigee.ApiProductGraphqlOperationGroupArgs{
OperationConfigType: pulumi.String("string"),
OperationConfigs: apigee.ApiProductGraphqlOperationGroupOperationConfigArray{
&apigee.ApiProductGraphqlOperationGroupOperationConfigArgs{
ApiSource: pulumi.String("string"),
Attributes: apigee.ApiProductGraphqlOperationGroupOperationConfigAttributeArray{
&apigee.ApiProductGraphqlOperationGroupOperationConfigAttributeArgs{
Name: pulumi.String("string"),
Value: pulumi.String("string"),
},
},
Operations: apigee.ApiProductGraphqlOperationGroupOperationConfigOperationArray{
&apigee.ApiProductGraphqlOperationGroupOperationConfigOperationArgs{
Operation: pulumi.String("string"),
OperationTypes: pulumi.StringArray{
pulumi.String("string"),
},
},
},
Quota: &apigee.ApiProductGraphqlOperationGroupOperationConfigQuotaArgs{
Interval: pulumi.String("string"),
Limit: pulumi.String("string"),
TimeUnit: pulumi.String("string"),
},
},
},
},
GrpcOperationGroup: &apigee.ApiProductGrpcOperationGroupArgs{
OperationConfigs: apigee.ApiProductGrpcOperationGroupOperationConfigArray{
&apigee.ApiProductGrpcOperationGroupOperationConfigArgs{
ApiSource: pulumi.String("string"),
Attributes: apigee.ApiProductGrpcOperationGroupOperationConfigAttributeArray{
&apigee.ApiProductGrpcOperationGroupOperationConfigAttributeArgs{
Name: pulumi.String("string"),
Value: pulumi.String("string"),
},
},
Methods: pulumi.StringArray{
pulumi.String("string"),
},
Quota: &apigee.ApiProductGrpcOperationGroupOperationConfigQuotaArgs{
Interval: pulumi.String("string"),
Limit: pulumi.String("string"),
TimeUnit: pulumi.String("string"),
},
Service: pulumi.String("string"),
},
},
},
ApiResources: pulumi.StringArray{
pulumi.String("string"),
},
Description: pulumi.String("string"),
ApprovalType: pulumi.String("string"),
Proxies: pulumi.StringArray{
pulumi.String("string"),
},
Quota: pulumi.String("string"),
QuotaCounterScope: pulumi.String("string"),
QuotaInterval: pulumi.String("string"),
QuotaTimeUnit: pulumi.String("string"),
Scopes: pulumi.StringArray{
pulumi.String("string"),
},
Space: pulumi.String("string"),
})
var apiProductResource = new ApiProduct("apiProductResource", ApiProductArgs.builder()
.displayName("string")
.orgId("string")
.name("string")
.operationGroup(ApiProductOperationGroupArgs.builder()
.operationConfigType("string")
.operationConfigs(ApiProductOperationGroupOperationConfigArgs.builder()
.apiSource("string")
.attributes(ApiProductOperationGroupOperationConfigAttributeArgs.builder()
.name("string")
.value("string")
.build())
.operations(ApiProductOperationGroupOperationConfigOperationArgs.builder()
.methods("string")
.resource("string")
.build())
.quota(ApiProductOperationGroupOperationConfigQuotaArgs.builder()
.interval("string")
.limit("string")
.timeUnit("string")
.build())
.build())
.build())
.attributes(ApiProductAttributeArgs.builder()
.name("string")
.value("string")
.build())
.environments("string")
.graphqlOperationGroup(ApiProductGraphqlOperationGroupArgs.builder()
.operationConfigType("string")
.operationConfigs(ApiProductGraphqlOperationGroupOperationConfigArgs.builder()
.apiSource("string")
.attributes(ApiProductGraphqlOperationGroupOperationConfigAttributeArgs.builder()
.name("string")
.value("string")
.build())
.operations(ApiProductGraphqlOperationGroupOperationConfigOperationArgs.builder()
.operation("string")
.operationTypes("string")
.build())
.quota(ApiProductGraphqlOperationGroupOperationConfigQuotaArgs.builder()
.interval("string")
.limit("string")
.timeUnit("string")
.build())
.build())
.build())
.grpcOperationGroup(ApiProductGrpcOperationGroupArgs.builder()
.operationConfigs(ApiProductGrpcOperationGroupOperationConfigArgs.builder()
.apiSource("string")
.attributes(ApiProductGrpcOperationGroupOperationConfigAttributeArgs.builder()
.name("string")
.value("string")
.build())
.methods("string")
.quota(ApiProductGrpcOperationGroupOperationConfigQuotaArgs.builder()
.interval("string")
.limit("string")
.timeUnit("string")
.build())
.service("string")
.build())
.build())
.apiResources("string")
.description("string")
.approvalType("string")
.proxies("string")
.quota("string")
.quotaCounterScope("string")
.quotaInterval("string")
.quotaTimeUnit("string")
.scopes("string")
.space("string")
.build());
api_product_resource = gcp.apigee.ApiProduct("apiProductResource",
display_name="string",
org_id="string",
name="string",
operation_group={
"operation_config_type": "string",
"operation_configs": [{
"api_source": "string",
"attributes": [{
"name": "string",
"value": "string",
}],
"operations": [{
"methods": ["string"],
"resource": "string",
}],
"quota": {
"interval": "string",
"limit": "string",
"time_unit": "string",
},
}],
},
attributes=[{
"name": "string",
"value": "string",
}],
environments=["string"],
graphql_operation_group={
"operation_config_type": "string",
"operation_configs": [{
"api_source": "string",
"attributes": [{
"name": "string",
"value": "string",
}],
"operations": [{
"operation": "string",
"operation_types": ["string"],
}],
"quota": {
"interval": "string",
"limit": "string",
"time_unit": "string",
},
}],
},
grpc_operation_group={
"operation_configs": [{
"api_source": "string",
"attributes": [{
"name": "string",
"value": "string",
}],
"methods": ["string"],
"quota": {
"interval": "string",
"limit": "string",
"time_unit": "string",
},
"service": "string",
}],
},
api_resources=["string"],
description="string",
approval_type="string",
proxies=["string"],
quota="string",
quota_counter_scope="string",
quota_interval="string",
quota_time_unit="string",
scopes=["string"],
space="string")
const apiProductResource = new gcp.apigee.ApiProduct("apiProductResource", {
displayName: "string",
orgId: "string",
name: "string",
operationGroup: {
operationConfigType: "string",
operationConfigs: [{
apiSource: "string",
attributes: [{
name: "string",
value: "string",
}],
operations: [{
methods: ["string"],
resource: "string",
}],
quota: {
interval: "string",
limit: "string",
timeUnit: "string",
},
}],
},
attributes: [{
name: "string",
value: "string",
}],
environments: ["string"],
graphqlOperationGroup: {
operationConfigType: "string",
operationConfigs: [{
apiSource: "string",
attributes: [{
name: "string",
value: "string",
}],
operations: [{
operation: "string",
operationTypes: ["string"],
}],
quota: {
interval: "string",
limit: "string",
timeUnit: "string",
},
}],
},
grpcOperationGroup: {
operationConfigs: [{
apiSource: "string",
attributes: [{
name: "string",
value: "string",
}],
methods: ["string"],
quota: {
interval: "string",
limit: "string",
timeUnit: "string",
},
service: "string",
}],
},
apiResources: ["string"],
description: "string",
approvalType: "string",
proxies: ["string"],
quota: "string",
quotaCounterScope: "string",
quotaInterval: "string",
quotaTimeUnit: "string",
scopes: ["string"],
space: "string",
});
type: gcp:apigee:ApiProduct
properties:
apiResources:
- string
approvalType: string
attributes:
- name: string
value: string
description: string
displayName: string
environments:
- string
graphqlOperationGroup:
operationConfigType: string
operationConfigs:
- apiSource: string
attributes:
- name: string
value: string
operations:
- operation: string
operationTypes:
- string
quota:
interval: string
limit: string
timeUnit: string
grpcOperationGroup:
operationConfigs:
- apiSource: string
attributes:
- name: string
value: string
methods:
- string
quota:
interval: string
limit: string
timeUnit: string
service: string
name: string
operationGroup:
operationConfigType: string
operationConfigs:
- apiSource: string
attributes:
- name: string
value: string
operations:
- methods:
- string
resource: string
quota:
interval: string
limit: string
timeUnit: string
orgId: string
proxies:
- string
quota: string
quotaCounterScope: string
quotaInterval: string
quotaTimeUnit: string
scopes:
- string
space: string
ApiProduct 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 ApiProduct resource accepts the following input properties:
- Display
Name string - Name displayed in the UI or developer portal to developers registering for API access.
- Org
Id string - The Apigee Organization associated with the Apigee API product,
in the format
organizations/{{org_name}}
. - Api
Resources List<string> - Comma-separated list of API resources to be bundled in the API product. By default, the resource paths are mapped from the proxy.pathsuffix variable. The proxy path suffix is defined as the URI fragment following the ProxyEndpoint base path. For example, if the apiResources element is defined to be /forecastrss and the base path defined for the API proxy is /weather, then only requests to /weather/forecastrss are permitted by the API product.
- Approval
Type string - Flag that specifies how API keys are approved to access the APIs defined by the API product.
Valid values are
auto
ormanual
. Possible values are:auto
,manual
. - Attributes
List<Api
Product Attribute> - Array of attributes that may be used to extend the default API product profile with customer-specific metadata. You can specify a maximum of 18 attributes. Use this property to specify the access level of the API product as either public, private, or internal. Structure is documented below.
- Description string
- Description of the API product. Include key information about the API product that is not captured by other fields.
- Environments List<string>
- Comma-separated list of environment names to which the API product is bound. Requests to environments that are not listed are rejected. By specifying one or more environments, you can bind the resources listed in the API product to a specific environment, preventing developers from accessing those resources through API proxies deployed in another environment.
- Graphql
Operation ApiGroup Product Graphql Operation Group - Configuration used to group Apigee proxies or remote services with graphQL operation name, graphQL operation type and quotas. This grouping allows us to precisely set quota for a particular combination of graphQL name and operation type for a particular proxy request. If graphQL name is not set, this would imply quota will be applied on all graphQL requests matching the operation type. Structure is documented below.
- Grpc
Operation ApiGroup Product Grpc Operation Group - Optional. Configuration used to group Apigee proxies with gRPC services and method names. This grouping allows us to set quota for a particular proxy with the gRPC service name and method. If a method name is not set, this implies quota and authorization are applied to all gRPC methods implemented by that proxy for that particular gRPC service. Structure is documented below.
- Name string
- Internal name of the API product.
- Operation
Group ApiProduct Operation Group - Configuration used to group Apigee proxies or remote services with resources, method types, and quotas. The resource refers to the resource URI (excluding the base path). With this grouping, the API product creator is able to fine-tune and give precise control over which REST methods have access to specific resources and how many calls can be made (using the quota setting). Note: The apiResources setting cannot be specified for both the API product and operation group; otherwise the call will fail. Structure is documented below.
- Proxies List<string>
- Comma-separated list of API proxy names to which this API product is bound. By specifying API proxies, you can associate resources in the API product with specific API proxies, preventing developers from accessing those resources through other API proxies. Apigee rejects requests to API proxies that are not listed.
- Quota string
- Number of request messages permitted per app by this API product for the specified quotaInterval and quotaTimeUnit. For example, a quota of 50, for a quotaInterval of 12 and a quotaTimeUnit of hours means 50 requests are allowed every 12 hours.
- Quota
Counter stringScope - Scope of the quota decides how the quota counter gets applied and evaluate for quota violation. If the Scope is set as PROXY, then all the operations defined for the APIproduct that are associated with the same proxy will share the same quota counter set at the APIproduct level, making it a global counter at a proxy level. If the Scope is set as OPERATION, then each operations get the counter set at the API product dedicated, making it a local counter. Note that, the QuotaCounterScope applies only when an operation does not have dedicated quota set for itself.
Possible values are:
QUOTA_COUNTER_SCOPE_UNSPECIFIED
,PROXY
,OPERATION
. - Quota
Interval string - Time interval over which the number of request messages is calculated.
- Quota
Time stringUnit - Time unit defined for the quotaInterval. Valid values include second, minute, hour, day, month or year.
- Scopes List<string>
- Comma-separated list of OAuth scopes that are validated at runtime. Apigee validates that the scopes in any access token presented match the scopes defined in the OAuth policy associated with the API product.
- Space string
- Optional. The resource ID of the parent Space. If not set, the parent resource will be the Organization.
- Display
Name string - Name displayed in the UI or developer portal to developers registering for API access.
- Org
Id string - The Apigee Organization associated with the Apigee API product,
in the format
organizations/{{org_name}}
. - Api
Resources []string - Comma-separated list of API resources to be bundled in the API product. By default, the resource paths are mapped from the proxy.pathsuffix variable. The proxy path suffix is defined as the URI fragment following the ProxyEndpoint base path. For example, if the apiResources element is defined to be /forecastrss and the base path defined for the API proxy is /weather, then only requests to /weather/forecastrss are permitted by the API product.
- Approval
Type string - Flag that specifies how API keys are approved to access the APIs defined by the API product.
Valid values are
auto
ormanual
. Possible values are:auto
,manual
. - Attributes
[]Api
Product Attribute Args - Array of attributes that may be used to extend the default API product profile with customer-specific metadata. You can specify a maximum of 18 attributes. Use this property to specify the access level of the API product as either public, private, or internal. Structure is documented below.
- Description string
- Description of the API product. Include key information about the API product that is not captured by other fields.
- Environments []string
- Comma-separated list of environment names to which the API product is bound. Requests to environments that are not listed are rejected. By specifying one or more environments, you can bind the resources listed in the API product to a specific environment, preventing developers from accessing those resources through API proxies deployed in another environment.
- Graphql
Operation ApiGroup Product Graphql Operation Group Args - Configuration used to group Apigee proxies or remote services with graphQL operation name, graphQL operation type and quotas. This grouping allows us to precisely set quota for a particular combination of graphQL name and operation type for a particular proxy request. If graphQL name is not set, this would imply quota will be applied on all graphQL requests matching the operation type. Structure is documented below.
- Grpc
Operation ApiGroup Product Grpc Operation Group Args - Optional. Configuration used to group Apigee proxies with gRPC services and method names. This grouping allows us to set quota for a particular proxy with the gRPC service name and method. If a method name is not set, this implies quota and authorization are applied to all gRPC methods implemented by that proxy for that particular gRPC service. Structure is documented below.
- Name string
- Internal name of the API product.
- Operation
Group ApiProduct Operation Group Args - Configuration used to group Apigee proxies or remote services with resources, method types, and quotas. The resource refers to the resource URI (excluding the base path). With this grouping, the API product creator is able to fine-tune and give precise control over which REST methods have access to specific resources and how many calls can be made (using the quota setting). Note: The apiResources setting cannot be specified for both the API product and operation group; otherwise the call will fail. Structure is documented below.
- Proxies []string
- Comma-separated list of API proxy names to which this API product is bound. By specifying API proxies, you can associate resources in the API product with specific API proxies, preventing developers from accessing those resources through other API proxies. Apigee rejects requests to API proxies that are not listed.
- Quota string
- Number of request messages permitted per app by this API product for the specified quotaInterval and quotaTimeUnit. For example, a quota of 50, for a quotaInterval of 12 and a quotaTimeUnit of hours means 50 requests are allowed every 12 hours.
- Quota
Counter stringScope - Scope of the quota decides how the quota counter gets applied and evaluate for quota violation. If the Scope is set as PROXY, then all the operations defined for the APIproduct that are associated with the same proxy will share the same quota counter set at the APIproduct level, making it a global counter at a proxy level. If the Scope is set as OPERATION, then each operations get the counter set at the API product dedicated, making it a local counter. Note that, the QuotaCounterScope applies only when an operation does not have dedicated quota set for itself.
Possible values are:
QUOTA_COUNTER_SCOPE_UNSPECIFIED
,PROXY
,OPERATION
. - Quota
Interval string - Time interval over which the number of request messages is calculated.
- Quota
Time stringUnit - Time unit defined for the quotaInterval. Valid values include second, minute, hour, day, month or year.
- Scopes []string
- Comma-separated list of OAuth scopes that are validated at runtime. Apigee validates that the scopes in any access token presented match the scopes defined in the OAuth policy associated with the API product.
- Space string
- Optional. The resource ID of the parent Space. If not set, the parent resource will be the Organization.
- display
Name String - Name displayed in the UI or developer portal to developers registering for API access.
- org
Id String - The Apigee Organization associated with the Apigee API product,
in the format
organizations/{{org_name}}
. - api
Resources List<String> - Comma-separated list of API resources to be bundled in the API product. By default, the resource paths are mapped from the proxy.pathsuffix variable. The proxy path suffix is defined as the URI fragment following the ProxyEndpoint base path. For example, if the apiResources element is defined to be /forecastrss and the base path defined for the API proxy is /weather, then only requests to /weather/forecastrss are permitted by the API product.
- approval
Type String - Flag that specifies how API keys are approved to access the APIs defined by the API product.
Valid values are
auto
ormanual
. Possible values are:auto
,manual
. - attributes
List<Api
Product Attribute> - Array of attributes that may be used to extend the default API product profile with customer-specific metadata. You can specify a maximum of 18 attributes. Use this property to specify the access level of the API product as either public, private, or internal. Structure is documented below.
- description String
- Description of the API product. Include key information about the API product that is not captured by other fields.
- environments List<String>
- Comma-separated list of environment names to which the API product is bound. Requests to environments that are not listed are rejected. By specifying one or more environments, you can bind the resources listed in the API product to a specific environment, preventing developers from accessing those resources through API proxies deployed in another environment.
- graphql
Operation ApiGroup Product Graphql Operation Group - Configuration used to group Apigee proxies or remote services with graphQL operation name, graphQL operation type and quotas. This grouping allows us to precisely set quota for a particular combination of graphQL name and operation type for a particular proxy request. If graphQL name is not set, this would imply quota will be applied on all graphQL requests matching the operation type. Structure is documented below.
- grpc
Operation ApiGroup Product Grpc Operation Group - Optional. Configuration used to group Apigee proxies with gRPC services and method names. This grouping allows us to set quota for a particular proxy with the gRPC service name and method. If a method name is not set, this implies quota and authorization are applied to all gRPC methods implemented by that proxy for that particular gRPC service. Structure is documented below.
- name String
- Internal name of the API product.
- operation
Group ApiProduct Operation Group - Configuration used to group Apigee proxies or remote services with resources, method types, and quotas. The resource refers to the resource URI (excluding the base path). With this grouping, the API product creator is able to fine-tune and give precise control over which REST methods have access to specific resources and how many calls can be made (using the quota setting). Note: The apiResources setting cannot be specified for both the API product and operation group; otherwise the call will fail. Structure is documented below.
- proxies List<String>
- Comma-separated list of API proxy names to which this API product is bound. By specifying API proxies, you can associate resources in the API product with specific API proxies, preventing developers from accessing those resources through other API proxies. Apigee rejects requests to API proxies that are not listed.
- quota String
- Number of request messages permitted per app by this API product for the specified quotaInterval and quotaTimeUnit. For example, a quota of 50, for a quotaInterval of 12 and a quotaTimeUnit of hours means 50 requests are allowed every 12 hours.
- quota
Counter StringScope - Scope of the quota decides how the quota counter gets applied and evaluate for quota violation. If the Scope is set as PROXY, then all the operations defined for the APIproduct that are associated with the same proxy will share the same quota counter set at the APIproduct level, making it a global counter at a proxy level. If the Scope is set as OPERATION, then each operations get the counter set at the API product dedicated, making it a local counter. Note that, the QuotaCounterScope applies only when an operation does not have dedicated quota set for itself.
Possible values are:
QUOTA_COUNTER_SCOPE_UNSPECIFIED
,PROXY
,OPERATION
. - quota
Interval String - Time interval over which the number of request messages is calculated.
- quota
Time StringUnit - Time unit defined for the quotaInterval. Valid values include second, minute, hour, day, month or year.
- scopes List<String>
- Comma-separated list of OAuth scopes that are validated at runtime. Apigee validates that the scopes in any access token presented match the scopes defined in the OAuth policy associated with the API product.
- space String
- Optional. The resource ID of the parent Space. If not set, the parent resource will be the Organization.
- display
Name string - Name displayed in the UI or developer portal to developers registering for API access.
- org
Id string - The Apigee Organization associated with the Apigee API product,
in the format
organizations/{{org_name}}
. - api
Resources string[] - Comma-separated list of API resources to be bundled in the API product. By default, the resource paths are mapped from the proxy.pathsuffix variable. The proxy path suffix is defined as the URI fragment following the ProxyEndpoint base path. For example, if the apiResources element is defined to be /forecastrss and the base path defined for the API proxy is /weather, then only requests to /weather/forecastrss are permitted by the API product.
- approval
Type string - Flag that specifies how API keys are approved to access the APIs defined by the API product.
Valid values are
auto
ormanual
. Possible values are:auto
,manual
. - attributes
Api
Product Attribute[] - Array of attributes that may be used to extend the default API product profile with customer-specific metadata. You can specify a maximum of 18 attributes. Use this property to specify the access level of the API product as either public, private, or internal. Structure is documented below.
- description string
- Description of the API product. Include key information about the API product that is not captured by other fields.
- environments string[]
- Comma-separated list of environment names to which the API product is bound. Requests to environments that are not listed are rejected. By specifying one or more environments, you can bind the resources listed in the API product to a specific environment, preventing developers from accessing those resources through API proxies deployed in another environment.
- graphql
Operation ApiGroup Product Graphql Operation Group - Configuration used to group Apigee proxies or remote services with graphQL operation name, graphQL operation type and quotas. This grouping allows us to precisely set quota for a particular combination of graphQL name and operation type for a particular proxy request. If graphQL name is not set, this would imply quota will be applied on all graphQL requests matching the operation type. Structure is documented below.
- grpc
Operation ApiGroup Product Grpc Operation Group - Optional. Configuration used to group Apigee proxies with gRPC services and method names. This grouping allows us to set quota for a particular proxy with the gRPC service name and method. If a method name is not set, this implies quota and authorization are applied to all gRPC methods implemented by that proxy for that particular gRPC service. Structure is documented below.
- name string
- Internal name of the API product.
- operation
Group ApiProduct Operation Group - Configuration used to group Apigee proxies or remote services with resources, method types, and quotas. The resource refers to the resource URI (excluding the base path). With this grouping, the API product creator is able to fine-tune and give precise control over which REST methods have access to specific resources and how many calls can be made (using the quota setting). Note: The apiResources setting cannot be specified for both the API product and operation group; otherwise the call will fail. Structure is documented below.
- proxies string[]
- Comma-separated list of API proxy names to which this API product is bound. By specifying API proxies, you can associate resources in the API product with specific API proxies, preventing developers from accessing those resources through other API proxies. Apigee rejects requests to API proxies that are not listed.
- quota string
- Number of request messages permitted per app by this API product for the specified quotaInterval and quotaTimeUnit. For example, a quota of 50, for a quotaInterval of 12 and a quotaTimeUnit of hours means 50 requests are allowed every 12 hours.
- quota
Counter stringScope - Scope of the quota decides how the quota counter gets applied and evaluate for quota violation. If the Scope is set as PROXY, then all the operations defined for the APIproduct that are associated with the same proxy will share the same quota counter set at the APIproduct level, making it a global counter at a proxy level. If the Scope is set as OPERATION, then each operations get the counter set at the API product dedicated, making it a local counter. Note that, the QuotaCounterScope applies only when an operation does not have dedicated quota set for itself.
Possible values are:
QUOTA_COUNTER_SCOPE_UNSPECIFIED
,PROXY
,OPERATION
. - quota
Interval string - Time interval over which the number of request messages is calculated.
- quota
Time stringUnit - Time unit defined for the quotaInterval. Valid values include second, minute, hour, day, month or year.
- scopes string[]
- Comma-separated list of OAuth scopes that are validated at runtime. Apigee validates that the scopes in any access token presented match the scopes defined in the OAuth policy associated with the API product.
- space string
- Optional. The resource ID of the parent Space. If not set, the parent resource will be the Organization.
- display_
name str - Name displayed in the UI or developer portal to developers registering for API access.
- org_
id str - The Apigee Organization associated with the Apigee API product,
in the format
organizations/{{org_name}}
. - api_
resources Sequence[str] - Comma-separated list of API resources to be bundled in the API product. By default, the resource paths are mapped from the proxy.pathsuffix variable. The proxy path suffix is defined as the URI fragment following the ProxyEndpoint base path. For example, if the apiResources element is defined to be /forecastrss and the base path defined for the API proxy is /weather, then only requests to /weather/forecastrss are permitted by the API product.
- approval_
type str - Flag that specifies how API keys are approved to access the APIs defined by the API product.
Valid values are
auto
ormanual
. Possible values are:auto
,manual
. - attributes
Sequence[Api
Product Attribute Args] - Array of attributes that may be used to extend the default API product profile with customer-specific metadata. You can specify a maximum of 18 attributes. Use this property to specify the access level of the API product as either public, private, or internal. Structure is documented below.
- description str
- Description of the API product. Include key information about the API product that is not captured by other fields.
- environments Sequence[str]
- Comma-separated list of environment names to which the API product is bound. Requests to environments that are not listed are rejected. By specifying one or more environments, you can bind the resources listed in the API product to a specific environment, preventing developers from accessing those resources through API proxies deployed in another environment.
- graphql_
operation_ Apigroup Product Graphql Operation Group Args - Configuration used to group Apigee proxies or remote services with graphQL operation name, graphQL operation type and quotas. This grouping allows us to precisely set quota for a particular combination of graphQL name and operation type for a particular proxy request. If graphQL name is not set, this would imply quota will be applied on all graphQL requests matching the operation type. Structure is documented below.
- grpc_
operation_ Apigroup Product Grpc Operation Group Args - Optional. Configuration used to group Apigee proxies with gRPC services and method names. This grouping allows us to set quota for a particular proxy with the gRPC service name and method. If a method name is not set, this implies quota and authorization are applied to all gRPC methods implemented by that proxy for that particular gRPC service. Structure is documented below.
- name str
- Internal name of the API product.
- operation_
group ApiProduct Operation Group Args - Configuration used to group Apigee proxies or remote services with resources, method types, and quotas. The resource refers to the resource URI (excluding the base path). With this grouping, the API product creator is able to fine-tune and give precise control over which REST methods have access to specific resources and how many calls can be made (using the quota setting). Note: The apiResources setting cannot be specified for both the API product and operation group; otherwise the call will fail. Structure is documented below.
- proxies Sequence[str]
- Comma-separated list of API proxy names to which this API product is bound. By specifying API proxies, you can associate resources in the API product with specific API proxies, preventing developers from accessing those resources through other API proxies. Apigee rejects requests to API proxies that are not listed.
- quota str
- Number of request messages permitted per app by this API product for the specified quotaInterval and quotaTimeUnit. For example, a quota of 50, for a quotaInterval of 12 and a quotaTimeUnit of hours means 50 requests are allowed every 12 hours.
- quota_
counter_ strscope - Scope of the quota decides how the quota counter gets applied and evaluate for quota violation. If the Scope is set as PROXY, then all the operations defined for the APIproduct that are associated with the same proxy will share the same quota counter set at the APIproduct level, making it a global counter at a proxy level. If the Scope is set as OPERATION, then each operations get the counter set at the API product dedicated, making it a local counter. Note that, the QuotaCounterScope applies only when an operation does not have dedicated quota set for itself.
Possible values are:
QUOTA_COUNTER_SCOPE_UNSPECIFIED
,PROXY
,OPERATION
. - quota_
interval str - Time interval over which the number of request messages is calculated.
- quota_
time_ strunit - Time unit defined for the quotaInterval. Valid values include second, minute, hour, day, month or year.
- scopes Sequence[str]
- Comma-separated list of OAuth scopes that are validated at runtime. Apigee validates that the scopes in any access token presented match the scopes defined in the OAuth policy associated with the API product.
- space str
- Optional. The resource ID of the parent Space. If not set, the parent resource will be the Organization.
- display
Name String - Name displayed in the UI or developer portal to developers registering for API access.
- org
Id String - The Apigee Organization associated with the Apigee API product,
in the format
organizations/{{org_name}}
. - api
Resources List<String> - Comma-separated list of API resources to be bundled in the API product. By default, the resource paths are mapped from the proxy.pathsuffix variable. The proxy path suffix is defined as the URI fragment following the ProxyEndpoint base path. For example, if the apiResources element is defined to be /forecastrss and the base path defined for the API proxy is /weather, then only requests to /weather/forecastrss are permitted by the API product.
- approval
Type String - Flag that specifies how API keys are approved to access the APIs defined by the API product.
Valid values are
auto
ormanual
. Possible values are:auto
,manual
. - attributes List<Property Map>
- Array of attributes that may be used to extend the default API product profile with customer-specific metadata. You can specify a maximum of 18 attributes. Use this property to specify the access level of the API product as either public, private, or internal. Structure is documented below.
- description String
- Description of the API product. Include key information about the API product that is not captured by other fields.
- environments List<String>
- Comma-separated list of environment names to which the API product is bound. Requests to environments that are not listed are rejected. By specifying one or more environments, you can bind the resources listed in the API product to a specific environment, preventing developers from accessing those resources through API proxies deployed in another environment.
- graphql
Operation Property MapGroup - Configuration used to group Apigee proxies or remote services with graphQL operation name, graphQL operation type and quotas. This grouping allows us to precisely set quota for a particular combination of graphQL name and operation type for a particular proxy request. If graphQL name is not set, this would imply quota will be applied on all graphQL requests matching the operation type. Structure is documented below.
- grpc
Operation Property MapGroup - Optional. Configuration used to group Apigee proxies with gRPC services and method names. This grouping allows us to set quota for a particular proxy with the gRPC service name and method. If a method name is not set, this implies quota and authorization are applied to all gRPC methods implemented by that proxy for that particular gRPC service. Structure is documented below.
- name String
- Internal name of the API product.
- operation
Group Property Map - Configuration used to group Apigee proxies or remote services with resources, method types, and quotas. The resource refers to the resource URI (excluding the base path). With this grouping, the API product creator is able to fine-tune and give precise control over which REST methods have access to specific resources and how many calls can be made (using the quota setting). Note: The apiResources setting cannot be specified for both the API product and operation group; otherwise the call will fail. Structure is documented below.
- proxies List<String>
- Comma-separated list of API proxy names to which this API product is bound. By specifying API proxies, you can associate resources in the API product with specific API proxies, preventing developers from accessing those resources through other API proxies. Apigee rejects requests to API proxies that are not listed.
- quota String
- Number of request messages permitted per app by this API product for the specified quotaInterval and quotaTimeUnit. For example, a quota of 50, for a quotaInterval of 12 and a quotaTimeUnit of hours means 50 requests are allowed every 12 hours.
- quota
Counter StringScope - Scope of the quota decides how the quota counter gets applied and evaluate for quota violation. If the Scope is set as PROXY, then all the operations defined for the APIproduct that are associated with the same proxy will share the same quota counter set at the APIproduct level, making it a global counter at a proxy level. If the Scope is set as OPERATION, then each operations get the counter set at the API product dedicated, making it a local counter. Note that, the QuotaCounterScope applies only when an operation does not have dedicated quota set for itself.
Possible values are:
QUOTA_COUNTER_SCOPE_UNSPECIFIED
,PROXY
,OPERATION
. - quota
Interval String - Time interval over which the number of request messages is calculated.
- quota
Time StringUnit - Time unit defined for the quotaInterval. Valid values include second, minute, hour, day, month or year.
- scopes List<String>
- Comma-separated list of OAuth scopes that are validated at runtime. Apigee validates that the scopes in any access token presented match the scopes defined in the OAuth policy associated with the API product.
- space String
- Optional. The resource ID of the parent Space. If not set, the parent resource will be the Organization.
Outputs
All input properties are implicitly available as output properties. Additionally, the ApiProduct resource produces the following output properties:
- Created
At string - Response only. Creation time of this environment as milliseconds since epoch.
- Id string
- The provider-assigned unique ID for this managed resource.
- Last
Modified stringAt - Response only. Modified time of this environment as milliseconds since epoch.
- Created
At string - Response only. Creation time of this environment as milliseconds since epoch.
- Id string
- The provider-assigned unique ID for this managed resource.
- Last
Modified stringAt - Response only. Modified time of this environment as milliseconds since epoch.
- created
At String - Response only. Creation time of this environment as milliseconds since epoch.
- id String
- The provider-assigned unique ID for this managed resource.
- last
Modified StringAt - Response only. Modified time of this environment as milliseconds since epoch.
- created
At string - Response only. Creation time of this environment as milliseconds since epoch.
- id string
- The provider-assigned unique ID for this managed resource.
- last
Modified stringAt - Response only. Modified time of this environment as milliseconds since epoch.
- created_
at str - Response only. Creation time of this environment as milliseconds since epoch.
- id str
- The provider-assigned unique ID for this managed resource.
- last_
modified_ strat - Response only. Modified time of this environment as milliseconds since epoch.
- created
At String - Response only. Creation time of this environment as milliseconds since epoch.
- id String
- The provider-assigned unique ID for this managed resource.
- last
Modified StringAt - Response only. Modified time of this environment as milliseconds since epoch.
Look up Existing ApiProduct Resource
Get an existing ApiProduct 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?: ApiProductState, opts?: CustomResourceOptions): ApiProduct
@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
api_resources: Optional[Sequence[str]] = None,
approval_type: Optional[str] = None,
attributes: Optional[Sequence[ApiProductAttributeArgs]] = None,
created_at: Optional[str] = None,
description: Optional[str] = None,
display_name: Optional[str] = None,
environments: Optional[Sequence[str]] = None,
graphql_operation_group: Optional[ApiProductGraphqlOperationGroupArgs] = None,
grpc_operation_group: Optional[ApiProductGrpcOperationGroupArgs] = None,
last_modified_at: Optional[str] = None,
name: Optional[str] = None,
operation_group: Optional[ApiProductOperationGroupArgs] = None,
org_id: Optional[str] = None,
proxies: Optional[Sequence[str]] = None,
quota: Optional[str] = None,
quota_counter_scope: Optional[str] = None,
quota_interval: Optional[str] = None,
quota_time_unit: Optional[str] = None,
scopes: Optional[Sequence[str]] = None,
space: Optional[str] = None) -> ApiProduct
func GetApiProduct(ctx *Context, name string, id IDInput, state *ApiProductState, opts ...ResourceOption) (*ApiProduct, error)
public static ApiProduct Get(string name, Input<string> id, ApiProductState? state, CustomResourceOptions? opts = null)
public static ApiProduct get(String name, Output<String> id, ApiProductState state, CustomResourceOptions options)
resources: _: type: gcp:apigee:ApiProduct get: id: ${id}
- 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.
- Api
Resources List<string> - Comma-separated list of API resources to be bundled in the API product. By default, the resource paths are mapped from the proxy.pathsuffix variable. The proxy path suffix is defined as the URI fragment following the ProxyEndpoint base path. For example, if the apiResources element is defined to be /forecastrss and the base path defined for the API proxy is /weather, then only requests to /weather/forecastrss are permitted by the API product.
- Approval
Type string - Flag that specifies how API keys are approved to access the APIs defined by the API product.
Valid values are
auto
ormanual
. Possible values are:auto
,manual
. - Attributes
List<Api
Product Attribute> - Array of attributes that may be used to extend the default API product profile with customer-specific metadata. You can specify a maximum of 18 attributes. Use this property to specify the access level of the API product as either public, private, or internal. Structure is documented below.
- Created
At string - Response only. Creation time of this environment as milliseconds since epoch.
- Description string
- Description of the API product. Include key information about the API product that is not captured by other fields.
- Display
Name string - Name displayed in the UI or developer portal to developers registering for API access.
- Environments List<string>
- Comma-separated list of environment names to which the API product is bound. Requests to environments that are not listed are rejected. By specifying one or more environments, you can bind the resources listed in the API product to a specific environment, preventing developers from accessing those resources through API proxies deployed in another environment.
- Graphql
Operation ApiGroup Product Graphql Operation Group - Configuration used to group Apigee proxies or remote services with graphQL operation name, graphQL operation type and quotas. This grouping allows us to precisely set quota for a particular combination of graphQL name and operation type for a particular proxy request. If graphQL name is not set, this would imply quota will be applied on all graphQL requests matching the operation type. Structure is documented below.
- Grpc
Operation ApiGroup Product Grpc Operation Group - Optional. Configuration used to group Apigee proxies with gRPC services and method names. This grouping allows us to set quota for a particular proxy with the gRPC service name and method. If a method name is not set, this implies quota and authorization are applied to all gRPC methods implemented by that proxy for that particular gRPC service. Structure is documented below.
- Last
Modified stringAt - Response only. Modified time of this environment as milliseconds since epoch.
- Name string
- Internal name of the API product.
- Operation
Group ApiProduct Operation Group - Configuration used to group Apigee proxies or remote services with resources, method types, and quotas. The resource refers to the resource URI (excluding the base path). With this grouping, the API product creator is able to fine-tune and give precise control over which REST methods have access to specific resources and how many calls can be made (using the quota setting). Note: The apiResources setting cannot be specified for both the API product and operation group; otherwise the call will fail. Structure is documented below.
- Org
Id string - The Apigee Organization associated with the Apigee API product,
in the format
organizations/{{org_name}}
. - Proxies List<string>
- Comma-separated list of API proxy names to which this API product is bound. By specifying API proxies, you can associate resources in the API product with specific API proxies, preventing developers from accessing those resources through other API proxies. Apigee rejects requests to API proxies that are not listed.
- Quota string
- Number of request messages permitted per app by this API product for the specified quotaInterval and quotaTimeUnit. For example, a quota of 50, for a quotaInterval of 12 and a quotaTimeUnit of hours means 50 requests are allowed every 12 hours.
- Quota
Counter stringScope - Scope of the quota decides how the quota counter gets applied and evaluate for quota violation. If the Scope is set as PROXY, then all the operations defined for the APIproduct that are associated with the same proxy will share the same quota counter set at the APIproduct level, making it a global counter at a proxy level. If the Scope is set as OPERATION, then each operations get the counter set at the API product dedicated, making it a local counter. Note that, the QuotaCounterScope applies only when an operation does not have dedicated quota set for itself.
Possible values are:
QUOTA_COUNTER_SCOPE_UNSPECIFIED
,PROXY
,OPERATION
. - Quota
Interval string - Time interval over which the number of request messages is calculated.
- Quota
Time stringUnit - Time unit defined for the quotaInterval. Valid values include second, minute, hour, day, month or year.
- Scopes List<string>
- Comma-separated list of OAuth scopes that are validated at runtime. Apigee validates that the scopes in any access token presented match the scopes defined in the OAuth policy associated with the API product.
- Space string
- Optional. The resource ID of the parent Space. If not set, the parent resource will be the Organization.
- Api
Resources []string - Comma-separated list of API resources to be bundled in the API product. By default, the resource paths are mapped from the proxy.pathsuffix variable. The proxy path suffix is defined as the URI fragment following the ProxyEndpoint base path. For example, if the apiResources element is defined to be /forecastrss and the base path defined for the API proxy is /weather, then only requests to /weather/forecastrss are permitted by the API product.
- Approval
Type string - Flag that specifies how API keys are approved to access the APIs defined by the API product.
Valid values are
auto
ormanual
. Possible values are:auto
,manual
. - Attributes
[]Api
Product Attribute Args - Array of attributes that may be used to extend the default API product profile with customer-specific metadata. You can specify a maximum of 18 attributes. Use this property to specify the access level of the API product as either public, private, or internal. Structure is documented below.
- Created
At string - Response only. Creation time of this environment as milliseconds since epoch.
- Description string
- Description of the API product. Include key information about the API product that is not captured by other fields.
- Display
Name string - Name displayed in the UI or developer portal to developers registering for API access.
- Environments []string
- Comma-separated list of environment names to which the API product is bound. Requests to environments that are not listed are rejected. By specifying one or more environments, you can bind the resources listed in the API product to a specific environment, preventing developers from accessing those resources through API proxies deployed in another environment.
- Graphql
Operation ApiGroup Product Graphql Operation Group Args - Configuration used to group Apigee proxies or remote services with graphQL operation name, graphQL operation type and quotas. This grouping allows us to precisely set quota for a particular combination of graphQL name and operation type for a particular proxy request. If graphQL name is not set, this would imply quota will be applied on all graphQL requests matching the operation type. Structure is documented below.
- Grpc
Operation ApiGroup Product Grpc Operation Group Args - Optional. Configuration used to group Apigee proxies with gRPC services and method names. This grouping allows us to set quota for a particular proxy with the gRPC service name and method. If a method name is not set, this implies quota and authorization are applied to all gRPC methods implemented by that proxy for that particular gRPC service. Structure is documented below.
- Last
Modified stringAt - Response only. Modified time of this environment as milliseconds since epoch.
- Name string
- Internal name of the API product.
- Operation
Group ApiProduct Operation Group Args - Configuration used to group Apigee proxies or remote services with resources, method types, and quotas. The resource refers to the resource URI (excluding the base path). With this grouping, the API product creator is able to fine-tune and give precise control over which REST methods have access to specific resources and how many calls can be made (using the quota setting). Note: The apiResources setting cannot be specified for both the API product and operation group; otherwise the call will fail. Structure is documented below.
- Org
Id string - The Apigee Organization associated with the Apigee API product,
in the format
organizations/{{org_name}}
. - Proxies []string
- Comma-separated list of API proxy names to which this API product is bound. By specifying API proxies, you can associate resources in the API product with specific API proxies, preventing developers from accessing those resources through other API proxies. Apigee rejects requests to API proxies that are not listed.
- Quota string
- Number of request messages permitted per app by this API product for the specified quotaInterval and quotaTimeUnit. For example, a quota of 50, for a quotaInterval of 12 and a quotaTimeUnit of hours means 50 requests are allowed every 12 hours.
- Quota
Counter stringScope - Scope of the quota decides how the quota counter gets applied and evaluate for quota violation. If the Scope is set as PROXY, then all the operations defined for the APIproduct that are associated with the same proxy will share the same quota counter set at the APIproduct level, making it a global counter at a proxy level. If the Scope is set as OPERATION, then each operations get the counter set at the API product dedicated, making it a local counter. Note that, the QuotaCounterScope applies only when an operation does not have dedicated quota set for itself.
Possible values are:
QUOTA_COUNTER_SCOPE_UNSPECIFIED
,PROXY
,OPERATION
. - Quota
Interval string - Time interval over which the number of request messages is calculated.
- Quota
Time stringUnit - Time unit defined for the quotaInterval. Valid values include second, minute, hour, day, month or year.
- Scopes []string
- Comma-separated list of OAuth scopes that are validated at runtime. Apigee validates that the scopes in any access token presented match the scopes defined in the OAuth policy associated with the API product.
- Space string
- Optional. The resource ID of the parent Space. If not set, the parent resource will be the Organization.
- api
Resources List<String> - Comma-separated list of API resources to be bundled in the API product. By default, the resource paths are mapped from the proxy.pathsuffix variable. The proxy path suffix is defined as the URI fragment following the ProxyEndpoint base path. For example, if the apiResources element is defined to be /forecastrss and the base path defined for the API proxy is /weather, then only requests to /weather/forecastrss are permitted by the API product.
- approval
Type String - Flag that specifies how API keys are approved to access the APIs defined by the API product.
Valid values are
auto
ormanual
. Possible values are:auto
,manual
. - attributes
List<Api
Product Attribute> - Array of attributes that may be used to extend the default API product profile with customer-specific metadata. You can specify a maximum of 18 attributes. Use this property to specify the access level of the API product as either public, private, or internal. Structure is documented below.
- created
At String - Response only. Creation time of this environment as milliseconds since epoch.
- description String
- Description of the API product. Include key information about the API product that is not captured by other fields.
- display
Name String - Name displayed in the UI or developer portal to developers registering for API access.
- environments List<String>
- Comma-separated list of environment names to which the API product is bound. Requests to environments that are not listed are rejected. By specifying one or more environments, you can bind the resources listed in the API product to a specific environment, preventing developers from accessing those resources through API proxies deployed in another environment.
- graphql
Operation ApiGroup Product Graphql Operation Group - Configuration used to group Apigee proxies or remote services with graphQL operation name, graphQL operation type and quotas. This grouping allows us to precisely set quota for a particular combination of graphQL name and operation type for a particular proxy request. If graphQL name is not set, this would imply quota will be applied on all graphQL requests matching the operation type. Structure is documented below.
- grpc
Operation ApiGroup Product Grpc Operation Group - Optional. Configuration used to group Apigee proxies with gRPC services and method names. This grouping allows us to set quota for a particular proxy with the gRPC service name and method. If a method name is not set, this implies quota and authorization are applied to all gRPC methods implemented by that proxy for that particular gRPC service. Structure is documented below.
- last
Modified StringAt - Response only. Modified time of this environment as milliseconds since epoch.
- name String
- Internal name of the API product.
- operation
Group ApiProduct Operation Group - Configuration used to group Apigee proxies or remote services with resources, method types, and quotas. The resource refers to the resource URI (excluding the base path). With this grouping, the API product creator is able to fine-tune and give precise control over which REST methods have access to specific resources and how many calls can be made (using the quota setting). Note: The apiResources setting cannot be specified for both the API product and operation group; otherwise the call will fail. Structure is documented below.
- org
Id String - The Apigee Organization associated with the Apigee API product,
in the format
organizations/{{org_name}}
. - proxies List<String>
- Comma-separated list of API proxy names to which this API product is bound. By specifying API proxies, you can associate resources in the API product with specific API proxies, preventing developers from accessing those resources through other API proxies. Apigee rejects requests to API proxies that are not listed.
- quota String
- Number of request messages permitted per app by this API product for the specified quotaInterval and quotaTimeUnit. For example, a quota of 50, for a quotaInterval of 12 and a quotaTimeUnit of hours means 50 requests are allowed every 12 hours.
- quota
Counter StringScope - Scope of the quota decides how the quota counter gets applied and evaluate for quota violation. If the Scope is set as PROXY, then all the operations defined for the APIproduct that are associated with the same proxy will share the same quota counter set at the APIproduct level, making it a global counter at a proxy level. If the Scope is set as OPERATION, then each operations get the counter set at the API product dedicated, making it a local counter. Note that, the QuotaCounterScope applies only when an operation does not have dedicated quota set for itself.
Possible values are:
QUOTA_COUNTER_SCOPE_UNSPECIFIED
,PROXY
,OPERATION
. - quota
Interval String - Time interval over which the number of request messages is calculated.
- quota
Time StringUnit - Time unit defined for the quotaInterval. Valid values include second, minute, hour, day, month or year.
- scopes List<String>
- Comma-separated list of OAuth scopes that are validated at runtime. Apigee validates that the scopes in any access token presented match the scopes defined in the OAuth policy associated with the API product.
- space String
- Optional. The resource ID of the parent Space. If not set, the parent resource will be the Organization.
- api
Resources string[] - Comma-separated list of API resources to be bundled in the API product. By default, the resource paths are mapped from the proxy.pathsuffix variable. The proxy path suffix is defined as the URI fragment following the ProxyEndpoint base path. For example, if the apiResources element is defined to be /forecastrss and the base path defined for the API proxy is /weather, then only requests to /weather/forecastrss are permitted by the API product.
- approval
Type string - Flag that specifies how API keys are approved to access the APIs defined by the API product.
Valid values are
auto
ormanual
. Possible values are:auto
,manual
. - attributes
Api
Product Attribute[] - Array of attributes that may be used to extend the default API product profile with customer-specific metadata. You can specify a maximum of 18 attributes. Use this property to specify the access level of the API product as either public, private, or internal. Structure is documented below.
- created
At string - Response only. Creation time of this environment as milliseconds since epoch.
- description string
- Description of the API product. Include key information about the API product that is not captured by other fields.
- display
Name string - Name displayed in the UI or developer portal to developers registering for API access.
- environments string[]
- Comma-separated list of environment names to which the API product is bound. Requests to environments that are not listed are rejected. By specifying one or more environments, you can bind the resources listed in the API product to a specific environment, preventing developers from accessing those resources through API proxies deployed in another environment.
- graphql
Operation ApiGroup Product Graphql Operation Group - Configuration used to group Apigee proxies or remote services with graphQL operation name, graphQL operation type and quotas. This grouping allows us to precisely set quota for a particular combination of graphQL name and operation type for a particular proxy request. If graphQL name is not set, this would imply quota will be applied on all graphQL requests matching the operation type. Structure is documented below.
- grpc
Operation ApiGroup Product Grpc Operation Group - Optional. Configuration used to group Apigee proxies with gRPC services and method names. This grouping allows us to set quota for a particular proxy with the gRPC service name and method. If a method name is not set, this implies quota and authorization are applied to all gRPC methods implemented by that proxy for that particular gRPC service. Structure is documented below.
- last
Modified stringAt - Response only. Modified time of this environment as milliseconds since epoch.
- name string
- Internal name of the API product.
- operation
Group ApiProduct Operation Group - Configuration used to group Apigee proxies or remote services with resources, method types, and quotas. The resource refers to the resource URI (excluding the base path). With this grouping, the API product creator is able to fine-tune and give precise control over which REST methods have access to specific resources and how many calls can be made (using the quota setting). Note: The apiResources setting cannot be specified for both the API product and operation group; otherwise the call will fail. Structure is documented below.
- org
Id string - The Apigee Organization associated with the Apigee API product,
in the format
organizations/{{org_name}}
. - proxies string[]
- Comma-separated list of API proxy names to which this API product is bound. By specifying API proxies, you can associate resources in the API product with specific API proxies, preventing developers from accessing those resources through other API proxies. Apigee rejects requests to API proxies that are not listed.
- quota string
- Number of request messages permitted per app by this API product for the specified quotaInterval and quotaTimeUnit. For example, a quota of 50, for a quotaInterval of 12 and a quotaTimeUnit of hours means 50 requests are allowed every 12 hours.
- quota
Counter stringScope - Scope of the quota decides how the quota counter gets applied and evaluate for quota violation. If the Scope is set as PROXY, then all the operations defined for the APIproduct that are associated with the same proxy will share the same quota counter set at the APIproduct level, making it a global counter at a proxy level. If the Scope is set as OPERATION, then each operations get the counter set at the API product dedicated, making it a local counter. Note that, the QuotaCounterScope applies only when an operation does not have dedicated quota set for itself.
Possible values are:
QUOTA_COUNTER_SCOPE_UNSPECIFIED
,PROXY
,OPERATION
. - quota
Interval string - Time interval over which the number of request messages is calculated.
- quota
Time stringUnit - Time unit defined for the quotaInterval. Valid values include second, minute, hour, day, month or year.
- scopes string[]
- Comma-separated list of OAuth scopes that are validated at runtime. Apigee validates that the scopes in any access token presented match the scopes defined in the OAuth policy associated with the API product.
- space string
- Optional. The resource ID of the parent Space. If not set, the parent resource will be the Organization.
- api_
resources Sequence[str] - Comma-separated list of API resources to be bundled in the API product. By default, the resource paths are mapped from the proxy.pathsuffix variable. The proxy path suffix is defined as the URI fragment following the ProxyEndpoint base path. For example, if the apiResources element is defined to be /forecastrss and the base path defined for the API proxy is /weather, then only requests to /weather/forecastrss are permitted by the API product.
- approval_
type str - Flag that specifies how API keys are approved to access the APIs defined by the API product.
Valid values are
auto
ormanual
. Possible values are:auto
,manual
. - attributes
Sequence[Api
Product Attribute Args] - Array of attributes that may be used to extend the default API product profile with customer-specific metadata. You can specify a maximum of 18 attributes. Use this property to specify the access level of the API product as either public, private, or internal. Structure is documented below.
- created_
at str - Response only. Creation time of this environment as milliseconds since epoch.
- description str
- Description of the API product. Include key information about the API product that is not captured by other fields.
- display_
name str - Name displayed in the UI or developer portal to developers registering for API access.
- environments Sequence[str]
- Comma-separated list of environment names to which the API product is bound. Requests to environments that are not listed are rejected. By specifying one or more environments, you can bind the resources listed in the API product to a specific environment, preventing developers from accessing those resources through API proxies deployed in another environment.
- graphql_
operation_ Apigroup Product Graphql Operation Group Args - Configuration used to group Apigee proxies or remote services with graphQL operation name, graphQL operation type and quotas. This grouping allows us to precisely set quota for a particular combination of graphQL name and operation type for a particular proxy request. If graphQL name is not set, this would imply quota will be applied on all graphQL requests matching the operation type. Structure is documented below.
- grpc_
operation_ Apigroup Product Grpc Operation Group Args - Optional. Configuration used to group Apigee proxies with gRPC services and method names. This grouping allows us to set quota for a particular proxy with the gRPC service name and method. If a method name is not set, this implies quota and authorization are applied to all gRPC methods implemented by that proxy for that particular gRPC service. Structure is documented below.
- last_
modified_ strat - Response only. Modified time of this environment as milliseconds since epoch.
- name str
- Internal name of the API product.
- operation_
group ApiProduct Operation Group Args - Configuration used to group Apigee proxies or remote services with resources, method types, and quotas. The resource refers to the resource URI (excluding the base path). With this grouping, the API product creator is able to fine-tune and give precise control over which REST methods have access to specific resources and how many calls can be made (using the quota setting). Note: The apiResources setting cannot be specified for both the API product and operation group; otherwise the call will fail. Structure is documented below.
- org_
id str - The Apigee Organization associated with the Apigee API product,
in the format
organizations/{{org_name}}
. - proxies Sequence[str]
- Comma-separated list of API proxy names to which this API product is bound. By specifying API proxies, you can associate resources in the API product with specific API proxies, preventing developers from accessing those resources through other API proxies. Apigee rejects requests to API proxies that are not listed.
- quota str
- Number of request messages permitted per app by this API product for the specified quotaInterval and quotaTimeUnit. For example, a quota of 50, for a quotaInterval of 12 and a quotaTimeUnit of hours means 50 requests are allowed every 12 hours.
- quota_
counter_ strscope - Scope of the quota decides how the quota counter gets applied and evaluate for quota violation. If the Scope is set as PROXY, then all the operations defined for the APIproduct that are associated with the same proxy will share the same quota counter set at the APIproduct level, making it a global counter at a proxy level. If the Scope is set as OPERATION, then each operations get the counter set at the API product dedicated, making it a local counter. Note that, the QuotaCounterScope applies only when an operation does not have dedicated quota set for itself.
Possible values are:
QUOTA_COUNTER_SCOPE_UNSPECIFIED
,PROXY
,OPERATION
. - quota_
interval str - Time interval over which the number of request messages is calculated.
- quota_
time_ strunit - Time unit defined for the quotaInterval. Valid values include second, minute, hour, day, month or year.
- scopes Sequence[str]
- Comma-separated list of OAuth scopes that are validated at runtime. Apigee validates that the scopes in any access token presented match the scopes defined in the OAuth policy associated with the API product.
- space str
- Optional. The resource ID of the parent Space. If not set, the parent resource will be the Organization.
- api
Resources List<String> - Comma-separated list of API resources to be bundled in the API product. By default, the resource paths are mapped from the proxy.pathsuffix variable. The proxy path suffix is defined as the URI fragment following the ProxyEndpoint base path. For example, if the apiResources element is defined to be /forecastrss and the base path defined for the API proxy is /weather, then only requests to /weather/forecastrss are permitted by the API product.
- approval
Type String - Flag that specifies how API keys are approved to access the APIs defined by the API product.
Valid values are
auto
ormanual
. Possible values are:auto
,manual
. - attributes List<Property Map>
- Array of attributes that may be used to extend the default API product profile with customer-specific metadata. You can specify a maximum of 18 attributes. Use this property to specify the access level of the API product as either public, private, or internal. Structure is documented below.
- created
At String - Response only. Creation time of this environment as milliseconds since epoch.
- description String
- Description of the API product. Include key information about the API product that is not captured by other fields.
- display
Name String - Name displayed in the UI or developer portal to developers registering for API access.
- environments List<String>
- Comma-separated list of environment names to which the API product is bound. Requests to environments that are not listed are rejected. By specifying one or more environments, you can bind the resources listed in the API product to a specific environment, preventing developers from accessing those resources through API proxies deployed in another environment.
- graphql
Operation Property MapGroup - Configuration used to group Apigee proxies or remote services with graphQL operation name, graphQL operation type and quotas. This grouping allows us to precisely set quota for a particular combination of graphQL name and operation type for a particular proxy request. If graphQL name is not set, this would imply quota will be applied on all graphQL requests matching the operation type. Structure is documented below.
- grpc
Operation Property MapGroup - Optional. Configuration used to group Apigee proxies with gRPC services and method names. This grouping allows us to set quota for a particular proxy with the gRPC service name and method. If a method name is not set, this implies quota and authorization are applied to all gRPC methods implemented by that proxy for that particular gRPC service. Structure is documented below.
- last
Modified StringAt - Response only. Modified time of this environment as milliseconds since epoch.
- name String
- Internal name of the API product.
- operation
Group Property Map - Configuration used to group Apigee proxies or remote services with resources, method types, and quotas. The resource refers to the resource URI (excluding the base path). With this grouping, the API product creator is able to fine-tune and give precise control over which REST methods have access to specific resources and how many calls can be made (using the quota setting). Note: The apiResources setting cannot be specified for both the API product and operation group; otherwise the call will fail. Structure is documented below.
- org
Id String - The Apigee Organization associated with the Apigee API product,
in the format
organizations/{{org_name}}
. - proxies List<String>
- Comma-separated list of API proxy names to which this API product is bound. By specifying API proxies, you can associate resources in the API product with specific API proxies, preventing developers from accessing those resources through other API proxies. Apigee rejects requests to API proxies that are not listed.
- quota String
- Number of request messages permitted per app by this API product for the specified quotaInterval and quotaTimeUnit. For example, a quota of 50, for a quotaInterval of 12 and a quotaTimeUnit of hours means 50 requests are allowed every 12 hours.
- quota
Counter StringScope - Scope of the quota decides how the quota counter gets applied and evaluate for quota violation. If the Scope is set as PROXY, then all the operations defined for the APIproduct that are associated with the same proxy will share the same quota counter set at the APIproduct level, making it a global counter at a proxy level. If the Scope is set as OPERATION, then each operations get the counter set at the API product dedicated, making it a local counter. Note that, the QuotaCounterScope applies only when an operation does not have dedicated quota set for itself.
Possible values are:
QUOTA_COUNTER_SCOPE_UNSPECIFIED
,PROXY
,OPERATION
. - quota
Interval String - Time interval over which the number of request messages is calculated.
- quota
Time StringUnit - Time unit defined for the quotaInterval. Valid values include second, minute, hour, day, month or year.
- scopes List<String>
- Comma-separated list of OAuth scopes that are validated at runtime. Apigee validates that the scopes in any access token presented match the scopes defined in the OAuth policy associated with the API product.
- space String
- Optional. The resource ID of the parent Space. If not set, the parent resource will be the Organization.
Supporting Types
ApiProductAttribute, ApiProductAttributeArgs
ApiProductGraphqlOperationGroup, ApiProductGraphqlOperationGroupArgs
- Operation
Config stringType - Flag that specifes whether the configuration is for Apigee API proxy or a remote service. Valid values include proxy or remoteservice. Defaults to proxy. Set to proxy when Apigee API proxies are associated with the API product. Set to remoteservice when non-Apigee proxies like Istio-Envoy are associated with the API product.
Possible values are:
proxy
,remoteservice
. - Operation
Configs List<ApiProduct Graphql Operation Group Operation Config> - List of graphQL operation configuration details associated with Apigee API proxies or remote services. Remote services are non-Apigee proxies, such as Istio-Envoy. Structure is documented below.
- Operation
Config stringType - Flag that specifes whether the configuration is for Apigee API proxy or a remote service. Valid values include proxy or remoteservice. Defaults to proxy. Set to proxy when Apigee API proxies are associated with the API product. Set to remoteservice when non-Apigee proxies like Istio-Envoy are associated with the API product.
Possible values are:
proxy
,remoteservice
. - Operation
Configs []ApiProduct Graphql Operation Group Operation Config - List of graphQL operation configuration details associated with Apigee API proxies or remote services. Remote services are non-Apigee proxies, such as Istio-Envoy. Structure is documented below.
- operation
Config StringType - Flag that specifes whether the configuration is for Apigee API proxy or a remote service. Valid values include proxy or remoteservice. Defaults to proxy. Set to proxy when Apigee API proxies are associated with the API product. Set to remoteservice when non-Apigee proxies like Istio-Envoy are associated with the API product.
Possible values are:
proxy
,remoteservice
. - operation
Configs List<ApiProduct Graphql Operation Group Operation Config> - List of graphQL operation configuration details associated with Apigee API proxies or remote services. Remote services are non-Apigee proxies, such as Istio-Envoy. Structure is documented below.
- operation
Config stringType - Flag that specifes whether the configuration is for Apigee API proxy or a remote service. Valid values include proxy or remoteservice. Defaults to proxy. Set to proxy when Apigee API proxies are associated with the API product. Set to remoteservice when non-Apigee proxies like Istio-Envoy are associated with the API product.
Possible values are:
proxy
,remoteservice
. - operation
Configs ApiProduct Graphql Operation Group Operation Config[] - List of graphQL operation configuration details associated with Apigee API proxies or remote services. Remote services are non-Apigee proxies, such as Istio-Envoy. Structure is documented below.
- operation_
config_ strtype - Flag that specifes whether the configuration is for Apigee API proxy or a remote service. Valid values include proxy or remoteservice. Defaults to proxy. Set to proxy when Apigee API proxies are associated with the API product. Set to remoteservice when non-Apigee proxies like Istio-Envoy are associated with the API product.
Possible values are:
proxy
,remoteservice
. - operation_
configs Sequence[ApiProduct Graphql Operation Group Operation Config] - List of graphQL operation configuration details associated with Apigee API proxies or remote services. Remote services are non-Apigee proxies, such as Istio-Envoy. Structure is documented below.
- operation
Config StringType - Flag that specifes whether the configuration is for Apigee API proxy or a remote service. Valid values include proxy or remoteservice. Defaults to proxy. Set to proxy when Apigee API proxies are associated with the API product. Set to remoteservice when non-Apigee proxies like Istio-Envoy are associated with the API product.
Possible values are:
proxy
,remoteservice
. - operation
Configs List<Property Map> - List of graphQL operation configuration details associated with Apigee API proxies or remote services. Remote services are non-Apigee proxies, such as Istio-Envoy. Structure is documented below.
ApiProductGraphqlOperationGroupOperationConfig, ApiProductGraphqlOperationGroupOperationConfigArgs
- Api
Source string - Required. Name of the API proxy with which the gRPC operation and quota are associated.
- Attributes
List<Api
Product Graphql Operation Group Operation Config Attribute> - Custom attributes associated with the operation. Structure is documented below.
- Operations
List<Api
Product Graphql Operation Group Operation Config Operation> - Required. List of GraphQL name/operation type pairs for the proxy or remote service to which quota will be applied. If only operation types are specified, the quota will be applied to all GraphQL requests irrespective of the GraphQL name. Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail. Structure is documented below.
- Quota
Api
Product Graphql Operation Group Operation Config Quota - Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done. Structure is documented below.
- Api
Source string - Required. Name of the API proxy with which the gRPC operation and quota are associated.
- Attributes
[]Api
Product Graphql Operation Group Operation Config Attribute - Custom attributes associated with the operation. Structure is documented below.
- Operations
[]Api
Product Graphql Operation Group Operation Config Operation - Required. List of GraphQL name/operation type pairs for the proxy or remote service to which quota will be applied. If only operation types are specified, the quota will be applied to all GraphQL requests irrespective of the GraphQL name. Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail. Structure is documented below.
- Quota
Api
Product Graphql Operation Group Operation Config Quota - Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done. Structure is documented below.
- api
Source String - Required. Name of the API proxy with which the gRPC operation and quota are associated.
- attributes
List<Api
Product Graphql Operation Group Operation Config Attribute> - Custom attributes associated with the operation. Structure is documented below.
- operations
List<Api
Product Graphql Operation Group Operation Config Operation> - Required. List of GraphQL name/operation type pairs for the proxy or remote service to which quota will be applied. If only operation types are specified, the quota will be applied to all GraphQL requests irrespective of the GraphQL name. Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail. Structure is documented below.
- quota
Api
Product Graphql Operation Group Operation Config Quota - Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done. Structure is documented below.
- api
Source string - Required. Name of the API proxy with which the gRPC operation and quota are associated.
- attributes
Api
Product Graphql Operation Group Operation Config Attribute[] - Custom attributes associated with the operation. Structure is documented below.
- operations
Api
Product Graphql Operation Group Operation Config Operation[] - Required. List of GraphQL name/operation type pairs for the proxy or remote service to which quota will be applied. If only operation types are specified, the quota will be applied to all GraphQL requests irrespective of the GraphQL name. Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail. Structure is documented below.
- quota
Api
Product Graphql Operation Group Operation Config Quota - Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done. Structure is documented below.
- api_
source str - Required. Name of the API proxy with which the gRPC operation and quota are associated.
- attributes
Sequence[Api
Product Graphql Operation Group Operation Config Attribute] - Custom attributes associated with the operation. Structure is documented below.
- operations
Sequence[Api
Product Graphql Operation Group Operation Config Operation] - Required. List of GraphQL name/operation type pairs for the proxy or remote service to which quota will be applied. If only operation types are specified, the quota will be applied to all GraphQL requests irrespective of the GraphQL name. Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail. Structure is documented below.
- quota
Api
Product Graphql Operation Group Operation Config Quota - Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done. Structure is documented below.
- api
Source String - Required. Name of the API proxy with which the gRPC operation and quota are associated.
- attributes List<Property Map>
- Custom attributes associated with the operation. Structure is documented below.
- operations List<Property Map>
- Required. List of GraphQL name/operation type pairs for the proxy or remote service to which quota will be applied. If only operation types are specified, the quota will be applied to all GraphQL requests irrespective of the GraphQL name. Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail. Structure is documented below.
- quota Property Map
- Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done. Structure is documented below.
ApiProductGraphqlOperationGroupOperationConfigAttribute, ApiProductGraphqlOperationGroupOperationConfigAttributeArgs
ApiProductGraphqlOperationGroupOperationConfigOperation, ApiProductGraphqlOperationGroupOperationConfigOperationArgs
- Operation string
- GraphQL operation name. The name and operation type will be used to apply quotas. If no name is specified, the quota will be applied to all GraphQL operations irrespective of their operation names in the payload.
- Operation
Types List<string> - Required. GraphQL operation types. Valid values include query or mutation. Note: Apigee does not currently support subscription types.
- Operation string
- GraphQL operation name. The name and operation type will be used to apply quotas. If no name is specified, the quota will be applied to all GraphQL operations irrespective of their operation names in the payload.
- Operation
Types []string - Required. GraphQL operation types. Valid values include query or mutation. Note: Apigee does not currently support subscription types.
- operation String
- GraphQL operation name. The name and operation type will be used to apply quotas. If no name is specified, the quota will be applied to all GraphQL operations irrespective of their operation names in the payload.
- operation
Types List<String> - Required. GraphQL operation types. Valid values include query or mutation. Note: Apigee does not currently support subscription types.
- operation string
- GraphQL operation name. The name and operation type will be used to apply quotas. If no name is specified, the quota will be applied to all GraphQL operations irrespective of their operation names in the payload.
- operation
Types string[] - Required. GraphQL operation types. Valid values include query or mutation. Note: Apigee does not currently support subscription types.
- operation str
- GraphQL operation name. The name and operation type will be used to apply quotas. If no name is specified, the quota will be applied to all GraphQL operations irrespective of their operation names in the payload.
- operation_
types Sequence[str] - Required. GraphQL operation types. Valid values include query or mutation. Note: Apigee does not currently support subscription types.
- operation String
- GraphQL operation name. The name and operation type will be used to apply quotas. If no name is specified, the quota will be applied to all GraphQL operations irrespective of their operation names in the payload.
- operation
Types List<String> - Required. GraphQL operation types. Valid values include query or mutation. Note: Apigee does not currently support subscription types.
ApiProductGraphqlOperationGroupOperationConfigQuota, ApiProductGraphqlOperationGroupOperationConfigQuotaArgs
- Interval string
- Required. Time interval over which the number of request messages is calculated.
- Limit string
- Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
- Time
Unit string - Time unit defined for the interval. Valid values include second, minute, hour, day, month or year. If limit and interval are valid, the default value is hour; otherwise, the default is null.
- Interval string
- Required. Time interval over which the number of request messages is calculated.
- Limit string
- Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
- Time
Unit string - Time unit defined for the interval. Valid values include second, minute, hour, day, month or year. If limit and interval are valid, the default value is hour; otherwise, the default is null.
- interval String
- Required. Time interval over which the number of request messages is calculated.
- limit String
- Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
- time
Unit String - Time unit defined for the interval. Valid values include second, minute, hour, day, month or year. If limit and interval are valid, the default value is hour; otherwise, the default is null.
- interval string
- Required. Time interval over which the number of request messages is calculated.
- limit string
- Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
- time
Unit string - Time unit defined for the interval. Valid values include second, minute, hour, day, month or year. If limit and interval are valid, the default value is hour; otherwise, the default is null.
- interval str
- Required. Time interval over which the number of request messages is calculated.
- limit str
- Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
- time_
unit str - Time unit defined for the interval. Valid values include second, minute, hour, day, month or year. If limit and interval are valid, the default value is hour; otherwise, the default is null.
- interval String
- Required. Time interval over which the number of request messages is calculated.
- limit String
- Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
- time
Unit String - Time unit defined for the interval. Valid values include second, minute, hour, day, month or year. If limit and interval are valid, the default value is hour; otherwise, the default is null.
ApiProductGrpcOperationGroup, ApiProductGrpcOperationGroupArgs
- Operation
Configs List<ApiProduct Grpc Operation Group Operation Config> - Required. List of operation configurations for either Apigee API proxies that are associated with this API product. Structure is documented below.
- Operation
Configs []ApiProduct Grpc Operation Group Operation Config - Required. List of operation configurations for either Apigee API proxies that are associated with this API product. Structure is documented below.
- operation
Configs List<ApiProduct Grpc Operation Group Operation Config> - Required. List of operation configurations for either Apigee API proxies that are associated with this API product. Structure is documented below.
- operation
Configs ApiProduct Grpc Operation Group Operation Config[] - Required. List of operation configurations for either Apigee API proxies that are associated with this API product. Structure is documented below.
- operation_
configs Sequence[ApiProduct Grpc Operation Group Operation Config] - Required. List of operation configurations for either Apigee API proxies that are associated with this API product. Structure is documented below.
- operation
Configs List<Property Map> - Required. List of operation configurations for either Apigee API proxies that are associated with this API product. Structure is documented below.
ApiProductGrpcOperationGroupOperationConfig, ApiProductGrpcOperationGroupOperationConfigArgs
- Api
Source string - Required. Name of the API proxy with which the gRPC operation and quota are associated.
- Attributes
List<Api
Product Grpc Operation Group Operation Config Attribute> - Custom attributes associated with the operation. Structure is documented below.
- Methods List<string>
- List of unqualified gRPC method names for the proxy to which quota will be applied. If this field is empty, the Quota will apply to all operations on the gRPC service defined on the proxy. Example: Given a proxy that is configured to serve com.petstore.PetService, the methods com.petstore.PetService.ListPets and com.petstore.PetService.GetPet would be specified here as simply ["ListPets", "GetPet"]. Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail.
- Quota
Api
Product Grpc Operation Group Operation Config Quota - Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done. Structure is documented below.
- Service string
- Required. gRPC Service name associated to be associated with the API proxy, on which quota rules can be applied upon.
- Api
Source string - Required. Name of the API proxy with which the gRPC operation and quota are associated.
- Attributes
[]Api
Product Grpc Operation Group Operation Config Attribute - Custom attributes associated with the operation. Structure is documented below.
- Methods []string
- List of unqualified gRPC method names for the proxy to which quota will be applied. If this field is empty, the Quota will apply to all operations on the gRPC service defined on the proxy. Example: Given a proxy that is configured to serve com.petstore.PetService, the methods com.petstore.PetService.ListPets and com.petstore.PetService.GetPet would be specified here as simply ["ListPets", "GetPet"]. Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail.
- Quota
Api
Product Grpc Operation Group Operation Config Quota - Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done. Structure is documented below.
- Service string
- Required. gRPC Service name associated to be associated with the API proxy, on which quota rules can be applied upon.
- api
Source String - Required. Name of the API proxy with which the gRPC operation and quota are associated.
- attributes
List<Api
Product Grpc Operation Group Operation Config Attribute> - Custom attributes associated with the operation. Structure is documented below.
- methods List<String>
- List of unqualified gRPC method names for the proxy to which quota will be applied. If this field is empty, the Quota will apply to all operations on the gRPC service defined on the proxy. Example: Given a proxy that is configured to serve com.petstore.PetService, the methods com.petstore.PetService.ListPets and com.petstore.PetService.GetPet would be specified here as simply ["ListPets", "GetPet"]. Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail.
- quota
Api
Product Grpc Operation Group Operation Config Quota - Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done. Structure is documented below.
- service String
- Required. gRPC Service name associated to be associated with the API proxy, on which quota rules can be applied upon.
- api
Source string - Required. Name of the API proxy with which the gRPC operation and quota are associated.
- attributes
Api
Product Grpc Operation Group Operation Config Attribute[] - Custom attributes associated with the operation. Structure is documented below.
- methods string[]
- List of unqualified gRPC method names for the proxy to which quota will be applied. If this field is empty, the Quota will apply to all operations on the gRPC service defined on the proxy. Example: Given a proxy that is configured to serve com.petstore.PetService, the methods com.petstore.PetService.ListPets and com.petstore.PetService.GetPet would be specified here as simply ["ListPets", "GetPet"]. Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail.
- quota
Api
Product Grpc Operation Group Operation Config Quota - Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done. Structure is documented below.
- service string
- Required. gRPC Service name associated to be associated with the API proxy, on which quota rules can be applied upon.
- api_
source str - Required. Name of the API proxy with which the gRPC operation and quota are associated.
- attributes
Sequence[Api
Product Grpc Operation Group Operation Config Attribute] - Custom attributes associated with the operation. Structure is documented below.
- methods Sequence[str]
- List of unqualified gRPC method names for the proxy to which quota will be applied. If this field is empty, the Quota will apply to all operations on the gRPC service defined on the proxy. Example: Given a proxy that is configured to serve com.petstore.PetService, the methods com.petstore.PetService.ListPets and com.petstore.PetService.GetPet would be specified here as simply ["ListPets", "GetPet"]. Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail.
- quota
Api
Product Grpc Operation Group Operation Config Quota - Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done. Structure is documented below.
- service str
- Required. gRPC Service name associated to be associated with the API proxy, on which quota rules can be applied upon.
- api
Source String - Required. Name of the API proxy with which the gRPC operation and quota are associated.
- attributes List<Property Map>
- Custom attributes associated with the operation. Structure is documented below.
- methods List<String>
- List of unqualified gRPC method names for the proxy to which quota will be applied. If this field is empty, the Quota will apply to all operations on the gRPC service defined on the proxy. Example: Given a proxy that is configured to serve com.petstore.PetService, the methods com.petstore.PetService.ListPets and com.petstore.PetService.GetPet would be specified here as simply ["ListPets", "GetPet"]. Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail.
- quota Property Map
- Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done. Structure is documented below.
- service String
- Required. gRPC Service name associated to be associated with the API proxy, on which quota rules can be applied upon.
ApiProductGrpcOperationGroupOperationConfigAttribute, ApiProductGrpcOperationGroupOperationConfigAttributeArgs
ApiProductGrpcOperationGroupOperationConfigQuota, ApiProductGrpcOperationGroupOperationConfigQuotaArgs
- Interval string
- Required. Time interval over which the number of request messages is calculated.
- Limit string
- Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
- Time
Unit string - Time unit defined for the interval. Valid values include second, minute, hour, day, month or year. If limit and interval are valid, the default value is hour; otherwise, the default is null.
- Interval string
- Required. Time interval over which the number of request messages is calculated.
- Limit string
- Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
- Time
Unit string - Time unit defined for the interval. Valid values include second, minute, hour, day, month or year. If limit and interval are valid, the default value is hour; otherwise, the default is null.
- interval String
- Required. Time interval over which the number of request messages is calculated.
- limit String
- Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
- time
Unit String - Time unit defined for the interval. Valid values include second, minute, hour, day, month or year. If limit and interval are valid, the default value is hour; otherwise, the default is null.
- interval string
- Required. Time interval over which the number of request messages is calculated.
- limit string
- Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
- time
Unit string - Time unit defined for the interval. Valid values include second, minute, hour, day, month or year. If limit and interval are valid, the default value is hour; otherwise, the default is null.
- interval str
- Required. Time interval over which the number of request messages is calculated.
- limit str
- Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
- time_
unit str - Time unit defined for the interval. Valid values include second, minute, hour, day, month or year. If limit and interval are valid, the default value is hour; otherwise, the default is null.
- interval String
- Required. Time interval over which the number of request messages is calculated.
- limit String
- Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
- time
Unit String - Time unit defined for the interval. Valid values include second, minute, hour, day, month or year. If limit and interval are valid, the default value is hour; otherwise, the default is null.
ApiProductOperationGroup, ApiProductOperationGroupArgs
- Operation
Config stringType - Flag that specifes whether the configuration is for Apigee API proxy or a remote service. Valid values include proxy or remoteservice. Defaults to proxy. Set to proxy when Apigee API proxies are associated with the API product. Set to remoteservice when non-Apigee proxies like Istio-Envoy are associated with the API product.
Possible values are:
proxy
,remoteservice
. - Operation
Configs List<ApiProduct Operation Group Operation Config> - Required. List of operation configurations for either Apigee API proxies or other remote services that are associated with this API product. Structure is documented below.
- Operation
Config stringType - Flag that specifes whether the configuration is for Apigee API proxy or a remote service. Valid values include proxy or remoteservice. Defaults to proxy. Set to proxy when Apigee API proxies are associated with the API product. Set to remoteservice when non-Apigee proxies like Istio-Envoy are associated with the API product.
Possible values are:
proxy
,remoteservice
. - Operation
Configs []ApiProduct Operation Group Operation Config - Required. List of operation configurations for either Apigee API proxies or other remote services that are associated with this API product. Structure is documented below.
- operation
Config StringType - Flag that specifes whether the configuration is for Apigee API proxy or a remote service. Valid values include proxy or remoteservice. Defaults to proxy. Set to proxy when Apigee API proxies are associated with the API product. Set to remoteservice when non-Apigee proxies like Istio-Envoy are associated with the API product.
Possible values are:
proxy
,remoteservice
. - operation
Configs List<ApiProduct Operation Group Operation Config> - Required. List of operation configurations for either Apigee API proxies or other remote services that are associated with this API product. Structure is documented below.
- operation
Config stringType - Flag that specifes whether the configuration is for Apigee API proxy or a remote service. Valid values include proxy or remoteservice. Defaults to proxy. Set to proxy when Apigee API proxies are associated with the API product. Set to remoteservice when non-Apigee proxies like Istio-Envoy are associated with the API product.
Possible values are:
proxy
,remoteservice
. - operation
Configs ApiProduct Operation Group Operation Config[] - Required. List of operation configurations for either Apigee API proxies or other remote services that are associated with this API product. Structure is documented below.
- operation_
config_ strtype - Flag that specifes whether the configuration is for Apigee API proxy or a remote service. Valid values include proxy or remoteservice. Defaults to proxy. Set to proxy when Apigee API proxies are associated with the API product. Set to remoteservice when non-Apigee proxies like Istio-Envoy are associated with the API product.
Possible values are:
proxy
,remoteservice
. - operation_
configs Sequence[ApiProduct Operation Group Operation Config] - Required. List of operation configurations for either Apigee API proxies or other remote services that are associated with this API product. Structure is documented below.
- operation
Config StringType - Flag that specifes whether the configuration is for Apigee API proxy or a remote service. Valid values include proxy or remoteservice. Defaults to proxy. Set to proxy when Apigee API proxies are associated with the API product. Set to remoteservice when non-Apigee proxies like Istio-Envoy are associated with the API product.
Possible values are:
proxy
,remoteservice
. - operation
Configs List<Property Map> - Required. List of operation configurations for either Apigee API proxies or other remote services that are associated with this API product. Structure is documented below.
ApiProductOperationGroupOperationConfig, ApiProductOperationGroupOperationConfigArgs
- Api
Source string - Required. Name of the API proxy with which the gRPC operation and quota are associated.
- Attributes
List<Api
Product Operation Group Operation Config Attribute> - Custom attributes associated with the operation. Structure is documented below.
- Operations
List<Api
Product Operation Group Operation Config Operation> - Required. List of GraphQL name/operation type pairs for the proxy or remote service to which quota will be applied. If only operation types are specified, the quota will be applied to all GraphQL requests irrespective of the GraphQL name. Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail. Structure is documented below.
- Quota
Api
Product Operation Group Operation Config Quota - Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done. Structure is documented below.
- Api
Source string - Required. Name of the API proxy with which the gRPC operation and quota are associated.
- Attributes
[]Api
Product Operation Group Operation Config Attribute - Custom attributes associated with the operation. Structure is documented below.
- Operations
[]Api
Product Operation Group Operation Config Operation - Required. List of GraphQL name/operation type pairs for the proxy or remote service to which quota will be applied. If only operation types are specified, the quota will be applied to all GraphQL requests irrespective of the GraphQL name. Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail. Structure is documented below.
- Quota
Api
Product Operation Group Operation Config Quota - Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done. Structure is documented below.
- api
Source String - Required. Name of the API proxy with which the gRPC operation and quota are associated.
- attributes
List<Api
Product Operation Group Operation Config Attribute> - Custom attributes associated with the operation. Structure is documented below.
- operations
List<Api
Product Operation Group Operation Config Operation> - Required. List of GraphQL name/operation type pairs for the proxy or remote service to which quota will be applied. If only operation types are specified, the quota will be applied to all GraphQL requests irrespective of the GraphQL name. Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail. Structure is documented below.
- quota
Api
Product Operation Group Operation Config Quota - Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done. Structure is documented below.
- api
Source string - Required. Name of the API proxy with which the gRPC operation and quota are associated.
- attributes
Api
Product Operation Group Operation Config Attribute[] - Custom attributes associated with the operation. Structure is documented below.
- operations
Api
Product Operation Group Operation Config Operation[] - Required. List of GraphQL name/operation type pairs for the proxy or remote service to which quota will be applied. If only operation types are specified, the quota will be applied to all GraphQL requests irrespective of the GraphQL name. Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail. Structure is documented below.
- quota
Api
Product Operation Group Operation Config Quota - Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done. Structure is documented below.
- api_
source str - Required. Name of the API proxy with which the gRPC operation and quota are associated.
- attributes
Sequence[Api
Product Operation Group Operation Config Attribute] - Custom attributes associated with the operation. Structure is documented below.
- operations
Sequence[Api
Product Operation Group Operation Config Operation] - Required. List of GraphQL name/operation type pairs for the proxy or remote service to which quota will be applied. If only operation types are specified, the quota will be applied to all GraphQL requests irrespective of the GraphQL name. Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail. Structure is documented below.
- quota
Api
Product Operation Group Operation Config Quota - Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done. Structure is documented below.
- api
Source String - Required. Name of the API proxy with which the gRPC operation and quota are associated.
- attributes List<Property Map>
- Custom attributes associated with the operation. Structure is documented below.
- operations List<Property Map>
- Required. List of GraphQL name/operation type pairs for the proxy or remote service to which quota will be applied. If only operation types are specified, the quota will be applied to all GraphQL requests irrespective of the GraphQL name. Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail. Structure is documented below.
- quota Property Map
- Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done. Structure is documented below.
ApiProductOperationGroupOperationConfigAttribute, ApiProductOperationGroupOperationConfigAttributeArgs
ApiProductOperationGroupOperationConfigOperation, ApiProductOperationGroupOperationConfigOperationArgs
ApiProductOperationGroupOperationConfigQuota, ApiProductOperationGroupOperationConfigQuotaArgs
- Interval string
- Required. Time interval over which the number of request messages is calculated.
- Limit string
- Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
- Time
Unit string - Time unit defined for the interval. Valid values include second, minute, hour, day, month or year. If limit and interval are valid, the default value is hour; otherwise, the default is null.
- Interval string
- Required. Time interval over which the number of request messages is calculated.
- Limit string
- Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
- Time
Unit string - Time unit defined for the interval. Valid values include second, minute, hour, day, month or year. If limit and interval are valid, the default value is hour; otherwise, the default is null.
- interval String
- Required. Time interval over which the number of request messages is calculated.
- limit String
- Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
- time
Unit String - Time unit defined for the interval. Valid values include second, minute, hour, day, month or year. If limit and interval are valid, the default value is hour; otherwise, the default is null.
- interval string
- Required. Time interval over which the number of request messages is calculated.
- limit string
- Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
- time
Unit string - Time unit defined for the interval. Valid values include second, minute, hour, day, month or year. If limit and interval are valid, the default value is hour; otherwise, the default is null.
- interval str
- Required. Time interval over which the number of request messages is calculated.
- limit str
- Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
- time_
unit str - Time unit defined for the interval. Valid values include second, minute, hour, day, month or year. If limit and interval are valid, the default value is hour; otherwise, the default is null.
- interval String
- Required. Time interval over which the number of request messages is calculated.
- limit String
- Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
- time
Unit String - Time unit defined for the interval. Valid values include second, minute, hour, day, month or year. If limit and interval are valid, the default value is hour; otherwise, the default is null.
Import
ApiProduct can be imported using any of these accepted formats:
{{org_id}}/apiproducts/{{name}}
{{org_id}}/{{name}}
When using the pulumi import
command, ApiProduct can be imported using one of the formats above. For example:
$ pulumi import gcp:apigee/apiProduct:ApiProduct default {{org_id}}/apiproducts/{{name}}
$ pulumi import gcp:apigee/apiProduct:ApiProduct 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.