ConsumerQuotaOverride

class ConsumerQuotaOverride : KotlinCustomResource

A consumer override is applied to the consumer on its own authority to limit its own quota usage. Consumer overrides cannot be used to grant more quota than would be allowed by admin overrides, producer overrides, or the default limit of the service. To get more information about ConsumerQuotaOverride, see:

Example Usage

Consumer Quota Override

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
import * as std from "@pulumi/std";
const myProject = new gcp.organizations.Project("my_project", {
name: "tf-test-project",
projectId: "quota",
orgId: "123456789",
});
const override = new gcp.serviceusage.ConsumerQuotaOverride("override", {
project: myProject.projectId,
service: "servicemanagement.googleapis.com",
metric: std.urlencode({
input: "servicemanagement.googleapis.com/default_requests",
}).then(invoke => invoke.result),
limit: std.urlencode({
input: "/min/project",
}).then(invoke => invoke.result),
overrideValue: "95",
force: true,
});
import pulumi
import pulumi_gcp as gcp
import pulumi_std as std
my_project = gcp.organizations.Project("my_project",
name="tf-test-project",
project_id="quota",
org_id="123456789")
override = gcp.serviceusage.ConsumerQuotaOverride("override",
project=my_project.project_id,
service="servicemanagement.googleapis.com",
metric=std.urlencode(input="servicemanagement.googleapis.com/default_requests").result,
limit=std.urlencode(input="/min/project").result,
override_value="95",
force=True)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
using Std = Pulumi.Std;
return await Deployment.RunAsync(() =>
{
var myProject = new Gcp.Organizations.Project("my_project", new()
{
Name = "tf-test-project",
ProjectId = "quota",
OrgId = "123456789",
});
var @override = new Gcp.ServiceUsage.ConsumerQuotaOverride("override", new()
{
Project = myProject.ProjectId,
Service = "servicemanagement.googleapis.com",
Metric = Std.Urlencode.Invoke(new()
{
Input = "servicemanagement.googleapis.com/default_requests",
}).Apply(invoke => invoke.Result),
Limit = Std.Urlencode.Invoke(new()
{
Input = "/min/project",
}).Apply(invoke => invoke.Result),
OverrideValue = "95",
Force = true,
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceusage"
"github.com/pulumi/pulumi-std/sdk/go/std"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
myProject, err := organizations.NewProject(ctx, "my_project", &organizations.ProjectArgs{
Name: pulumi.String("tf-test-project"),
ProjectId: pulumi.String("quota"),
OrgId: pulumi.String("123456789"),
})
if err != nil {
return err
}
invokeUrlencode, err := std.Urlencode(ctx, &std.UrlencodeArgs{
Input: "servicemanagement.googleapis.com/default_requests",
}, nil)
if err != nil {
return err
}
invokeUrlencode1, err := std.Urlencode(ctx, &std.UrlencodeArgs{
Input: "/min/project",
}, nil)
if err != nil {
return err
}
_, err = serviceusage.NewConsumerQuotaOverride(ctx, "override", &serviceusage.ConsumerQuotaOverrideArgs{
Project: myProject.ProjectId,
Service: pulumi.String("servicemanagement.googleapis.com"),
Metric: pulumi.String(invokeUrlencode.Result),
Limit: pulumi.String(invokeUrlencode1.Result),
OverrideValue: pulumi.String("95"),
Force: pulumi.Bool(true),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.organizations.Project;
import com.pulumi.gcp.organizations.ProjectArgs;
import com.pulumi.gcp.serviceusage.ConsumerQuotaOverride;
import com.pulumi.gcp.serviceusage.ConsumerQuotaOverrideArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var myProject = new Project("myProject", ProjectArgs.builder()
.name("tf-test-project")
.projectId("quota")
.orgId("123456789")
.build());
var override = new ConsumerQuotaOverride("override", ConsumerQuotaOverrideArgs.builder()
.project(myProject.projectId())
.service("servicemanagement.googleapis.com")
.metric(StdFunctions.urlencode(UrlencodeArgs.builder()
.input("servicemanagement.googleapis.com/default_requests")
.build()).result())
.limit(StdFunctions.urlencode(UrlencodeArgs.builder()
.input("/min/project")
.build()).result())
.overrideValue("95")
.force(true)
.build());
}
}
resources:
myProject:
type: gcp:organizations:Project
name: my_project
properties:
name: tf-test-project
projectId: quota
orgId: '123456789'
override:
type: gcp:serviceusage:ConsumerQuotaOverride
properties:
project: ${myProject.projectId}
service: servicemanagement.googleapis.com
metric:
fn::invoke:
Function: std:urlencode
Arguments:
input: servicemanagement.googleapis.com/default_requests
Return: result
limit:
fn::invoke:
Function: std:urlencode
Arguments:
input: /min/project
Return: result
overrideValue: '95'
force: true

Region Consumer Quota Override

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
import * as std from "@pulumi/std";
const myProject = new gcp.organizations.Project("my_project", {
name: "tf-test-project",
projectId: "quota",
orgId: "123456789",
});
const override = new gcp.serviceusage.ConsumerQuotaOverride("override", {
dimensions: {
region: "us-central1",
},
project: myProject.projectId,
service: "compute.googleapis.com",
metric: std.urlencode({
input: "compute.googleapis.com/n2_cpus",
}).then(invoke => invoke.result),
limit: std.urlencode({
input: "/project/region",
}).then(invoke => invoke.result),
overrideValue: "8",
force: true,
});
import pulumi
import pulumi_gcp as gcp
import pulumi_std as std
my_project = gcp.organizations.Project("my_project",
name="tf-test-project",
project_id="quota",
org_id="123456789")
override = gcp.serviceusage.ConsumerQuotaOverride("override",
dimensions={
"region": "us-central1",
},
project=my_project.project_id,
service="compute.googleapis.com",
metric=std.urlencode(input="compute.googleapis.com/n2_cpus").result,
limit=std.urlencode(input="/project/region").result,
override_value="8",
force=True)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
using Std = Pulumi.Std;
return await Deployment.RunAsync(() =>
{
var myProject = new Gcp.Organizations.Project("my_project", new()
{
Name = "tf-test-project",
ProjectId = "quota",
OrgId = "123456789",
});
var @override = new Gcp.ServiceUsage.ConsumerQuotaOverride("override", new()
{
Dimensions =
{
{ "region", "us-central1" },
},
Project = myProject.ProjectId,
Service = "compute.googleapis.com",
Metric = Std.Urlencode.Invoke(new()
{
Input = "compute.googleapis.com/n2_cpus",
}).Apply(invoke => invoke.Result),
Limit = Std.Urlencode.Invoke(new()
{
Input = "/project/region",
}).Apply(invoke => invoke.Result),
OverrideValue = "8",
Force = true,
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceusage"
"github.com/pulumi/pulumi-std/sdk/go/std"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
myProject, err := organizations.NewProject(ctx, "my_project", &organizations.ProjectArgs{
Name: pulumi.String("tf-test-project"),
ProjectId: pulumi.String("quota"),
OrgId: pulumi.String("123456789"),
})
if err != nil {
return err
}
invokeUrlencode, err := std.Urlencode(ctx, &std.UrlencodeArgs{
Input: "compute.googleapis.com/n2_cpus",
}, nil)
if err != nil {
return err
}
invokeUrlencode1, err := std.Urlencode(ctx, &std.UrlencodeArgs{
Input: "/project/region",
}, nil)
if err != nil {
return err
}
_, err = serviceusage.NewConsumerQuotaOverride(ctx, "override", &serviceusage.ConsumerQuotaOverrideArgs{
Dimensions: pulumi.StringMap{
"region": pulumi.String("us-central1"),
},
Project: myProject.ProjectId,
Service: pulumi.String("compute.googleapis.com"),
Metric: pulumi.String(invokeUrlencode.Result),
Limit: pulumi.String(invokeUrlencode1.Result),
OverrideValue: pulumi.String("8"),
Force: pulumi.Bool(true),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.organizations.Project;
import com.pulumi.gcp.organizations.ProjectArgs;
import com.pulumi.gcp.serviceusage.ConsumerQuotaOverride;
import com.pulumi.gcp.serviceusage.ConsumerQuotaOverrideArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var myProject = new Project("myProject", ProjectArgs.builder()
.name("tf-test-project")
.projectId("quota")
.orgId("123456789")
.build());
var override = new ConsumerQuotaOverride("override", ConsumerQuotaOverrideArgs.builder()
.dimensions(Map.of("region", "us-central1"))
.project(myProject.projectId())
.service("compute.googleapis.com")
.metric(StdFunctions.urlencode(UrlencodeArgs.builder()
.input("compute.googleapis.com/n2_cpus")
.build()).result())
.limit(StdFunctions.urlencode(UrlencodeArgs.builder()
.input("/project/region")
.build()).result())
.overrideValue("8")
.force(true)
.build());
}
}
resources:
myProject:
type: gcp:organizations:Project
name: my_project
properties:
name: tf-test-project
projectId: quota
orgId: '123456789'
override:
type: gcp:serviceusage:ConsumerQuotaOverride
properties:
dimensions:
region: us-central1
project: ${myProject.projectId}
service: compute.googleapis.com
metric:
fn::invoke:
Function: std:urlencode
Arguments:
input: compute.googleapis.com/n2_cpus
Return: result
limit:
fn::invoke:
Function: std:urlencode
Arguments:
input: /project/region
Return: result
overrideValue: '8'
force: true

Consumer Quota Override Custom Dimension

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
import * as std from "@pulumi/std";
const myProject = new gcp.organizations.Project("my_project", {
name: "tf-test-project",
projectId: "quota",
orgId: "123456789",
});
const override = new gcp.serviceusage.ConsumerQuotaOverride("override", {
project: myProject.projectId,
service: "libraryagent.googleapis.com",
metric: std.urlencode({
input: "libraryagent.googleapis.com/borrows",
}).then(invoke => invoke.result),
limit: std.urlencode({
input: "/author/project",
}).then(invoke => invoke.result),
overrideValue: "1",
force: true,
dimensions: {
author: "larry",
},
});
import pulumi
import pulumi_gcp as gcp
import pulumi_std as std
my_project = gcp.organizations.Project("my_project",
name="tf-test-project",
project_id="quota",
org_id="123456789")
override = gcp.serviceusage.ConsumerQuotaOverride("override",
project=my_project.project_id,
service="libraryagent.googleapis.com",
metric=std.urlencode(input="libraryagent.googleapis.com/borrows").result,
limit=std.urlencode(input="/author/project").result,
override_value="1",
force=True,
dimensions={
"author": "larry",
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
using Std = Pulumi.Std;
return await Deployment.RunAsync(() =>
{
var myProject = new Gcp.Organizations.Project("my_project", new()
{
Name = "tf-test-project",
ProjectId = "quota",
OrgId = "123456789",
});
var @override = new Gcp.ServiceUsage.ConsumerQuotaOverride("override", new()
{
Project = myProject.ProjectId,
Service = "libraryagent.googleapis.com",
Metric = Std.Urlencode.Invoke(new()
{
Input = "libraryagent.googleapis.com/borrows",
}).Apply(invoke => invoke.Result),
Limit = Std.Urlencode.Invoke(new()
{
Input = "/author/project",
}).Apply(invoke => invoke.Result),
OverrideValue = "1",
Force = true,
Dimensions =
{
{ "author", "larry" },
},
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceusage"
"github.com/pulumi/pulumi-std/sdk/go/std"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
myProject, err := organizations.NewProject(ctx, "my_project", &organizations.ProjectArgs{
Name: pulumi.String("tf-test-project"),
ProjectId: pulumi.String("quota"),
OrgId: pulumi.String("123456789"),
})
if err != nil {
return err
}
invokeUrlencode, err := std.Urlencode(ctx, &std.UrlencodeArgs{
Input: "libraryagent.googleapis.com/borrows",
}, nil)
if err != nil {
return err
}
invokeUrlencode1, err := std.Urlencode(ctx, &std.UrlencodeArgs{
Input: "/author/project",
}, nil)
if err != nil {
return err
}
_, err = serviceusage.NewConsumerQuotaOverride(ctx, "override", &serviceusage.ConsumerQuotaOverrideArgs{
Project: myProject.ProjectId,
Service: pulumi.String("libraryagent.googleapis.com"),
Metric: pulumi.String(invokeUrlencode.Result),
Limit: pulumi.String(invokeUrlencode1.Result),
OverrideValue: pulumi.String("1"),
Force: pulumi.Bool(true),
Dimensions: pulumi.StringMap{
"author": pulumi.String("larry"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.organizations.Project;
import com.pulumi.gcp.organizations.ProjectArgs;
import com.pulumi.gcp.serviceusage.ConsumerQuotaOverride;
import com.pulumi.gcp.serviceusage.ConsumerQuotaOverrideArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var myProject = new Project("myProject", ProjectArgs.builder()
.name("tf-test-project")
.projectId("quota")
.orgId("123456789")
.build());
var override = new ConsumerQuotaOverride("override", ConsumerQuotaOverrideArgs.builder()
.project(myProject.projectId())
.service("libraryagent.googleapis.com")
.metric(StdFunctions.urlencode(UrlencodeArgs.builder()
.input("libraryagent.googleapis.com/borrows")
.build()).result())
.limit(StdFunctions.urlencode(UrlencodeArgs.builder()
.input("/author/project")
.build()).result())
.overrideValue("1")
.force(true)
.dimensions(Map.of("author", "larry"))
.build());
}
}
resources:
myProject:
type: gcp:organizations:Project
name: my_project
properties:
name: tf-test-project
projectId: quota
orgId: '123456789'
override:
type: gcp:serviceusage:ConsumerQuotaOverride
properties:
project: ${myProject.projectId}
service: libraryagent.googleapis.com
metric:
fn::invoke:
Function: std:urlencode
Arguments:
input: libraryagent.googleapis.com/borrows
Return: result
limit:
fn::invoke:
Function: std:urlencode
Arguments:
input: /author/project
Return: result
overrideValue: '1'
force: true
dimensions:
author: larry

Import

ConsumerQuotaOverride can be imported using any of these accepted formats:

  • projects/{{project}}/services/{{service}}/consumerQuotaMetrics/{{metric}}/limits/{{limit}}/consumerOverrides/{{name}}

  • services/{{service}}/consumerQuotaMetrics/{{metric}}/limits/{{limit}}/consumerOverrides/{{name}}

  • {{service}}/{{metric}}/{{limit}}/{{name}} When using the pulumi import command, ConsumerQuotaOverride can be imported using one of the formats above. For example:

$ pulumi import gcp:serviceusage/consumerQuotaOverride:ConsumerQuotaOverride default projects/{{project}}/services/{{service}}/consumerQuotaMetrics/{{metric}}/limits/{{limit}}/consumerOverrides/{{name}}
$ pulumi import gcp:serviceusage/consumerQuotaOverride:ConsumerQuotaOverride default services/{{service}}/consumerQuotaMetrics/{{metric}}/limits/{{limit}}/consumerOverrides/{{name}}
$ pulumi import gcp:serviceusage/consumerQuotaOverride:ConsumerQuotaOverride default {{service}}/{{metric}}/{{limit}}/{{name}}

Properties

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

If this map is nonempty, then this override applies only to specific values for dimensions defined in the limit unit.

Link copied to clipboard
val force: Output<Boolean>?

If the new quota would decrease the existing quota by more than 10%, the request is rejected. If force is true, that safety check is ignored.

Link copied to clipboard
val id: Output<String>
Link copied to clipboard
val limit: Output<String>

The limit on the metric, e.g. /project/region.

Link copied to clipboard
val metric: Output<String>

The metric that should be limited, e.g. compute.googleapis.com/cpus.

Link copied to clipboard
val name: Output<String>

The server-generated name of the quota override.

Link copied to clipboard
val overrideValue: Output<String>

The overriding quota limit value. Can be any nonnegative integer, or -1 (unlimited quota).

Link copied to clipboard
val project: Output<String>

The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

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

The service that the metrics belong to, e.g. compute.googleapis.com.

Link copied to clipboard
val urn: Output<String>