This is the multi-page printable view of this section.
Click here to print.
Return to the regular view of this page.
SPEKTRA Edge Limits Service API
Understanding the Limits service API.
The limits service is a core SPEKTRA Edge service that enables service
developers or product owners to enforce rules/quotas on the maximum
amount of resources that can exist within different scopes:
-
Service scope:
Global service limits based on the controller capacity.
-
Organization scope:
Limits assigned to the reseller.
-
Project scope:
Limits assigned to the individual customer.
Limits are passed from top to bottom. First, the service administrator sets
the limits for the whole service. Once service limits are initialized, they
can be used to allocate resources to root organizations and projects.
Organizations can then pass limits further down to their child organizations
or projects.
Each Service is managing its quotas.
Limits/Usage could also be tied to the billing/licensing system.
Features/Capabilities of Limits service:
- Ensures that limits in child projects/organizations do not exceed
those for their parents (organizations or system limits).
- Ensures correctness and database transaction guarantees.
- Enables passing down limits in various cases (like region to region
within a project, parent organization to child organization, etc).
- Uses monitoring service to record historical changes in resource
consumption.
- Ensures that limits can be passed only between parent/child
organization/project.
- Enforces parent organization/service consent before modifying limits in
child entities.
- Is designed to work in a multi-regional environment. When a limit is
assigned to a multi-regional project, then limits are split across
all regions. The system tracks each regional limit individually.
Full API Specifications (with resources):
Resources
Accepted Limit Plans
An accepted limit plan is a resource and is very close to the
plan assignments. However, while a
plan assignment binds a plan with
an assignee, an accepted limit plan binds
a limit plan with an assigner
for a given assignee. The accepted limit plan
represents resource limits that an assigner
granted to an assignee.
When an accepted limit plan is created or the limits are increased,
limits assigned to the assigner are reserved for
an assignee with an immediate effect. When
the accepted plan is deleted, or the limits are decreased, the limits
are returned to the assigner once they have been
cleaned up.
The system constantly syncs configuration from accepted limit plans into
plan assignments, in an asynchronous manner.
It also means that the organization/service
administrators can practically modify
plan assignments.
If an organization/service administrator
accepts any plan assignment request, they are making indirect modifications
to their accepted limit plan instances, but both ways use the same workflow.
Limits
A limit combines a project, resource type, region,
and two configurable values:
- allowance
- current usage
It makes sure that the number of resources in a given project/
region does not exceed the allowed value. It is important to
note that Limits are only for projects, final
assignees, which can create resources that count
into usage.
Each service in each region maintains its own set
of trackers for all present projects.
It is also important to note, that each limit is derived from
a limit plan assignment that contains
a given resource type. They are being created/modified/deleted
according to the configuration stored in
limit plan assignments. They cannot be
modified by administrators.
Limit Assignees
A limit assignee is an SPEKTRA Edge entity capable of receiving limits
from their parent. A limit assignee is typically an
organization or a project.
Service is a special type of assignee, it can assign
resources to itself without taking from parent entity limits.
Limits for the service should be decided by
service owners or developers. Services and organizations
are both the assignor and
the assignee, only projects are the final
assignees.
Limit Assigners
A limit assigner is an SPEKTRA Edge entity capable of passing down their
limits to their child entities. Because only services and
organizations may have child entities, sub-organizations
and projects) the assigner could be either an
organization (organization admin) or service
(service admin).
Limit Plans
A limit plan is a set of limits per resource type. It must be
associated with some SPEKTRA Edge services. Resources it contains
must be from that service.
Assignees may have many limit plans assigned at once,
but each must be from a different service.
Each service must define default limit plans, but
organizations can define them too, for their child entries.
Limit Plan Assignments
A limit plan assignment is a resource that binds a limit plan
with an assignee. It may also include extra limits
that increase default values predicted by the plan.
limit plan assignments are not modifiable. Changes should be requested
by the assignee or should be changed by
assigners (it is assumed that assigners
will respect any service agreement).
Limit plan Assignments for projects also contain regional
distribution of limits.
Limit Plan Assignment Requests
A limit plan Assignment Request is a formal request made by
an assignee that, once accepted by
the assigner, creates a new
plan assignments or modifies
an existing one. This resource is a formal API allowing
an assignee to request a change in their limits.
A limit plan assignment request can be used for:
- Assigning/Upgrading/Downgrading plan
- Extending/Decreasing individual limits for specific resources
- Unassigning existing limit plan
- Certain requests may be automatically accepted by the system.
Limit Pools
A limit pool is similar to limit as it also “limits”
the number of resources in existence. However, while Limit
keeps track of resources in a specific scope and ensures it does not
exceed the allocated value, the limit pool serves as a source to limits
(and other limit pools). Limit instances belonging to
projects, final assignees. Limit Pools belong
to services and organizations, which are passing limits down
to projects and sub-organizations.
Like limits, the individual limit pool are computed from
limit plan assignments belonging to
the service/organization. Whenever assignments
change, the limit pools are modified accordingly. They cannot be modified
by administrators.
Multi-Region Note
Plans define resource limits per each region. For example, when
the Service assigns itself a plan with 100K Devices from the
devices.edgelq.com
service, it means that it will have LimitPool for
each region with a value of 100K for Devices.
When the Service expands to a new region, it will get new LimitPool resources
for all its resource types. Those new LimitPools will be brand new, and
existing LimitPools will not change.
When an Organization is assigned some plan, all resource limits from
a plan will be applied for each region in which the organization
is enabled. Therefore, LimitPool for a particular resource type will
be created for each organization region.
When an Organization expands to a new region, it will get new LimitPool
resources, and existing ones will not be touched.
LimitPools for Service and Organizations are always regional - regardless
of whether the resource type is regional itself or not.
There is a difference on a Project level though. For example, let’s take
two resource types:
-
services/applications.edgelq.com/resources/Distribution
This is a non-regional resource.
-
services/applications.edgelq.com/resources/Pod
This is a regional resource.
Suppose we create a Project with a plan that predicts:
- 10 Distributions, 100 Pods (per Region)
If the Project is enabled for a single region, let’s say us-west2,
it will have limits:
- 10 Distributions, Region: us-west2
- 100 Pods, Region: us-west2
Parent Organization will have the following reservations on its limit pools:
- Distributions in us-west2: 10 reserved quota
- Pods in us-west2: 100 reserved quota
If the project expands to a new region, let’s say eastus2, then
the project will have the following limits:
- 10 Distributions, Region: us-west2
- 100 Pods, Region: us-west2
- 100 Pods, Region: eastus2
Parent Organization will have the following reservations on its limit pools:
- Distributions in us-west2: 10 reserved quota
- Distributions in eastus2: 10 reserved quota
- Pods in us-west2: 100 reserved quota
- Pods in eastus2: 100 reserved quota
Pods should be clear, but Distributions require clarification as, to why
a Limit of 10 requires sourcing two LimitPools from both enabled regions.
The main thing is, that “global” resources are putting pressure on
all regions where Project is enabled - typically, they are synced across
all regions. Distribution resources are working in all project regions.
One instance of Distribution, even if it is managed by us-west2 only, can
create pods in both regions. This is why they source from all limit pools
for all enabled regions.
Limits Management
Assignee and Assigner have a different API for them but note
that Organization is generally both an Assignee and Assigner
- Assigner, because it can have child projects and organizations.
Assignee, because it has either parent organization, or if this
is root organization, assigners are services themselves.
For an Assignee (Project or Organization admin)
The organization is assigned plans based on allowed_services
values,
plus it automatically gets plans for core SPEKTRA Edge services:
devices.edgelq.com
and applications.edgelq.com
(implicitly).
There is no need to do anything to have core SPEKTRA Edge plans assigned,
it should be enough to just create an Organization. Plans for particular
services are enabled when the Organization is adding a service to the
allowed_services
list.
Projects are similar, they get assigned core plans automatically, and
extra service plans only when they enable services via the enabled_services
field. PlanAssignments are created automatically unless the parent entity
has no free limit pools.
To see PlanAssignments that were created for organization, see:
cuttle limits list plan-assignments --organization <orgId> -o json
For project:
cuttle limits list plan-assignments --project <projectId> -o json
If you want to see limit pools assigned (for organization):
cuttle limits list limit-pools --organization <orgId> -o json
For a project, we should check limits:
cuttle limits list limits --project <projectId> -o json
If there is a need to change limits for a specific plan, it is required
that either:
- Parent Organization admin (or Service for root organizations assignees)
updates AcceptedPlan resource from which PlanAssignment sources information.
- Assignee admin creates PlanAssignmentRequest, which then is accepted
by parent organization admin (or Service admin for root organizations)
Let’s assume that there is Parent Organization, which defined the following
custom plan for devices:
# --plan-level PROJECT for project assignees!
cuttle limits create plan --organization <parentOrgId> devices-service-500-devices \
--service 'services/devices.edgelq.com' \
--plan-level ORGANIZATION \
--business-tier LARGE \
--resource-limits '{"resource": "services/devices.edgelq.com/resources/Device", "value": 500}'
For example, parent organization admin could then modify AcceptedPlan, apply
plan with 500 devices for each region.
cuttle limits update accepted-plan <AcceptedPlanId> \
--defaultRegionalPlan organizations/<parentOrgId>/plans/devices-service-500-devices
Project admins can request, with let’s say some extensions:
cuttle limits create plan-assignment-request --project <myProjectId> \
--request '{"assign": {"plan": "organizations/<parentOrgId>/plans/devices-service-500-devices", "extensions": [{"resource": "services/devices.edgelq.com/resources/Device", "value": 50}]}}'
Organization admins are similar:
cuttle limits create plan-assignment-request --organization <myOrgId> \
--request '{"assign": {"plan": "organizations/<parentOrgId>/plans/devices-service-500-devices", "extensions": [{"resource": "services/devices.edgelq.com/resources/Device", "value": 50}]}}'
Instead of plan assignment, we can also just ask for some extra extensions:
cuttle limits create plan-assignment-request --project <myProjectId> \
--request '{"extend": {"assignment": "<MyPlanAssignmentName>", "extensions": [{"resource": "services/devices.edgelq.com/resources/Device", "value": 50}]}}'
For an assigner (Organization or Service admin)
Limits service creates automatically AcceptedPlans for all child projects
and organizations, depending on the services they enable, and business tiers.
If you are a service admin, you can see all AcceptedPlan instances created
for root organizations and projects using this service:
cuttle limits list accepted-plans --service '<myServiceId>'
Organization admin can see plans they accepted with:
cuttle limits list accepted-plans --organization '<myOrgId>'
To see overall state of limit pools, service admins should execute:
cuttle limits list limit-pools --service <myServiceId> -o json
Organization admins can see their limit pools with:
cuttle limits list limit-pools --organization <myOrgId> -o json
Assigners (Service or Organization admins) can define plan templates
on their own. Service admins should use fixtures, as described in
the Developer guide. Organization admins can potentially use just
default plans defined by a Service for their child entities, however,
limit values may not match exactly their needs. Instead, they are recommended
to define their plans, for example:
cuttle limits create plan --organization <parentOrgId> \
devices-service-500-devices \
--service 'services/devices.edgelq.com' \
--plan-level ORGANIZATION \
--business-tier LARGE \
--resource-limits '{"resource": "services/devices.edgelq.com/resources/Device", "value": 500}'
Of course, it is necessary to provide resource limits for all required
resource types. Moreover, the plan should be created for all plan-level
and business-tier combinations required.
This is how assigners can create plans on their own. When they create child
entities, let’s say a Project:
cuttle iam create project <projectId> --parent-organization \
'organizations/<parentOrgId>' --business-tier <Tier> \
--multi-region-policy <MultiRegionPolicy> \
--enabled-services <EnabledService1> ... \
--enabled-services <EnabledServiceN>
In the above case (Assigner is an Organization), Limits service will create
automatically AcceptedPlans for all core SPEKTRA Edge and enabled services,
where --plan-level
is PROJECT
, and --business-tier
matches the one
specified in <Tier>
argument.
Assigner admins can manipulate AcceptedPlans further in two ways:
- By accepting PlanAssignmentRequests made by child entity admins
(if they initiate an action)
- By directly modifying AcceptedPlan instances
For example, AcceptedPlan can be directly modified from the plan assigned
by default:
cuttle limits update accepted-plan <AcceptedPlanId> \
--defaultRegionalPlan \
organizations/<parentOrgId>/plans/devices-service-500-devices
PlanAssignmentRequests are created by assignee admins (child project or
organizations). Service admins can see requests for them with:
cuttle limits list-approver plan-assignment-requests \
--approver 'services/<myServiceId>'
Organization admins (as assigners) can see requests for them with:
cuttle limits list-approver plan-assignment-requests \
--approver 'organizations/<myOrgId>'
Service admins can accept/decline requests with:
cuttle limits accept plan-assignment-request \
--name '<PlanAssignmentRequestFullName>' \
--approver 'services/<myServiceId>'
cuttle limits decline plan-assignment-request \
--name '<PlanAssignmentRequestFullName>' \
--approver 'services/<myServiceId>'
Organization admins can accept/decline requests with:
cuttle limits accept plan-assignment-request \
--name '<PlanAssignmentRequestFullName>' \
--approver 'organizations/<myOrgId>'
cuttle limits decline plan-assignment-request \
--name '<PlanAssignmentRequestFullName>' \
--approver 'organizations/<myOrgId>'
1 -
Understanding the limits.edgelq.com service APIv1, in proto package ntt.limits.v1.
Here is the list of resources supported in Limits service APIv1:
AcceptedPlan Resource
AcceptedPlan shows a plan accepted by assigner (system or organization)
for project, organization and system - with all additional information
like extensions or regional distributions.
It is in relation 1-1 with PlanAssignment, BUT:
- PlanAssignment is read-only and represents information for Assignee.
Name pattern indicates to WHOM plan is assigned.
- AcceptedPlan contains accepted configuration and represents information
for assigner. Name pattern indicates WHO ASSIGNED a plan. It is modifiable,
BUT modifications of accepted plans may result in increased usage of
allowed limit pools - Organization/Service cannot accept plans to
sub-entities without limits (however, system is allowed to assign plan to
itself without limits, which makes system admin fully responsible).
Name patterns:
services/{service}/acceptedPlans/{accepted_plan}
organizations/{organization}/acceptedPlans/{accepted_plan}
Parent resources:
This section covers the methods
and messages to interact
with AcceptedPlan resource.
AcceptedPlan Methods
Here is the list of AcceptedPlan resource methods:
GetAcceptedPlan Method
GetAcceptedPlan
rpc GetAcceptedPlan(GetAcceptedPlanRequest) returns (AcceptedPlan)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/acceptedPlans.get
The equivalent REST API is:
GET /v1/{name=services/*/acceptedPlans/*}
GET /v1/{name=organizations/*/acceptedPlans/*}
BatchGetAcceptedPlans Method
BatchGetAcceptedPlans
rpc BatchGetAcceptedPlans(BatchGetAcceptedPlansRequest) returns (BatchGetAcceptedPlansResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/acceptedPlans.batchGet
The equivalent REST API is:
GET /v1/acceptedPlans:batchGet
ListAcceptedPlans Method
ListAcceptedPlans
rpc ListAcceptedPlans(ListAcceptedPlansRequest) returns (ListAcceptedPlansResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/acceptedPlans.list
The equivalent REST API is:
GET /v1/{parent=services/*}/acceptedPlans
GET /v1/{parent=organizations/*}/acceptedPlans
WatchAcceptedPlan Method
WatchAcceptedPlan
rpc WatchAcceptedPlan(WatchAcceptedPlanRequest) returns (WatchAcceptedPlanResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/acceptedPlans.watch
The equivalent REST API is:
POST /v1/{name=services/*/acceptedPlans/*}:watch
POST /v1/{name=organizations/*/acceptedPlans/*}:watch
WatchAcceptedPlans Method
WatchAcceptedPlans
rpc WatchAcceptedPlans(WatchAcceptedPlansRequest) returns (WatchAcceptedPlansResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/acceptedPlans.watch
The equivalent REST API is:
POST /v1/{parent=services/*}/acceptedPlans:watch
POST /v1/{parent=organizations/*}/acceptedPlans:watch
CreateAcceptedPlan Method
CreateAcceptedPlan
rpc CreateAcceptedPlan(CreateAcceptedPlanRequest) returns (AcceptedPlan)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/acceptedPlans.create
The equivalent REST API is:
POST /v1/{parent=services/*}/acceptedPlans (BODY: accepted_plan)
POST /v1/{parent=organizations/*}/acceptedPlans
UpdateAcceptedPlan Method
UpdateAcceptedPlan
rpc UpdateAcceptedPlan(UpdateAcceptedPlanRequest) returns (AcceptedPlan)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/acceptedPlans.update
The equivalent REST API is:
PUT /v1/{accepted_plan.name=services/*/acceptedPlans/*} (BODY: accepted_plan)
PUT /v1/{accepted_plan.name=organizations/*/acceptedPlans/*}
DeleteAcceptedPlan Method
DeleteAcceptedPlan
rpc DeleteAcceptedPlan(DeleteAcceptedPlanRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/acceptedPlans.delete
The equivalent REST API is:
DELETE /v1/{name=services/*/acceptedPlans/*}
DELETE /v1/{name=organizations/*/acceptedPlans/*}
AcceptedPlan Messages
Here is the list of AcceptedPlan resource messages:
AcceptedPlan Message
Name |
Type |
Description |
name |
string (name of AcceptedPlan) |
Name of AcceptedPlan When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-zA-Z0-9_.-]{1,128} |
metadata |
Meta |
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones). |
default_regional_plan |
string (reference to Plan) |
Plan with resource limits - it will apply to EACH region of service/organization/project. |
service |
string (reference to Service) |
Service indicated by a plan. |
regional_plan_overrides |
repeated RegionalPlanAssignment |
Individual plan overrides per each region - however, overrides do not work on non-regional resources for project assignees. |
extensions |
repeated Allowance |
Optional extensions over standard plans in individual regions or all regions, if region id is empty. |
allowances |
repeated Allowance |
Final allowances per resource/region - computed from extensions and all regional plans. |
applied_regions |
repeated string |
List of regions ID where plan was applied - it is being taken from service/organization/project list of regions. Limits service extends plans if it notices expansion to the new region. |
applied_plan_spec_generation |
int64 |
Default region plan generation number, set during each update and creation. It is used to notice if plan got changed and we need to trigger accepted plan update. |
assignee |
AcceptedPlan.Assignee |
Plan assignee |
AcceptedPlan.Assignee Message
Assignee indicates for whom plan was accepted for.
In case of child project/org deletion, accepted plan will be deleted too,
which will result in return of all limits.
Name |
Type |
Description |
project_assignee |
string (reference to Project) |
Project for whom plan is for. |
organization_assignee |
string (reference to Organization) |
Organization for whom plan is for. |
service_assignee |
string (reference to Service) |
Service for whom plan is for |
GetAcceptedPlanRequest Message
A request message of the GetAcceptedPlan method.
Name |
Type |
Description |
name |
string (name of AcceptedPlan) |
Name of ntt.limits.v1.AcceptedPlan |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetAcceptedPlansRequest Message
A request message of the BatchGetAcceptedPlans method.
Name |
Type |
Description |
names |
repeated string (name of AcceptedPlan) |
Names of AcceptedPlans |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetAcceptedPlansResponse Message
A response message of the BatchGetAcceptedPlans method.
Name |
Type |
Description |
accepted_plans |
repeated AcceptedPlan |
found AcceptedPlans |
missing |
repeated string (name of AcceptedPlan) |
list of not found AcceptedPlans |
ListAcceptedPlansRequest Message
A request message of the ListAcceptedPlans method.
Name |
Type |
Description |
parent |
string (parent name of AcceptedPlan) |
Parent name of ntt.limits.v1.AcceptedPlan |
page_size |
int32 |
Requested page size. Server may return fewer AcceptedPlans than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of AcceptedPlan) |
A token identifying a page of results the server should return. Typically, this is the value of ListAcceptedPlansResponse.next_page_token. |
order_by |
string (orderBy of AcceptedPlan) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of AcceptedPlan) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListAcceptedPlansResponse Message
A response message of the ListAcceptedPlans method.
Name |
Type |
Description |
accepted_plans |
repeated AcceptedPlan |
The list of AcceptedPlans |
prev_page_token |
string (cursor of AcceptedPlan) |
A token to retrieve previous page of results. Pass this value in the ListAcceptedPlansRequest.page_token. |
next_page_token |
string (cursor of AcceptedPlan) |
A token to retrieve next page of results. Pass this value in the ListAcceptedPlansRequest.page_token. |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total AcceptedPlans across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
WatchAcceptedPlanRequest Message
A request message of the WatchAcceptedPlan method.
Name |
Type |
Description |
name |
string (name of AcceptedPlan) |
Name of ntt.limits.v1.AcceptedPlan |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchAcceptedPlanResponse Message
A response message of the WatchAcceptedPlan method.
WatchAcceptedPlansRequest Message
A request message of the WatchAcceptedPlans method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
parent |
string (parent name of AcceptedPlan) |
Parent name of ntt.limits.v1.AcceptedPlan |
page_size |
int32 |
Requested page size. Server may return fewer AcceptedPlans than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of AcceptedPlan) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of AcceptedPlan) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of AcceptedPlan) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to AcceptedPlan that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to AcceptedPlan that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchAcceptedPlansResponse Message
A response message of the WatchAcceptedPlans method.
Name |
Type |
Description |
accepted_plan_changes |
repeated AcceptedPlanChange |
Changes of AcceptedPlans |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All AcceptedPlans will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchAcceptedPlansResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (AcceptedPlans will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchAcceptedPlansResponse.PageTokenChange Message
Name |
Type |
Description |
prev_page_token |
string (cursor of AcceptedPlan) |
New token to retrieve previous page of results. |
next_page_token |
string (cursor of AcceptedPlan) |
New token to retrieve next page of results. |
CreateAcceptedPlanRequest Message
A request message of the CreateAcceptedPlan method.
CreateAcceptedPlanRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. |
UpdateAcceptedPlanRequest Message
A request message of the UpdateAcceptedPlan method.
Name |
Type |
Description |
accepted_plan |
AcceptedPlan |
AcceptedPlan resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdateAcceptedPlanRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
allow_missing |
bool |
If set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update |
response_mask |
UpdateAcceptedPlanRequest.ResponseMask |
reduce message response size. |
UpdateAcceptedPlanRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
AcceptedPlan |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdateAcceptedPlanRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeleteAcceptedPlanRequest Message
A request message of the DeleteAcceptedPlan method.
Name |
Type |
Description |
name |
string (name of AcceptedPlan) |
Name of ntt.limits.v1.AcceptedPlan |
Limit Resource
Limit resource represents usage/limit of specific resource
in specific project and region - however instances of those
resources are managed by primary region of project. This
ensures consistency and allows modification of project limits
in one database transaction.
Limit instances cannot be created or deleted. They cannot be
also be modified (there are only some state fields controlled
by system). Limits are created/modified along with
PlanAssignment instances.
Name patterns:
projects/{project}/limits/{limit}
Parent resources:
This section covers the methods
and messages to interact
with Limit resource.
Limit Methods
Here is the list of Limit resource methods:
GetLimit Method
GetLimit
rpc GetLimit(GetLimitRequest) returns (Limit)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/limits.get
The equivalent REST API is:
GET /v1/{name=projects/*/limits/*}
BatchGetLimits Method
BatchGetLimits
rpc BatchGetLimits(BatchGetLimitsRequest) returns (BatchGetLimitsResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/limits.batchGet
The equivalent REST API is:
ListLimits Method
ListLimits
rpc ListLimits(ListLimitsRequest) returns (ListLimitsResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/limits.list
The equivalent REST API is:
GET /v1/{parent=projects/*}/limits
WatchLimit Method
WatchLimit
rpc WatchLimit(WatchLimitRequest) returns (WatchLimitResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/limits.watch
The equivalent REST API is:
POST /v1/{name=projects/*/limits/*}:watch
WatchLimits Method
WatchLimits
rpc WatchLimits(WatchLimitsRequest) returns (WatchLimitsResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/limits.watch
The equivalent REST API is:
POST /v1/{parent=projects/*}/limits:watch
UpdateLimit Method
UpdateLimit
rpc UpdateLimit(UpdateLimitRequest) returns (Limit)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/limits.update
The equivalent REST API is:
PUT /v1/{limit.name=projects/*/limits/*} (BODY: limit)
DeleteLimit Method
DeleteLimit
rpc DeleteLimit(DeleteLimitRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/limits.delete
The equivalent REST API is:
DELETE /v1/{name=projects/*/limits/*}
MigrateLimitSource Method
MigrateLimitSource
rpc MigrateLimitSource(MigrateLimitSourceRequest) returns (Limit)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/limits.migrate
The equivalent REST API is:
POST /v1/{name=projects/*/limits/*}:migrate
Limit Messages
Here is the list of Limit resource messages:
Limit Message
Name |
Type |
Description |
name |
string (name of Limit) |
Name of Limit When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-zA-Z0-9-]{1,128}\/[a-zA-Z0-9-.]{1,128}\/[a-zA-Z]{1,128} |
metadata |
Meta |
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones). |
service |
string (reference to Service) |
Referenced service |
resource |
string (reference to Resource) |
Referenced resource type |
region |
string |
Region ID to which this limit applies. This may be different compared to default project region, because projects themselves can be multi-regional. |
configured_limit |
int64 |
Configured limit - it is always in sync with limits predicted by PlanAssignment instances. |
active_limit |
int64 |
Active limit - it is always equal to configured limit with exceptions: * If configured limit has just changed, then active limit will for a moment contain old value before synchronization. * If it turns out that usage increased in the very same moment when configured limit decreased, then active limit will hold old value indicating problem. It is important to note that, because projects may be multi-regional, limits are tracked by their FINAL region (See region field). State fields (active limit and usage) are synced asynchronously. From user perspective this field can be hidden if in line with configured limit. |
usage |
int64 |
Number of resources currently in existence. |
sources |
repeated string (reference to LimitPool) |
LimitPool sources that supplied reservation to this limit. Any change in configured/active value in current Limit increases/decreases reserved field in source LimitPool. Number of sources depends whether resource is regional or not - if resource is regional, it will be only one source pointing to the specific region. Non-regional resources will point to all regions where project is present. |
GetLimitRequest Message
A request message of the GetLimit method.
Name |
Type |
Description |
name |
string (name of Limit) |
Name of ntt.limits.v1.Limit |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetLimitsRequest Message
A request message of the BatchGetLimits method.
Name |
Type |
Description |
names |
repeated string (name of Limit) |
Names of Limits |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetLimitsResponse Message
A response message of the BatchGetLimits method.
Name |
Type |
Description |
limits |
repeated Limit |
found Limits |
missing |
repeated string (name of Limit) |
list of not found Limits |
ListLimitsRequest Message
A request message of the ListLimits method.
Name |
Type |
Description |
parent |
string (parent name of Limit) |
Parent name of ntt.limits.v1.Limit |
page_size |
int32 |
Requested page size. Server may return fewer Limits than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of Limit) |
A token identifying a page of results the server should return. Typically, this is the value of ListLimitsResponse.next_page_token. |
order_by |
string (orderBy of Limit) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of Limit) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListLimitsResponse Message
A response message of the ListLimits method.
Name |
Type |
Description |
limits |
repeated Limit |
The list of Limits |
prev_page_token |
string (cursor of Limit) |
A token to retrieve previous page of results. Pass this value in the ListLimitsRequest.page_token. |
next_page_token |
string (cursor of Limit) |
A token to retrieve next page of results. Pass this value in the ListLimitsRequest.page_token. |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total Limits across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
WatchLimitRequest Message
A request message of the WatchLimit method.
Name |
Type |
Description |
name |
string (name of Limit) |
Name of ntt.limits.v1.Limit |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchLimitResponse Message
A response message of the WatchLimit method.
WatchLimitsRequest Message
A request message of the WatchLimits method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
parent |
string (parent name of Limit) |
Parent name of ntt.limits.v1.Limit |
page_size |
int32 |
Requested page size. Server may return fewer Limits than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of Limit) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of Limit) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of Limit) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Limit that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Limit that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchLimitsResponse Message
A response message of the WatchLimits method.
Name |
Type |
Description |
limit_changes |
repeated LimitChange |
Changes of Limits |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Limits will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchLimitsResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Limits will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchLimitsResponse.PageTokenChange Message
Name |
Type |
Description |
prev_page_token |
string (cursor of Limit) |
New token to retrieve previous page of results. |
next_page_token |
string (cursor of Limit) |
New token to retrieve next page of results. |
UpdateLimitRequest Message
A request message of the UpdateLimit method.
Name |
Type |
Description |
limit |
Limit |
Limit resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdateLimitRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
response_mask |
UpdateLimitRequest.ResponseMask |
Optional masking applied to response object to reduce message response size. |
UpdateLimitRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
Limit |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdateLimitRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeleteLimitRequest Message
A request message of the DeleteLimit method.
Name |
Type |
Description |
name |
string (name of Limit) |
Name of ntt.limits.v1.Limit |
MigrateLimitSourceRequest Message
Request message for method
[MigrateLimitSource][ntt.limits.v1.MigrateLimitSource]
Name |
Type |
Description |
name |
string (name of Limit) |
name of ntt.limits.v1.Limit |
LimitPool Resource
LimitPool represents a pool from which next LimitPool
or final Limit instances are allocated from. LimitPool
can either belong to a service (first pool, without parent) or
organization (which got pool from service or parent organization).
Size of child limit or limit pools must not exceed parent
limit pool.
LimitPool is in a way similar to Limit - it has scope and
associated resource but LimitPool is non-final object. It cannot be used to
allocate resources directly. It need child Limit first. Therefore,
field with values in LimitPool are configured size, active
size and reserved. Fields in Limit are configured limit,
active limit and usage - they need different interpretation.
Because LimitPool instances within one scope (service, organization)
are managed by primary region of that scope, changes in them
are done with only single transaction.
LimitPool instances cannot be directly created or deleted. They cannot be
also be modified (there are only some state fields controlled
by service). LimitPools are created/modified along with
PlanAssignment instances.
Name patterns:
services/{service}/limitPools/{limit_pool}
organizations/{organization}/limitPools/{limit_pool}
Parent resources:
This section covers the methods
and messages to interact
with LimitPool resource.
LimitPool Methods
Here is the list of LimitPool resource methods:
GetLimitPool Method
GetLimitPool
rpc GetLimitPool(GetLimitPoolRequest) returns (LimitPool)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/limitPools.get
The equivalent REST API is:
GET /v1/{name=services/*/limitPools/*}
GET /v1/{name=organizations/*/limitPools/*}
BatchGetLimitPools Method
BatchGetLimitPools
rpc BatchGetLimitPools(BatchGetLimitPoolsRequest) returns (BatchGetLimitPoolsResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/limitPools.batchGet
The equivalent REST API is:
GET /v1/limitPools:batchGet
ListLimitPools Method
ListLimitPools
rpc ListLimitPools(ListLimitPoolsRequest) returns (ListLimitPoolsResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/limitPools.list
The equivalent REST API is:
GET /v1/{parent=services/*}/limitPools
GET /v1/{parent=organizations/*}/limitPools
WatchLimitPool Method
WatchLimitPool
rpc WatchLimitPool(WatchLimitPoolRequest) returns (WatchLimitPoolResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/limitPools.watch
The equivalent REST API is:
POST /v1/{name=services/*/limitPools/*}:watch
POST /v1/{name=organizations/*/limitPools/*}:watch
WatchLimitPools Method
WatchLimitPools
rpc WatchLimitPools(WatchLimitPoolsRequest) returns (WatchLimitPoolsResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/limitPools.watch
The equivalent REST API is:
POST /v1/{parent=services/*}/limitPools:watch
POST /v1/{parent=organizations/*}/limitPools:watch
UpdateLimitPool Method
UpdateLimitPool
rpc UpdateLimitPool(UpdateLimitPoolRequest) returns (LimitPool)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/limitPools.update
The equivalent REST API is:
PUT /v1/{limit_pool.name=services/*/limitPools/*} (BODY: limit_pool)
PUT /v1/{limit_pool.name=organizations/*/limitPools/*}
DeleteLimitPool Method
DeleteLimitPool
rpc DeleteLimitPool(DeleteLimitPoolRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/limitPools.delete
The equivalent REST API is:
DELETE /v1/{name=services/*/limitPools/*}
DELETE /v1/{name=organizations/*/limitPools/*}
MigrateLimitPoolSource Method
MigrateLimitPoolSource
rpc MigrateLimitPoolSource(MigrateLimitPoolSourceRequest) returns (LimitPool)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/limitPools.migrate
The equivalent REST API is:
POST /v1/{name=services/*/limitPools/*}:migrate
POST /v1/{name=organizations/*/limitPools/*}:migrate
LimitPool Messages
Here is the list of LimitPool resource messages:
LimitPool Message
Name |
Type |
Description |
name |
string (name of LimitPool) |
Name of LimitPool When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-zA-Z0-9-]{1,128}\/[a-zA-Z0-9-.]{1,128}\/[a-zA-Z]{1,128} |
metadata |
Meta |
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones). |
service |
string (reference to Service) |
Referenced service |
resource |
string (reference to Resource) |
Referenced resource type |
region |
string |
Region ID to which this pool applies. This may be different compared to default region for service/organization, because they may use multiple regions. |
configured_size |
int64 |
Configured size of pool according to PlanAssignment instances belonging to same scope (system or organization). |
active_size |
int64 |
Active pool size. It will be normally equal to configured size. However, if configured size goes down below reserved value, then active size will be equal to that “reserved”. It will also prevent parent LimitPool (if any) from getting limit value back. |
reserved |
int64 |
Configured OR Active Size of all child Limit and LimitPool instances - whichever is bigger. |
source |
string (reference to LimitPool) |
LimitPool source that supplied reservation to this LimitPool. Any change in configured/active value in current LimitPool increases/decreases reserved field in source LimitPool. |
GetLimitPoolRequest Message
A request message of the GetLimitPool method.
Name |
Type |
Description |
name |
string (name of LimitPool) |
Name of ntt.limits.v1.LimitPool |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetLimitPoolsRequest Message
A request message of the BatchGetLimitPools method.
Name |
Type |
Description |
names |
repeated string (name of LimitPool) |
Names of LimitPools |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetLimitPoolsResponse Message
A response message of the BatchGetLimitPools method.
Name |
Type |
Description |
limit_pools |
repeated LimitPool |
found LimitPools |
missing |
repeated string (name of LimitPool) |
list of not found LimitPools |
ListLimitPoolsRequest Message
A request message of the ListLimitPools method.
Name |
Type |
Description |
parent |
string (parent name of LimitPool) |
Parent name of ntt.limits.v1.LimitPool |
page_size |
int32 |
Requested page size. Server may return fewer LimitPools than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of LimitPool) |
A token identifying a page of results the server should return. Typically, this is the value of ListLimitPoolsResponse.next_page_token. |
order_by |
string (orderBy of LimitPool) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of LimitPool) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListLimitPoolsResponse Message
A response message of the ListLimitPools method.
Name |
Type |
Description |
limit_pools |
repeated LimitPool |
The list of LimitPools |
prev_page_token |
string (cursor of LimitPool) |
A token to retrieve previous page of results. Pass this value in the ListLimitPoolsRequest.page_token. |
next_page_token |
string (cursor of LimitPool) |
A token to retrieve next page of results. Pass this value in the ListLimitPoolsRequest.page_token. |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total LimitPools across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
WatchLimitPoolRequest Message
A request message of the WatchLimitPool method.
Name |
Type |
Description |
name |
string (name of LimitPool) |
Name of ntt.limits.v1.LimitPool |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchLimitPoolResponse Message
A response message of the WatchLimitPool method.
WatchLimitPoolsRequest Message
A request message of the WatchLimitPools method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
parent |
string (parent name of LimitPool) |
Parent name of ntt.limits.v1.LimitPool |
page_size |
int32 |
Requested page size. Server may return fewer LimitPools than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of LimitPool) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of LimitPool) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of LimitPool) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to LimitPool that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to LimitPool that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchLimitPoolsResponse Message
A response message of the WatchLimitPools method.
Name |
Type |
Description |
limit_pool_changes |
repeated LimitPoolChange |
Changes of LimitPools |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All LimitPools will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchLimitPoolsResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (LimitPools will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchLimitPoolsResponse.PageTokenChange Message
Name |
Type |
Description |
prev_page_token |
string (cursor of LimitPool) |
New token to retrieve previous page of results. |
next_page_token |
string (cursor of LimitPool) |
New token to retrieve next page of results. |
UpdateLimitPoolRequest Message
A request message of the UpdateLimitPool method.
Name |
Type |
Description |
limit_pool |
LimitPool |
LimitPool resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdateLimitPoolRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
response_mask |
UpdateLimitPoolRequest.ResponseMask |
Optional masking applied to response object to reduce message response size. |
UpdateLimitPoolRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
LimitPool |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdateLimitPoolRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeleteLimitPoolRequest Message
A request message of the DeleteLimitPool method.
Name |
Type |
Description |
name |
string (name of LimitPool) |
Name of ntt.limits.v1.LimitPool |
MigrateLimitPoolSourceRequest Message
Request message for method
[MigrateLimitPoolSource][ntt.limits.v1.MigrateLimitPoolSource]
Name |
Type |
Description |
name |
string (name of LimitPool) |
name of ntt.limits.v1.LimitPool |
Plan Resource
Plan is a bundle with set of limits for various resources in given service.
Note that Plan limits are regional. For example, if plan predicts
for example 1000 pods and is assigned for resource enabled for 2
regions, then project will be allowed to create 1000 pods in each
region.
Name patterns:
services/{service}/plans/{plan}
organizations/{organization}/plans/{plan}
Parent resources:
This section covers the methods
and messages to interact
with Plan resource.
Plan Methods
Here is the list of Plan resource methods:
GetPlan Method
GetPlan
rpc GetPlan(GetPlanRequest) returns (Plan)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/plans.get
The equivalent REST API is:
GET /v1/{name=services/*/plans/*}
GET /v1/{name=organizations/*/plans/*}
BatchGetPlans Method
BatchGetPlans
rpc BatchGetPlans(BatchGetPlansRequest) returns (BatchGetPlansResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/plans.batchGet
The equivalent REST API is:
ListPlans Method
ListPlans
rpc ListPlans(ListPlansRequest) returns (ListPlansResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/plans.list
The equivalent REST API is:
GET /v1/{parent=services/*}/plans
GET /v1/{parent=organizations/*}/plans
WatchPlan Method
WatchPlan
rpc WatchPlan(WatchPlanRequest) returns (WatchPlanResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/plans.watch
The equivalent REST API is:
POST /v1/{name=services/*/plans/*}:watch
POST /v1/{name=organizations/*/plans/*}:watch
WatchPlans Method
WatchPlans
rpc WatchPlans(WatchPlansRequest) returns (WatchPlansResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/plans.watch
The equivalent REST API is:
POST /v1/{parent=services/*}/plans:watch
POST /v1/{parent=organizations/*}/plans:watch
CreatePlan Method
CreatePlan
rpc CreatePlan(CreatePlanRequest) returns (Plan)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/plans.create
The equivalent REST API is:
POST /v1/{parent=services/*}/plans (BODY: plan)
POST /v1/{parent=organizations/*}/plans
UpdatePlan Method
UpdatePlan
rpc UpdatePlan(UpdatePlanRequest) returns (Plan)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/plans.update
The equivalent REST API is:
PUT /v1/{plan.name=services/*/plans/*} (BODY: plan)
PUT /v1/{plan.name=organizations/*/plans/*}
DeletePlan Method
DeletePlan
rpc DeletePlan(DeletePlanRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/plans.delete
The equivalent REST API is:
DELETE /v1/{name=services/*/plans/*}
DELETE /v1/{name=organizations/*/plans/*}
Plan Messages
Here is the list of Plan resource messages:
Plan Message
Name |
Type |
Description |
name |
string (name of Plan) |
Name of Plan When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-zA-Z0-9_.-]{1,128} |
metadata |
Meta |
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones). |
display_name |
string |
Plan display name |
service |
string (reference to Service) |
Service where plan applies. If this Plan is a child of Service itself, they must be equal. |
resource_limits |
repeated Plan.LimitValue |
List of limits per each resource. |
plan_level |
Plan.PlanLevel |
Plan level |
business_tier |
BusinessTier |
Business tier - this only is used to determine default plan when project/organization is created. It is possible to set this value to UNDEFINED rendering this plan as non-default. |
generation |
int64 |
Spec generation, incremented for every change in resource_limits field. |
Plan.LimitValue Message
LimitValue informs how many instances of resource for given type are
permitted.
Name |
Type |
Description |
resource |
string (reference to Resource) |
Reference to resource |
value |
int64 |
Limit for given resource. |
GetPlanRequest Message
A request message of the GetPlan method.
Name |
Type |
Description |
name |
string (name of Plan) |
Name of ntt.limits.v1.Plan |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetPlansRequest Message
A request message of the BatchGetPlans method.
Name |
Type |
Description |
names |
repeated string (name of Plan) |
Names of Plans |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetPlansResponse Message
A response message of the BatchGetPlans method.
Name |
Type |
Description |
plans |
repeated Plan |
found Plans |
missing |
repeated string (name of Plan) |
list of not found Plans |
ListPlansRequest Message
A request message of the ListPlans method.
Name |
Type |
Description |
parent |
string (parent name of Plan) |
Parent name of ntt.limits.v1.Plan |
page_size |
int32 |
Requested page size. Server may return fewer Plans than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of Plan) |
A token identifying a page of results the server should return. Typically, this is the value of ListPlansResponse.next_page_token. |
order_by |
string (orderBy of Plan) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of Plan) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListPlansResponse Message
A response message of the ListPlans method.
Name |
Type |
Description |
plans |
repeated Plan |
The list of Plans |
prev_page_token |
string (cursor of Plan) |
A token to retrieve previous page of results. Pass this value in the ListPlansRequest.page_token. |
next_page_token |
string (cursor of Plan) |
A token to retrieve next page of results. Pass this value in the ListPlansRequest.page_token. |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total Plans across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
WatchPlanRequest Message
A request message of the WatchPlan method.
Name |
Type |
Description |
name |
string (name of Plan) |
Name of ntt.limits.v1.Plan |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchPlanResponse Message
A response message of the WatchPlan method.
WatchPlansRequest Message
A request message of the WatchPlans method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
parent |
string (parent name of Plan) |
Parent name of ntt.limits.v1.Plan |
page_size |
int32 |
Requested page size. Server may return fewer Plans than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of Plan) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of Plan) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of Plan) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Plan that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Plan that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchPlansResponse Message
A response message of the WatchPlans method.
Name |
Type |
Description |
plan_changes |
repeated PlanChange |
Changes of Plans |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Plans will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchPlansResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Plans will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchPlansResponse.PageTokenChange Message
Name |
Type |
Description |
prev_page_token |
string (cursor of Plan) |
New token to retrieve previous page of results. |
next_page_token |
string (cursor of Plan) |
New token to retrieve next page of results. |
CreatePlanRequest Message
A request message of the CreatePlan method.
Name |
Type |
Description |
parent |
string (parent name of Plan) |
Parent name of ntt.limits.v1.Plan |
plan |
Plan |
Plan resource body |
response_mask |
CreatePlanRequest.ResponseMask |
Optional masking applied to response object to reduce message response size. |
CreatePlanRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. |
UpdatePlanRequest Message
A request message of the UpdatePlan method.
Name |
Type |
Description |
plan |
Plan |
Plan resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdatePlanRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
allow_missing |
bool |
If set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update |
response_mask |
UpdatePlanRequest.ResponseMask |
reduce message response size. |
UpdatePlanRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
Plan |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdatePlanRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeletePlanRequest Message
A request message of the DeletePlan method.
Name |
Type |
Description |
name |
string (name of Plan) |
Name of ntt.limits.v1.Plan |
Plan Enumerations
Here is the list of Plan resource enumerations:
Plan.PlanLevel Enumeration
PlanLevel defines entity level for whom plan can be assigned
Name |
Description |
UNDEFINED |
|
SERVICE |
|
ORGANIZATION |
|
PROJECT |
|
PlanAssignment Resource
PlanAssignment binds plan (with optional customizations) with specific
entity (assignee - either system, organization or project).
Plan assignments (sum of them) are used to compute configured size of
limit pools (system and organizations) AND limits (projects).
They are not modifiable - limits are passed from system to projects,
so each PlanAssignment must be agreed by higher instance (parent organization
or system). System recognizes acceptance by existence of AcceptedPlan
instances - it synchronizes PlanAssignment instances with them.
Name patterns:
services/{service}/planAssignments/{plan_assignment}
projects/{project}/planAssignments/{plan_assignment}
organizations/{organization}/planAssignments/{plan_assignment}
Parent resources:
This section covers the methods
and messages to interact
with PlanAssignment resource.
PlanAssignment Methods
Here is the list of PlanAssignment resource methods:
GetPlanAssignment Method
GetPlanAssignment
rpc GetPlanAssignment(GetPlanAssignmentRequest) returns (PlanAssignment)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignments.get
The equivalent REST API is:
GET /v1/{name=services/*/planAssignments/*}
GET /v1/{name=projects/*/planAssignments/*}
GET /v1/{name=organizations/*/planAssignments/*}
BatchGetPlanAssignments Method
BatchGetPlanAssignments
rpc BatchGetPlanAssignments(BatchGetPlanAssignmentsRequest) returns (BatchGetPlanAssignmentsResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignments.batchGet
The equivalent REST API is:
GET /v1/planAssignments:batchGet
ListPlanAssignments Method
ListPlanAssignments
rpc ListPlanAssignments(ListPlanAssignmentsRequest) returns (ListPlanAssignmentsResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignments.list
The equivalent REST API is:
GET /v1/{parent=services/*}/planAssignments
GET /v1/{parent=projects/*}/planAssignments
GET /v1/{parent=organizations/*}/planAssignments
WatchPlanAssignment Method
WatchPlanAssignment
rpc WatchPlanAssignment(WatchPlanAssignmentRequest) returns (WatchPlanAssignmentResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignments.watch
The equivalent REST API is:
POST /v1/{name=services/*/planAssignments/*}:watch
POST /v1/{name=projects/*/planAssignments/*}:watch
POST /v1/{name=organizations/*/planAssignments/*}:watch
WatchPlanAssignments Method
WatchPlanAssignments
rpc WatchPlanAssignments(WatchPlanAssignmentsRequest) returns (WatchPlanAssignmentsResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignments.watch
The equivalent REST API is:
POST /v1/{parent=services/*}/planAssignments:watch
POST /v1/{parent=projects/*}/planAssignments:watch
POST /v1/{parent=organizations/*}/planAssignments:watch
CreatePlanAssignment Method
CreatePlanAssignment
rpc CreatePlanAssignment(CreatePlanAssignmentRequest) returns (PlanAssignment)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignments.create
The equivalent REST API is:
POST /v1/{parent=services/*}/planAssignments (BODY: plan_assignment)
POST /v1/{parent=projects/*}/planAssignments
POST /v1/{parent=organizations/*}/planAssignments
UpdatePlanAssignment Method
UpdatePlanAssignment
rpc UpdatePlanAssignment(UpdatePlanAssignmentRequest) returns (PlanAssignment)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignments.update
The equivalent REST API is:
PUT /v1/{plan_assignment.name=services/*/planAssignments/*} (BODY: plan_assignment)
PUT /v1/{plan_assignment.name=projects/*/planAssignments/*}
PUT /v1/{plan_assignment.name=organizations/*/planAssignments/*}
DeletePlanAssignment Method
DeletePlanAssignment
rpc DeletePlanAssignment(DeletePlanAssignmentRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignments.delete
The equivalent REST API is:
DELETE /v1/{name=services/*/planAssignments/*}
DELETE /v1/{name=projects/*/planAssignments/*}
DELETE /v1/{name=organizations/*/planAssignments/*}
MigratePlanAssignment Method
MigratePlanAssignment
rpc MigratePlanAssignment(MigratePlanAssignmentRequest) returns (PlanAssignment)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignments.migrate
The equivalent REST API is:
PUT /v1/{plan_assignment.name=services/*/planAssignments/*}:migrate (BODY: plan_assignment)
PUT /v1/{plan_assignment.name=projects/*/planAssignments/*}:migrate
PUT /v1/{plan_assignment.name=organizations/*/planAssignments/*}:migrate
PlanAssignment Messages
Here is the list of PlanAssignment resource messages:
PlanAssignment Message
Name |
Type |
Description |
name |
string (name of PlanAssignment) |
Name of PlanAssignment When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-zA-Z0-9_.-]{1,128} |
metadata |
Meta |
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones). |
default_regional_plan |
string (reference to Plan) |
Plan with basic set of limits - it will apply to EACH region of service/organization/project |
service |
string (reference to Service) |
Service associated with plan |
regional_plan_overrides |
repeated RegionalPlanAssignment |
Individual plan overrides per each region. |
extensions |
repeated Allowance |
Additional extensions (but may be negative) on top of regular plan. |
allowances |
repeated Allowance |
Final allowances per resource/region - computed from extensions and all regional plans. |
applied_regions |
repeated string |
List of regions ID where plan was applied - it is being taken from service/organization/project list of regions. Limits service extends plans if it notices expansion to the new region. |
applied_plan_spec_generation |
int64 |
Default region plan generation number, set during each update and creation. It is used to notice if plan got changed and we need to trigger plan update. |
source |
string (reference to AcceptedPlan) |
Source with which this PlanAssignment is synchronized. |
GetPlanAssignmentRequest Message
A request message of the GetPlanAssignment method.
Name |
Type |
Description |
name |
string (name of PlanAssignment) |
Name of ntt.limits.v1.PlanAssignment |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetPlanAssignmentsRequest Message
A request message of the BatchGetPlanAssignments method.
Name |
Type |
Description |
names |
repeated string (name of PlanAssignment) |
Names of PlanAssignments |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetPlanAssignmentsResponse Message
A response message of the BatchGetPlanAssignments method.
Name |
Type |
Description |
plan_assignments |
repeated PlanAssignment |
found PlanAssignments |
missing |
repeated string (name of PlanAssignment) |
list of not found PlanAssignments |
ListPlanAssignmentsRequest Message
A request message of the ListPlanAssignments method.
Name |
Type |
Description |
parent |
string (parent name of PlanAssignment) |
Parent name of ntt.limits.v1.PlanAssignment |
page_size |
int32 |
Requested page size. Server may return fewer PlanAssignments than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of PlanAssignment) |
A token identifying a page of results the server should return. Typically, this is the value of ListPlanAssignmentsResponse.next_page_token. |
order_by |
string (orderBy of PlanAssignment) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of PlanAssignment) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListPlanAssignmentsResponse Message
A response message of the ListPlanAssignments method.
Name |
Type |
Description |
plan_assignments |
repeated PlanAssignment |
The list of PlanAssignments |
prev_page_token |
string (cursor of PlanAssignment) |
A token to retrieve previous page of results. Pass this value in the ListPlanAssignmentsRequest.page_token. |
next_page_token |
string (cursor of PlanAssignment) |
A token to retrieve next page of results. Pass this value in the ListPlanAssignmentsRequest.page_token. |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total PlanAssignments across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
WatchPlanAssignmentRequest Message
A request message of the WatchPlanAssignment method.
Name |
Type |
Description |
name |
string (name of PlanAssignment) |
Name of ntt.limits.v1.PlanAssignment |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchPlanAssignmentResponse Message
A response message of the WatchPlanAssignment method.
WatchPlanAssignmentsRequest Message
A request message of the WatchPlanAssignments method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
parent |
string (parent name of PlanAssignment) |
Parent name of ntt.limits.v1.PlanAssignment |
page_size |
int32 |
Requested page size. Server may return fewer PlanAssignments than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of PlanAssignment) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of PlanAssignment) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of PlanAssignment) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to PlanAssignment that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to PlanAssignment that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchPlanAssignmentsResponse Message
A response message of the WatchPlanAssignments method.
Name |
Type |
Description |
plan_assignment_changes |
repeated PlanAssignmentChange |
Changes of PlanAssignments |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All PlanAssignments will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchPlanAssignmentsResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (PlanAssignments will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchPlanAssignmentsResponse.PageTokenChange Message
Name |
Type |
Description |
prev_page_token |
string (cursor of PlanAssignment) |
New token to retrieve previous page of results. |
next_page_token |
string (cursor of PlanAssignment) |
New token to retrieve next page of results. |
CreatePlanAssignmentRequest Message
A request message of the CreatePlanAssignment method.
CreatePlanAssignmentRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. |
UpdatePlanAssignmentRequest Message
A request message of the UpdatePlanAssignment method.
Name |
Type |
Description |
plan_assignment |
PlanAssignment |
PlanAssignment resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdatePlanAssignmentRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
allow_missing |
bool |
If set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update |
response_mask |
UpdatePlanAssignmentRequest.ResponseMask |
reduce message response size. |
UpdatePlanAssignmentRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
PlanAssignment |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdatePlanAssignmentRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeletePlanAssignmentRequest Message
A request message of the DeletePlanAssignment method.
Name |
Type |
Description |
name |
string (name of PlanAssignment) |
Name of ntt.limits.v1.PlanAssignment |
MigratePlanAssignmentRequest Message
Request message for method
[MigratePlanAssignment][ntt.limits.v1.MigratePlanAssignment]
Name |
Type |
Description |
plan_assignment |
PlanAssignment |
PlanAssignment resource body |
PlanAssignmentRequest Resource
PlanAssignmentRequest gives administrator a way to modify their
PlanAssignment instances in a safe way, with respect to parent
organization/system limits.
PlanAssignmentRequest can be used to:
- Assign/Reassign new plan for specific service
- Extend specific resource limits for existing PlanAssignment
- Redistribute limits across regions (available for project PlanAssignments)
- Unassign existing PlanAssignment
Certain requests may be automatically approved by system (for example, if
they would result in lowering limits), other require higher administrator
consent. User creating request should check status field after operation
to check if request was automatically approved.
Name patterns:
projects/{project}/planAssignmentRequests/{plan_assignment_request}
organizations/{organization}/planAssignmentRequests/{plan_assignment_request}
Parent resources:
This section covers the methods
and messages to interact
with PlanAssignmentRequest resource.
PlanAssignmentRequest Methods
Here is the list of PlanAssignmentRequest resource methods:
GetPlanAssignmentRequest Method
GetPlanAssignmentRequest
rpc GetPlanAssignmentRequest(GetPlanAssignmentRequestRequest) returns (PlanAssignmentRequest)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignmentRequests.get
The equivalent REST API is:
GET /v1/{name=projects/*/planAssignmentRequests/*}
GET /v1/{name=organizations/*/planAssignmentRequests/*}
BatchGetPlanAssignmentRequests Method
BatchGetPlanAssignmentRequests
rpc BatchGetPlanAssignmentRequests(BatchGetPlanAssignmentRequestsRequest) returns (BatchGetPlanAssignmentRequestsResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignmentRequests.batchGet
The equivalent REST API is:
GET /v1/planAssignmentRequests:batchGet
ListPlanAssignmentRequests Method
ListPlanAssignmentRequests
rpc ListPlanAssignmentRequests(ListPlanAssignmentRequestsRequest) returns (ListPlanAssignmentRequestsResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignmentRequests.list
The equivalent REST API is:
GET /v1/{parent=projects/*}/planAssignmentRequests
GET /v1/{parent=organizations/*}/planAssignmentRequests
WatchPlanAssignmentRequest Method
WatchPlanAssignmentRequest
rpc WatchPlanAssignmentRequest(WatchPlanAssignmentRequestRequest) returns (WatchPlanAssignmentRequestResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignmentRequests.watch
The equivalent REST API is:
POST /v1/{name=projects/*/planAssignmentRequests/*}:watch
POST /v1/{name=organizations/*/planAssignmentRequests/*}:watch
WatchPlanAssignmentRequests Method
WatchPlanAssignmentRequests
rpc WatchPlanAssignmentRequests(WatchPlanAssignmentRequestsRequest) returns (WatchPlanAssignmentRequestsResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignmentRequests.watch
The equivalent REST API is:
POST /v1/{parent=projects/*}/planAssignmentRequests:watch
POST /v1/{parent=organizations/*}/planAssignmentRequests:watch
CreatePlanAssignmentRequest Method
CreatePlanAssignmentRequest
rpc CreatePlanAssignmentRequest(CreatePlanAssignmentRequestRequest) returns (PlanAssignmentRequest)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignmentRequests.create
The equivalent REST API is:
POST /v1/{parent=projects/*}/planAssignmentRequests (BODY: plan_assignment_request)
POST /v1/{parent=organizations/*}/planAssignmentRequests
UpdatePlanAssignmentRequest Method
UpdatePlanAssignmentRequest
rpc UpdatePlanAssignmentRequest(UpdatePlanAssignmentRequestRequest) returns (PlanAssignmentRequest)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignmentRequests.update
The equivalent REST API is:
PUT /v1/{plan_assignment_request.name=projects/*/planAssignmentRequests/*} (BODY: plan_assignment_request)
PUT /v1/{plan_assignment_request.name=organizations/*/planAssignmentRequests/*}
DeletePlanAssignmentRequest Method
DeletePlanAssignmentRequest
rpc DeletePlanAssignmentRequest(DeletePlanAssignmentRequestRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignmentRequests.delete
The equivalent REST API is:
DELETE /v1/{name=projects/*/planAssignmentRequests/*}
DELETE /v1/{name=organizations/*/planAssignmentRequests/*}
AcceptPlanAssignment Method
AcceptPlanAssignment
rpc AcceptPlanAssignment(AcceptPlanAssignmentRequest) returns (AcceptPlanAssignmentResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignmentRequests.accept
The equivalent REST API is:
POST /v1/{name=projects/*/planAssignmentRequests/*}:accept
POST /v1/{name=organizations/*/planAssignmentRequests/*}:accept
DeclinePlanAssignment Method
DeclinePlanAssignment
rpc DeclinePlanAssignment(DeclinePlanAssignmentRequest) returns (DeclinePlanAssignmentResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignmentRequests.decline
The equivalent REST API is:
POST /v1/{name=projects/*/planAssignmentRequests/*}:decline
POST /v1/{name=organizations/*/planAssignmentRequests/*}:decline
ListApproverPlanAssignmentRequests Method
ListApproverPlanAssignmentRequests
rpc ListApproverPlanAssignmentRequests(ListApproverPlanAssignmentRequestsRequest) returns (ListPlanAssignmentRequestsResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/approverPlanAssignmentRequests.list
The equivalent REST API is:
GET /v1/planAssignmentRequests:listApprover
PlanAssignmentRequest Messages
Here is the list of PlanAssignmentRequest resource messages:
PlanAssignmentRequest Message
Name |
Type |
Description |
name |
string (name of PlanAssignmentRequest) |
Name of PlanAssignmentRequest When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9] |
metadata |
Meta |
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones). |
request |
PlanAssignmentRequest.RequestType |
Purpose of this request |
service |
string (reference to Service) |
Service associated with this request. |
approver |
string (parent name of AcceptedPlan) |
Approver - it can be org or service in practice, note its always equal to the parent name of AcceptedPlan |
status |
PlanAssignmentRequest.Status |
|
PlanAssignmentRequest.Status Message
Status
PlanAssignmentRequest.RequestType Message
RequestType describes what should change in existing PlanAssignment,
optionally if new one should be created.
PlanAssignmentRequest.RequestType.Assign Message
Assign request requests for new PlanAssignment instance. If there
already is a plan for associated service, then previous record is
overwritten in the scope of the “region”. In other words, this request
can also be used to upgrade/downgrade existing plan. If “region” is
specified, all extensions from existing plan for given region will be
discarded and overwritten from this one. If “region” is not specified,
then
Name |
Type |
Description |
plan |
string (reference to Plan) |
Plan to apply |
extensions |
repeated Allowance |
List of all extensions over basic plan. Extensions without specified region will apply to all regions if value of field “region” in this request is also empty. However, if “region” is specified, then extensions defined here will be applicable for this region only. |
region |
string |
Optional region ID for the plan - if not specified, assigned plan will apply to all regions (default plan for region), BUT it will not override plans for specific region in existing PlanAssignment. |
PlanAssignmentRequest.RequestType.Extend Message
Extend request should be used in order to increase (optionally
decrease) limits from existing plan assignment. Note each addition
can be applied to one or all regions.
Name |
Type |
Description |
assignment |
string (reference to PlanAssignment) |
Reference to existing plan assignment |
additions |
repeated Allowance |
List of limits to merge within existing assignment |
PlanAssignmentRequest.RequestType.Unassign Message
Unassign is used to remove existing PlanAssignment if “region” is empty.
This will always be automatically approved unless limits are in use by
existing resources.
If “region” is specified, then this request will remove region specific
overrides only. Note that this will not be self approved if this would
result in increased value of limits.
Name |
Type |
Description |
assignment |
string (reference to PlanAssignment) |
|
region |
string |
|
GetPlanAssignmentRequestRequest Message
A request message of the GetPlanAssignmentRequest method.
Name |
Type |
Description |
name |
string (name of PlanAssignmentRequest) |
Name of ntt.limits.v1.PlanAssignmentRequest |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetPlanAssignmentRequestsRequest Message
A request message of the BatchGetPlanAssignmentRequests method.
Name |
Type |
Description |
names |
repeated string (name of PlanAssignmentRequest) |
Names of PlanAssignmentRequests |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetPlanAssignmentRequestsResponse Message
A response message of the BatchGetPlanAssignmentRequests method.
ListPlanAssignmentRequestsRequest Message
A request message of the ListPlanAssignmentRequests method.
Name |
Type |
Description |
parent |
string (parent name of PlanAssignmentRequest) |
Parent name of ntt.limits.v1.PlanAssignmentRequest |
page_size |
int32 |
Requested page size. Server may return fewer PlanAssignmentRequests than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of PlanAssignmentRequest) |
A token identifying a page of results the server should return. Typically, this is the value of ListPlanAssignmentRequestsResponse.next_page_token. |
order_by |
string (orderBy of PlanAssignmentRequest) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of PlanAssignmentRequest) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListPlanAssignmentRequestsResponse Message
A response message of the ListPlanAssignmentRequests method.
Name |
Type |
Description |
plan_assignment_requests |
repeated PlanAssignmentRequest |
The list of PlanAssignmentRequests |
prev_page_token |
string (cursor of PlanAssignmentRequest) |
A token to retrieve previous page of results. Pass this value in the ListPlanAssignmentRequestsRequest.page_token. |
next_page_token |
string (cursor of PlanAssignmentRequest) |
A token to retrieve next page of results. Pass this value in the ListPlanAssignmentRequestsRequest.page_token. |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total PlanAssignmentRequests across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
WatchPlanAssignmentRequestRequest Message
A request message of the WatchPlanAssignmentRequest method.
Name |
Type |
Description |
name |
string (name of PlanAssignmentRequest) |
Name of ntt.limits.v1.PlanAssignmentRequest |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchPlanAssignmentRequestResponse Message
A response message of the WatchPlanAssignmentRequest method.
WatchPlanAssignmentRequestsRequest Message
A request message of the WatchPlanAssignmentRequests method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
parent |
string (parent name of PlanAssignmentRequest) |
Parent name of ntt.limits.v1.PlanAssignmentRequest |
page_size |
int32 |
Requested page size. Server may return fewer PlanAssignmentRequests than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of PlanAssignmentRequest) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of PlanAssignmentRequest) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of PlanAssignmentRequest) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to PlanAssignmentRequest that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to PlanAssignmentRequest that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchPlanAssignmentRequestsResponse Message
A response message of the WatchPlanAssignmentRequests method.
Name |
Type |
Description |
plan_assignment_request_changes |
repeated PlanAssignmentRequestChange |
Changes of PlanAssignmentRequests |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All PlanAssignmentRequests will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchPlanAssignmentRequestsResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (PlanAssignmentRequests will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchPlanAssignmentRequestsResponse.PageTokenChange Message
Name |
Type |
Description |
prev_page_token |
string (cursor of PlanAssignmentRequest) |
New token to retrieve previous page of results. |
next_page_token |
string (cursor of PlanAssignmentRequest) |
New token to retrieve next page of results. |
CreatePlanAssignmentRequestRequest Message
A request message of the CreatePlanAssignmentRequest method.
CreatePlanAssignmentRequestRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. |
UpdatePlanAssignmentRequestRequest Message
A request message of the UpdatePlanAssignmentRequest method.
Name |
Type |
Description |
plan_assignment_request |
PlanAssignmentRequest |
PlanAssignmentRequest resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdatePlanAssignmentRequestRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
allow_missing |
bool |
If set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update |
response_mask |
UpdatePlanAssignmentRequestRequest.ResponseMask |
reduce message response size. |
UpdatePlanAssignmentRequestRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
PlanAssignmentRequest |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdatePlanAssignmentRequestRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeletePlanAssignmentRequestRequest Message
A request message of the DeletePlanAssignmentRequest method.
Name |
Type |
Description |
name |
string (name of PlanAssignmentRequest) |
Name of ntt.limits.v1.PlanAssignmentRequest |
AcceptPlanAssignmentRequest Message
Request message for method
[AcceptPlanAssignment][ntt.limits.v1.AcceptPlanAssignment]
Name |
Type |
Description |
name |
string (name of PlanAssignmentRequest) |
name of ntt.limits.v1.PlanAssignmentRequest |
approver |
string (parent name of AcceptedPlan) |
Entity approving plan assignment. It can be left empty if the one approving uses service-level privileges. |
AcceptPlanAssignmentResponse Message
Response message for method
[AcceptPlanAssignment][ntt.limits.v1.AcceptPlanAssignment]
DeclinePlanAssignmentRequest Message
Request message for method
[DeclinePlanAssignment][ntt.limits.v1.DeclinePlanAssignment]
Name |
Type |
Description |
name |
string (name of PlanAssignmentRequest) |
name of ntt.limits.v1.PlanAssignmentRequest |
approver |
string (parent name of AcceptedPlan) |
Entity approving plan assignment. It must match approver in PlanAssignmentRequest. |
reason |
string |
|
DeclinePlanAssignmentResponse Message
Response message for method
[DeclinePlanAssignment][ntt.limits.v1.DeclinePlanAssignment]
Name |
Type |
Description |
none |
none |
none |
ListApproverPlanAssignmentRequestsRequest Message
Request message for method
[ListApproverPlanAssignmentRequests][ntt.limits.v1.ListApproverPlanAssignmentRequests]
Name |
Type |
Description |
approver |
string (parent name of AcceptedPlan) |
Approver of the plan assignment requests |
page_size |
int32 |
Requested page size. Server may return fewer PlanAssignmentRequests than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of PlanAssignmentRequest) |
A token identifying a page of results the server should return. Typically, this is the value of [ListPlanAssignmentRequestsResponse.next_page_token][ntt.limits.v1.ListPlanAssignmentRequestsResponse.next_page_token] |
order_by |
string (orderBy of PlanAssignmentRequest) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of PlanAssignmentRequest) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
PlanAssignmentRequest Enumerations
Here is the list of PlanAssignmentRequest resource enumerations:
PlanAssignmentRequest.Status.Conclusion Enumeration
Name |
Description |
UNDEFINED |
|
PENDING |
|
APPROVED |
|
REJECTED |
|
Limits Service Shared Methods and Messages
Limits Service Shared Messages
Here is the list of Limits service shared messages:
AcceptedPlanChange Message
AcceptedPlanChange is used by Watch notifications Responses to describe
change of single AcceptedPlan One of Added, Modified, Removed
AcceptedPlanChange.Added Message
AcceptedPlan has been added to query view
Name |
Type |
Description |
accepted_plan |
AcceptedPlan |
|
view_index |
int32 |
Integer describing index of added AcceptedPlan in resulting query view. |
AcceptedPlanChange.Current Message
AcceptedPlan has been added or modified in a query view. Version used for
stateless watching
AcceptedPlanChange.Modified Message
AcceptedPlan changed some of it’s fields - contains either full document or
masked change
Name |
Type |
Description |
name |
string (name of AcceptedPlan) |
Name of modified AcceptedPlan |
accepted_plan |
AcceptedPlan |
New version of AcceptedPlan or masked difference, depending on mask_changes instrumentation of issued [WatchAcceptedPlanRequest] or [WatchAcceptedPlansRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified AcceptedPlan. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying AcceptedPlan new index in resulting query view. |
AcceptedPlanChange.Removed Message
Removed is returned when AcceptedPlan is deleted or leaves Query view
Name |
Type |
Description |
name |
string (name of AcceptedPlan) |
|
view_index |
int32 |
Integer specifying removed AcceptedPlan index. Not populated in stateless watch type. |
Allowance Message
Allowance informs how many instances of resource for given type are
permitted.
Name |
Type |
Description |
resource |
string (reference to Resource) |
Reference to resource |
value |
int64 |
Limit or extension for given resource. |
region |
string |
Region ID where allowance applies - empty if for all. |
LimitChange Message
LimitChange is used by Watch notifications Responses to describe change of
single Limit One of Added, Modified, Removed
Name |
Type |
Description |
added |
LimitChange.Added |
Added is returned when watched document is added, either created or enters Query view |
modified |
LimitChange.Modified |
Modified is returned when watched document is modified |
current |
LimitChange.Current |
Current is returned in stateless watch when document enters query view or is modified within. |
removed |
LimitChange.Removed |
Removed is returned when Limit is deleted or leaves Query view |
LimitChange.Added Message
Limit has been added to query view
Name |
Type |
Description |
limit |
Limit |
|
view_index |
int32 |
Integer describing index of added Limit in resulting query view. |
LimitChange.Current Message
Limit has been added or modified in a query view. Version used for
stateless watching
Name |
Type |
Description |
limit |
Limit |
|
LimitChange.Modified Message
Limit changed some of it’s fields - contains either full document or masked
change
Name |
Type |
Description |
name |
string (name of Limit) |
Name of modified Limit |
limit |
Limit |
New version of Limit or masked difference, depending on mask_changes instrumentation of issued [WatchLimitRequest] or [WatchLimitsRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified Limit. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying Limit new index in resulting query view. |
LimitChange.Removed Message
Removed is returned when Limit is deleted or leaves Query view
Name |
Type |
Description |
name |
string (name of Limit) |
|
view_index |
int32 |
Integer specifying removed Limit index. Not populated in stateless watch type. |
LimitPoolChange Message
LimitPoolChange is used by Watch notifications Responses to describe change
of single LimitPool One of Added, Modified, Removed
LimitPoolChange.Added Message
LimitPool has been added to query view
Name |
Type |
Description |
limit_pool |
LimitPool |
|
view_index |
int32 |
Integer describing index of added LimitPool in resulting query view. |
LimitPoolChange.Current Message
LimitPool has been added or modified in a query view. Version used for
stateless watching
LimitPoolChange.Modified Message
LimitPool changed some of it’s fields - contains either full document or
masked change
Name |
Type |
Description |
name |
string (name of LimitPool) |
Name of modified LimitPool |
limit_pool |
LimitPool |
New version of LimitPool or masked difference, depending on mask_changes instrumentation of issued [WatchLimitPoolRequest] or [WatchLimitPoolsRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified LimitPool. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying LimitPool new index in resulting query view. |
LimitPoolChange.Removed Message
Removed is returned when LimitPool is deleted or leaves Query view
Name |
Type |
Description |
name |
string (name of LimitPool) |
|
view_index |
int32 |
Integer specifying removed LimitPool index. Not populated in stateless watch type. |
PlanAssignmentChange Message
PlanAssignmentChange is used by Watch notifications Responses to describe
change of single PlanAssignment One of Added, Modified, Removed
PlanAssignmentChange.Added Message
PlanAssignment has been added to query view
Name |
Type |
Description |
plan_assignment |
PlanAssignment |
|
view_index |
int32 |
Integer describing index of added PlanAssignment in resulting query view. |
PlanAssignmentChange.Current Message
PlanAssignment has been added or modified in a query view. Version used for
stateless watching
PlanAssignmentChange.Modified Message
PlanAssignment changed some of it’s fields - contains either full document
or masked change
Name |
Type |
Description |
name |
string (name of PlanAssignment) |
Name of modified PlanAssignment |
plan_assignment |
PlanAssignment |
New version of PlanAssignment or masked difference, depending on mask_changes instrumentation of issued [WatchPlanAssignmentRequest] or [WatchPlanAssignmentsRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified PlanAssignment. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying PlanAssignment new index in resulting query view. |
PlanAssignmentChange.Removed Message
Removed is returned when PlanAssignment is deleted or leaves Query view
Name |
Type |
Description |
name |
string (name of PlanAssignment) |
|
view_index |
int32 |
Integer specifying removed PlanAssignment index. Not populated in stateless watch type. |
PlanAssignmentRequestChange Message
PlanAssignmentRequestChange is used by Watch notifications Responses to
describe change of single PlanAssignmentRequest One of Added, Modified,
Removed
PlanAssignmentRequestChange.Added Message
PlanAssignmentRequest has been added to query view
Name |
Type |
Description |
plan_assignment_request |
PlanAssignmentRequest |
|
view_index |
int32 |
Integer describing index of added PlanAssignmentRequest in resulting query view. |
PlanAssignmentRequestChange.Current Message
PlanAssignmentRequest has been added or modified in a query view. Version
used for stateless watching
PlanAssignmentRequestChange.Modified Message
PlanAssignmentRequest changed some of it’s fields - contains either full
document or masked change
Name |
Type |
Description |
name |
string (name of PlanAssignmentRequest) |
Name of modified PlanAssignmentRequest |
plan_assignment_request |
PlanAssignmentRequest |
New version of PlanAssignmentRequest or masked difference, depending on mask_changes instrumentation of issued [WatchPlanAssignmentRequestRequest] or [WatchPlanAssignmentRequestsRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified PlanAssignmentRequest. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying PlanAssignmentRequest new index in resulting query view. |
PlanAssignmentRequestChange.Removed Message
Removed is returned when PlanAssignmentRequest is deleted or leaves Query
view
Name |
Type |
Description |
name |
string (name of PlanAssignmentRequest) |
|
view_index |
int32 |
Integer specifying removed PlanAssignmentRequest index. Not populated in stateless watch type. |
PlanChange Message
PlanChange is used by Watch notifications Responses to describe change of
single Plan One of Added, Modified, Removed
Name |
Type |
Description |
added |
PlanChange.Added |
Added is returned when watched document is added, either created or enters Query view |
modified |
PlanChange.Modified |
Modified is returned when watched document is modified |
current |
PlanChange.Current |
Current is returned in stateless watch when document enters query view or is modified within. |
removed |
PlanChange.Removed |
Removed is returned when Plan is deleted or leaves Query view |
PlanChange.Added Message
Plan has been added to query view
Name |
Type |
Description |
plan |
Plan |
|
view_index |
int32 |
Integer describing index of added Plan in resulting query view. |
PlanChange.Current Message
Plan has been added or modified in a query view. Version used for stateless
watching
Name |
Type |
Description |
plan |
Plan |
|
PlanChange.Modified Message
Plan changed some of it’s fields - contains either full document or masked
change
Name |
Type |
Description |
name |
string (name of Plan) |
Name of modified Plan |
plan |
Plan |
New version of Plan or masked difference, depending on mask_changes instrumentation of issued [WatchPlanRequest] or [WatchPlansRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified Plan. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying Plan new index in resulting query view. |
PlanChange.Removed Message
Removed is returned when Plan is deleted or leaves Query view
Name |
Type |
Description |
name |
string (name of Plan) |
|
view_index |
int32 |
Integer specifying removed Plan index. Not populated in stateless watch type. |
RegionalPlanAssignment Message
RegionalPlanAssignment binds region and plan.
Name |
Type |
Description |
plan |
string (reference to Plan) |
Plan for given region |
region |
string |
Region ID for this override |
plan_generation |
int64 |
Applied generation spec of the plan. |
2 -
Understanding the limits.edgelq.com service APIv1alpha2, in proto package ntt.limits.v1alpha2.
Here is the list of resources supported in Limits service APIv1alpha2:
AcceptedPlan Resource
AcceptedPlan shows a plan accepted by assigner (system or organization)
for project, organization and system - with all additional information
like extensions or regional distributions.
It is in relation 1-1 with PlanAssignment, BUT:
- PlanAssignment is read-only and represents information for Assignee.
Name pattern indicates to WHOM plan is assigned.
- AcceptedPlan contains accepted configuration and represents information
for assigner. Name pattern indicates WHO ASSIGNED a plan. It is modifiable,
BUT modifications of accepted plans may result in increased usage of
allowed limit pools - Organization/System cannot accept plans to sub-entities
without limits (however, system is allowed to assign plan to itself without
limits, which makes system admin fully responsible).
Name patterns:
acceptedPlans/{accepted_plan}
organizations/{organization}/acceptedPlans/{accepted_plan}
Parent resources:
This section covers the methods
and messages to interact
with AcceptedPlan resource.
AcceptedPlan Methods
Here is the list of AcceptedPlan resource methods:
GetAcceptedPlan Method
GetAcceptedPlan
rpc GetAcceptedPlan(GetAcceptedPlanRequest) returns (AcceptedPlan)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/acceptedPlans.get
The equivalent REST API is:
GET /v1alpha2/{name=acceptedPlans/*}
GET /v1alpha2/{name=organizations/*/acceptedPlans/*}
BatchGetAcceptedPlans Method
BatchGetAcceptedPlans
rpc BatchGetAcceptedPlans(BatchGetAcceptedPlansRequest) returns (BatchGetAcceptedPlansResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/acceptedPlans.batchGet
The equivalent REST API is:
GET /v1alpha2/acceptedPlans:batchGet
ListAcceptedPlans Method
ListAcceptedPlans
rpc ListAcceptedPlans(ListAcceptedPlansRequest) returns (ListAcceptedPlansResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/acceptedPlans.list
The equivalent REST API is:
GET /v1alpha2/acceptedPlans
GET /v1alpha2/{parent=organizations/*}/acceptedPlans
WatchAcceptedPlan Method
WatchAcceptedPlan
rpc WatchAcceptedPlan(WatchAcceptedPlanRequest) returns (WatchAcceptedPlanResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/acceptedPlans.watch
The equivalent REST API is:
POST /v1alpha2/{name=acceptedPlans/*}:watch
POST /v1alpha2/{name=organizations/*/acceptedPlans/*}:watch
WatchAcceptedPlans Method
WatchAcceptedPlans
rpc WatchAcceptedPlans(WatchAcceptedPlansRequest) returns (WatchAcceptedPlansResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/acceptedPlans.watch
The equivalent REST API is:
POST /v1alpha2/acceptedPlans:watch
POST /v1alpha2/{parent=organizations/*}/acceptedPlans:watch
CreateAcceptedPlan Method
CreateAcceptedPlan
rpc CreateAcceptedPlan(CreateAcceptedPlanRequest) returns (AcceptedPlan)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/acceptedPlans.create
The equivalent REST API is:
POST /v1alpha2/acceptedPlans (BODY: accepted_plan)
POST /v1alpha2/{parent=organizations/*}/acceptedPlans
UpdateAcceptedPlan Method
UpdateAcceptedPlan
rpc UpdateAcceptedPlan(UpdateAcceptedPlanRequest) returns (AcceptedPlan)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/acceptedPlans.update
The equivalent REST API is:
PUT /v1alpha2/{accepted_plan.name=acceptedPlans/*} (BODY: accepted_plan)
PUT /v1alpha2/{accepted_plan.name=organizations/*/acceptedPlans/*}
DeleteAcceptedPlan Method
DeleteAcceptedPlan
rpc DeleteAcceptedPlan(DeleteAcceptedPlanRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/acceptedPlans.delete
The equivalent REST API is:
DELETE /v1alpha2/{name=acceptedPlans/*}
DELETE /v1alpha2/{name=organizations/*/acceptedPlans/*}
AcceptedPlan Messages
Here is the list of AcceptedPlan resource messages:
AcceptedPlan Message
Name |
Type |
Description |
name |
string (name of AcceptedPlan) |
Name of AcceptedPlan When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-zA-Z0-9_.-]{1,128} |
plan |
string (reference to Plan) |
Plan with resource limits |
service |
string (reference to Service) |
Service indicates by plan. |
extensions |
repeated Allowance |
Optional extensions over standard plan |
regional_distributions |
repeated RegionalDistribution |
Distribution of limits by regions. It does not need to be populated by user in Create/Update requests - system automatically distributes limits across regions equally. Returned AcceptedPlan instance from Create/Update will contain this field populated. If user wants to have some specific resource distributed in certain way, they can do it by partially populating this field too. System will distribute automatically only remaining numbers. |
assignee |
AcceptedPlan.Assignee |
Plan assignee |
metadata |
Meta |
Metadata |
AcceptedPlan.Assignee Message
Assignee indicates for whom plan was accepted for.
In case of child project/org deletion, accepted plan will be deleted too,
which will result in return of all limits.
Name |
Type |
Description |
project_assignee |
string (reference to Project) |
Project for whom plan is for. |
organization_assignee |
string (reference to Organization) |
Organization for whom plan is for. |
system_assignee |
bool |
If true, it means plan is for system itself. |
GetAcceptedPlanRequest Message
A request message of the GetAcceptedPlan method.
Name |
Type |
Description |
name |
string (name of AcceptedPlan) |
Name of ntt.limits.v1alpha2.AcceptedPlan |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetAcceptedPlansRequest Message
A request message of the BatchGetAcceptedPlans method.
Name |
Type |
Description |
names |
repeated string (name of AcceptedPlan) |
Names of AcceptedPlans |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetAcceptedPlansResponse Message
A response message of the BatchGetAcceptedPlans method.
Name |
Type |
Description |
accepted_plans |
repeated AcceptedPlan |
found AcceptedPlans |
missing |
repeated string (name of AcceptedPlan) |
list of not found AcceptedPlans |
ListAcceptedPlansRequest Message
A request message of the ListAcceptedPlans method.
Name |
Type |
Description |
parent |
string (parent name of AcceptedPlan) |
Parent name of ntt.limits.v1alpha2.AcceptedPlan |
page_size |
int32 |
Requested page size. Server may return fewer AcceptedPlans than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of AcceptedPlan) |
A token identifying a page of results the server should return. Typically, this is the value of ListAcceptedPlansResponse.next_page_token. |
order_by |
string (orderBy of AcceptedPlan) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of AcceptedPlan) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListAcceptedPlansResponse Message
A response message of the ListAcceptedPlans method.
Name |
Type |
Description |
accepted_plans |
repeated AcceptedPlan |
The list of AcceptedPlans |
prev_page_token |
string (cursor of AcceptedPlan) |
A token to retrieve previous page of results. Pass this value in the ListAcceptedPlansRequest.page_token. |
next_page_token |
string (cursor of AcceptedPlan) |
A token to retrieve next page of results. Pass this value in the ListAcceptedPlansRequest.page_token. |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total AcceptedPlans across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
WatchAcceptedPlanRequest Message
A request message of the WatchAcceptedPlan method.
Name |
Type |
Description |
name |
string (name of AcceptedPlan) |
Name of ntt.limits.v1alpha2.AcceptedPlan |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchAcceptedPlanResponse Message
A response message of the WatchAcceptedPlan method.
WatchAcceptedPlansRequest Message
A request message of the WatchAcceptedPlans method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
parent |
string (parent name of AcceptedPlan) |
Parent name of ntt.limits.v1alpha2.AcceptedPlan |
page_size |
int32 |
Requested page size. Server may return fewer AcceptedPlans than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of AcceptedPlan) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of AcceptedPlan) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of AcceptedPlan) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to AcceptedPlan that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to AcceptedPlan that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchAcceptedPlansResponse Message
A response message of the WatchAcceptedPlans method.
Name |
Type |
Description |
accepted_plan_changes |
repeated AcceptedPlanChange |
Changes of AcceptedPlans |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All AcceptedPlans will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchAcceptedPlansResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (AcceptedPlans will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchAcceptedPlansResponse.PageTokenChange Message
Name |
Type |
Description |
prev_page_token |
string (cursor of AcceptedPlan) |
New token to retrieve previous page of results. |
next_page_token |
string (cursor of AcceptedPlan) |
New token to retrieve next page of results. |
CreateAcceptedPlanRequest Message
A request message of the CreateAcceptedPlan method.
CreateAcceptedPlanRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. |
UpdateAcceptedPlanRequest Message
A request message of the UpdateAcceptedPlan method.
Name |
Type |
Description |
accepted_plan |
AcceptedPlan |
AcceptedPlan resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdateAcceptedPlanRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
allow_missing |
bool |
If set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update |
response_mask |
UpdateAcceptedPlanRequest.ResponseMask |
reduce message response size. |
UpdateAcceptedPlanRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
AcceptedPlan |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdateAcceptedPlanRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeleteAcceptedPlanRequest Message
A request message of the DeleteAcceptedPlan method.
Name |
Type |
Description |
name |
string (name of AcceptedPlan) |
Name of ntt.limits.v1alpha2.AcceptedPlan |
Limit Resource
Limit resource represents usage/limit of specific resource
in specific project and region - however instances of those
resources are managed by primary region of project. This
ensures consistency and allows modification of project limits
in one database transaction.
Limit instances cannot be created or deleted. They cannot be
also be modified (there are only some state fields controlled
by system). Limits are created/modified along with
PlanAssignment instances.
Name patterns:
projects/{project}/limits/{limit}
Parent resources:
This section covers the methods
and messages to interact
with Limit resource.
Limit Methods
Here is the list of Limit resource methods:
GetLimit Method
GetLimit
rpc GetLimit(GetLimitRequest) returns (Limit)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/limits.get
The equivalent REST API is:
GET /v1alpha2/{name=projects/*/limits/*}
BatchGetLimits Method
BatchGetLimits
rpc BatchGetLimits(BatchGetLimitsRequest) returns (BatchGetLimitsResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/limits.batchGet
The equivalent REST API is:
GET /v1alpha2/limits:batchGet
ListLimits Method
ListLimits
rpc ListLimits(ListLimitsRequest) returns (ListLimitsResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/limits.list
The equivalent REST API is:
GET /v1alpha2/{parent=projects/*}/limits
WatchLimit Method
WatchLimit
rpc WatchLimit(WatchLimitRequest) returns (WatchLimitResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/limits.watch
The equivalent REST API is:
POST /v1alpha2/{name=projects/*/limits/*}:watch
WatchLimits Method
WatchLimits
rpc WatchLimits(WatchLimitsRequest) returns (WatchLimitsResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/limits.watch
The equivalent REST API is:
POST /v1alpha2/{parent=projects/*}/limits:watch
UpdateLimit Method
UpdateLimit
rpc UpdateLimit(UpdateLimitRequest) returns (Limit)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/limits.update
The equivalent REST API is:
PUT /v1alpha2/{limit.name=projects/*/limits/*} (BODY: limit)
DeleteLimit Method
DeleteLimit
rpc DeleteLimit(DeleteLimitRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/limits.delete
The equivalent REST API is:
DELETE /v1alpha2/{name=projects/*/limits/*}
MigrateLimitSource Method
MigrateLimitSource
rpc MigrateLimitSource(MigrateLimitSourceRequest) returns (Limit)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/limits.migrate
The equivalent REST API is:
POST /v1alpha2/{name=projects/*/limits/*}:migrate
Limit Messages
Here is the list of Limit resource messages:
Limit Message
Name |
Type |
Description |
name |
string (name of Limit) |
Name of Limit, it has following format: projects/{project}/limits/{regionId}/{resourceType} |
service |
string (reference to Service) |
Referenced service |
resource |
string (reference to Resource) |
Referenced resource type |
region |
string |
Region ID to which this limit applies. This may be different compared to default project region, because projects themselves can be multi-regional. |
configured_limit |
int64 |
Configured limit - it is always in sync with limits predicted by PlanAssignment instances. |
active_limit |
int64 |
Active limit - it is always equal to configured limit with exceptions: * If configured limit has just changed, then active limit will for a moment contain old value before synchronization. * If it turns out that usage increased in the very same moment when configured limit decreased, then active limit will hold old value indicating problem. It is important to note that, because projects may be multi-regional, limits are tracked by their FINAL region (See region field). State fields (active limit and usage) are synced asynchronously. From user perspective this field can be hidden if in line with configured limit. |
usage |
int64 |
Number of resources currently in existence. |
source |
string (reference to LimitPool) |
LimitPool source that gave birth to this Limit. Any change in configured/active value in current Limit increases/decreases reserved field in source LimitPool. |
metadata |
Meta |
Metadata |
GetLimitRequest Message
A request message of the GetLimit method.
Name |
Type |
Description |
name |
string (name of Limit) |
Name of ntt.limits.v1alpha2.Limit |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetLimitsRequest Message
A request message of the BatchGetLimits method.
Name |
Type |
Description |
names |
repeated string (name of Limit) |
Names of Limits |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetLimitsResponse Message
A response message of the BatchGetLimits method.
Name |
Type |
Description |
limits |
repeated Limit |
found Limits |
missing |
repeated string (name of Limit) |
list of not found Limits |
ListLimitsRequest Message
A request message of the ListLimits method.
Name |
Type |
Description |
parent |
string (parent name of Limit) |
Parent name of ntt.limits.v1alpha2.Limit |
page_size |
int32 |
Requested page size. Server may return fewer Limits than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of Limit) |
A token identifying a page of results the server should return. Typically, this is the value of ListLimitsResponse.next_page_token. |
order_by |
string (orderBy of Limit) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of Limit) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListLimitsResponse Message
A response message of the ListLimits method.
Name |
Type |
Description |
limits |
repeated Limit |
The list of Limits |
prev_page_token |
string (cursor of Limit) |
A token to retrieve previous page of results. Pass this value in the ListLimitsRequest.page_token. |
next_page_token |
string (cursor of Limit) |
A token to retrieve next page of results. Pass this value in the ListLimitsRequest.page_token. |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total Limits across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
WatchLimitRequest Message
A request message of the WatchLimit method.
Name |
Type |
Description |
name |
string (name of Limit) |
Name of ntt.limits.v1alpha2.Limit |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchLimitResponse Message
A response message of the WatchLimit method.
WatchLimitsRequest Message
A request message of the WatchLimits method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
parent |
string (parent name of Limit) |
Parent name of ntt.limits.v1alpha2.Limit |
page_size |
int32 |
Requested page size. Server may return fewer Limits than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of Limit) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of Limit) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of Limit) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Limit that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Limit that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchLimitsResponse Message
A response message of the WatchLimits method.
Name |
Type |
Description |
limit_changes |
repeated LimitChange |
Changes of Limits |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Limits will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchLimitsResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Limits will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchLimitsResponse.PageTokenChange Message
Name |
Type |
Description |
prev_page_token |
string (cursor of Limit) |
New token to retrieve previous page of results. |
next_page_token |
string (cursor of Limit) |
New token to retrieve next page of results. |
UpdateLimitRequest Message
A request message of the UpdateLimit method.
Name |
Type |
Description |
limit |
Limit |
Limit resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdateLimitRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
response_mask |
UpdateLimitRequest.ResponseMask |
Optional masking applied to response object to reduce message response size. |
UpdateLimitRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
Limit |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdateLimitRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeleteLimitRequest Message
A request message of the DeleteLimit method.
Name |
Type |
Description |
name |
string (name of Limit) |
Name of ntt.limits.v1alpha2.Limit |
MigrateLimitSourceRequest Message
Request message for method
[MigrateLimitSource][ntt.limits.v1alpha2.MigrateLimitSource]
Name |
Type |
Description |
name |
string (name of Limit) |
name of ntt.limits.v1alpha2.Limit |
LimitPool Resource
LimitPool represents a pool from which next LimitPool
or final Limit instances are allocated from. LimitPool
can either belong to a system (first pool, without parent) or
organization (which got pool from system or parent organization).
Size of child limit or limit pools must not exceed parent
limit pool.
LimitPool is in a way similar to Limit - it has scope and
associated resource but:
- LimitPool is non-final object. It cannot be used to
allocate resources directly. It need child Limit first. So
field with values in LimitPool are configured size, active
size and reserved. Fields in Limit are configured limit,
active limit and usage - they need different interpretation.
- LimitPool is not regional, because it may feed limits in
other regions. Limit has extra tracker in their final region
for state synchronization purpose.
Because LimitPool instances within one scope (system, organization)
are managed by primary region of that scope, changes in them
are done with only single transaction.
LimitPool instances cannot be created or deleted. They cannot be
also be modified (there are only some state fields controlled
by system). LimitPools are created/modified along with
PlanAssignment instances.
Name patterns:
limitPools/{limit_pool}
organizations/{organization}/limitPools/{limit_pool}
Parent resources:
This section covers the methods
and messages to interact
with LimitPool resource.
LimitPool Methods
Here is the list of LimitPool resource methods:
GetLimitPool Method
GetLimitPool
rpc GetLimitPool(GetLimitPoolRequest) returns (LimitPool)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/limitPools.get
The equivalent REST API is:
GET /v1alpha2/{name=limitPools/*}
GET /v1alpha2/{name=organizations/*/limitPools/*}
BatchGetLimitPools Method
BatchGetLimitPools
rpc BatchGetLimitPools(BatchGetLimitPoolsRequest) returns (BatchGetLimitPoolsResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/limitPools.batchGet
The equivalent REST API is:
GET /v1alpha2/limitPools:batchGet
ListLimitPools Method
ListLimitPools
rpc ListLimitPools(ListLimitPoolsRequest) returns (ListLimitPoolsResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/limitPools.list
The equivalent REST API is:
GET /v1alpha2/{parent=organizations/*}/limitPools
WatchLimitPool Method
WatchLimitPool
rpc WatchLimitPool(WatchLimitPoolRequest) returns (WatchLimitPoolResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/limitPools.watch
The equivalent REST API is:
POST /v1alpha2/{name=limitPools/*}:watch
POST /v1alpha2/{name=organizations/*/limitPools/*}:watch
WatchLimitPools Method
WatchLimitPools
rpc WatchLimitPools(WatchLimitPoolsRequest) returns (WatchLimitPoolsResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/limitPools.watch
The equivalent REST API is:
POST /v1alpha2/limitPools:watch
POST /v1alpha2/{parent=organizations/*}/limitPools:watch
UpdateLimitPool Method
UpdateLimitPool
rpc UpdateLimitPool(UpdateLimitPoolRequest) returns (LimitPool)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/limitPools.update
The equivalent REST API is:
PUT /v1alpha2/{limit_pool.name=limitPools/*} (BODY: limit_pool)
PUT /v1alpha2/{limit_pool.name=organizations/*/limitPools/*}
DeleteLimitPool Method
DeleteLimitPool
rpc DeleteLimitPool(DeleteLimitPoolRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/limitPools.delete
The equivalent REST API is:
DELETE /v1alpha2/{name=limitPools/*}
DELETE /v1alpha2/{name=organizations/*/limitPools/*}
MigrateLimitPoolSource Method
MigrateLimitPoolSource
rpc MigrateLimitPoolSource(MigrateLimitPoolSourceRequest) returns (LimitPool)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/limitPools.migrate
The equivalent REST API is:
POST /v1alpha2/{name=limitPools/*}:migrate
POST /v1alpha2/{name=organizations/*/limitPools/*}:migrate
LimitPool Messages
Here is the list of LimitPool resource messages:
LimitPool Message
Name |
Type |
Description |
name |
string (name of LimitPool) |
Name of LimitPool |
service |
string (reference to Service) |
Referenced service |
resource |
string (reference to Resource) |
Referenced resource type |
configured_size |
int64 |
Configured size of pool according to PlanAssignment instances belonging to same scope (system or organization). |
active_size |
int64 |
Active pool size. It will be normally equal to configured size. However, if configured size goes down below reserved value, then active size will be equal to that “reserved”. It will also prevent parent LimitPool (if any) from getting limit value back. |
reserved |
int64 |
Configured OR Active Size of all child Limit and LimitPool instances - whichever is bigger. |
source |
string (reference to LimitPool) |
LimitPool source that gave birth to this LimitPool. Any change in configured/active value in current LimitPool increases/decreases reserved field in source LimitPool. |
metadata |
Meta |
Metadata |
GetLimitPoolRequest Message
A request message of the GetLimitPool method.
Name |
Type |
Description |
name |
string (name of LimitPool) |
Name of ntt.limits.v1alpha2.LimitPool |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetLimitPoolsRequest Message
A request message of the BatchGetLimitPools method.
Name |
Type |
Description |
names |
repeated string (name of LimitPool) |
Names of LimitPools |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetLimitPoolsResponse Message
A response message of the BatchGetLimitPools method.
Name |
Type |
Description |
limit_pools |
repeated LimitPool |
found LimitPools |
missing |
repeated string (name of LimitPool) |
list of not found LimitPools |
ListLimitPoolsRequest Message
A request message of the ListLimitPools method.
Name |
Type |
Description |
parent |
string (parent name of LimitPool) |
Parent name of ntt.limits.v1alpha2.LimitPool |
page_size |
int32 |
Requested page size. Server may return fewer LimitPools than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of LimitPool) |
A token identifying a page of results the server should return. Typically, this is the value of ListLimitPoolsResponse.next_page_token. |
order_by |
string (orderBy of LimitPool) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of LimitPool) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListLimitPoolsResponse Message
A response message of the ListLimitPools method.
Name |
Type |
Description |
limit_pools |
repeated LimitPool |
The list of LimitPools |
prev_page_token |
string (cursor of LimitPool) |
A token to retrieve previous page of results. Pass this value in the ListLimitPoolsRequest.page_token. |
next_page_token |
string (cursor of LimitPool) |
A token to retrieve next page of results. Pass this value in the ListLimitPoolsRequest.page_token. |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total LimitPools across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
WatchLimitPoolRequest Message
A request message of the WatchLimitPool method.
Name |
Type |
Description |
name |
string (name of LimitPool) |
Name of ntt.limits.v1alpha2.LimitPool |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchLimitPoolResponse Message
A response message of the WatchLimitPool method.
WatchLimitPoolsRequest Message
A request message of the WatchLimitPools method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
parent |
string (parent name of LimitPool) |
Parent name of ntt.limits.v1alpha2.LimitPool |
page_size |
int32 |
Requested page size. Server may return fewer LimitPools than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of LimitPool) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of LimitPool) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of LimitPool) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to LimitPool that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to LimitPool that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchLimitPoolsResponse Message
A response message of the WatchLimitPools method.
Name |
Type |
Description |
limit_pool_changes |
repeated LimitPoolChange |
Changes of LimitPools |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All LimitPools will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchLimitPoolsResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (LimitPools will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchLimitPoolsResponse.PageTokenChange Message
Name |
Type |
Description |
prev_page_token |
string (cursor of LimitPool) |
New token to retrieve previous page of results. |
next_page_token |
string (cursor of LimitPool) |
New token to retrieve next page of results. |
UpdateLimitPoolRequest Message
A request message of the UpdateLimitPool method.
Name |
Type |
Description |
limit_pool |
LimitPool |
LimitPool resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdateLimitPoolRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
response_mask |
UpdateLimitPoolRequest.ResponseMask |
Optional masking applied to response object to reduce message response size. |
UpdateLimitPoolRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
LimitPool |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdateLimitPoolRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeleteLimitPoolRequest Message
A request message of the DeleteLimitPool method.
Name |
Type |
Description |
name |
string (name of LimitPool) |
Name of ntt.limits.v1alpha2.LimitPool |
MigrateLimitPoolSourceRequest Message
Request message for method
[MigrateLimitPoolSource][ntt.limits.v1alpha2.MigrateLimitPoolSource]
Name |
Type |
Description |
name |
string (name of LimitPool) |
reference of ntt.limits.v1alpha2.LimitPool |
Plan Resource
Plan is a bundle with set of limits for various resources.
Those resources should be mostly from service plan references,
but it can also include resources from imported services too.
Name patterns:
This section covers the methods
and messages to interact
with Plan resource.
Plan Methods
Here is the list of Plan resource methods:
GetPlan Method
GetPlan
rpc GetPlan(GetPlanRequest) returns (Plan)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/plans.get
The equivalent REST API is:
GET /v1alpha2/{name=plans/*}
BatchGetPlans Method
BatchGetPlans
rpc BatchGetPlans(BatchGetPlansRequest) returns (BatchGetPlansResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/plans.batchGet
The equivalent REST API is:
GET /v1alpha2/plans:batchGet
ListPlans Method
ListPlans
rpc ListPlans(ListPlansRequest) returns (ListPlansResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/plans.list
The equivalent REST API is:
WatchPlan Method
WatchPlan
rpc WatchPlan(WatchPlanRequest) returns (WatchPlanResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/plans.watch
The equivalent REST API is:
POST /v1alpha2/{name=plans/*}:watch
WatchPlans Method
WatchPlans
rpc WatchPlans(WatchPlansRequest) returns (WatchPlansResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/plans.watch
The equivalent REST API is:
POST /v1alpha2/plans:watch
CreatePlan Method
CreatePlan
rpc CreatePlan(CreatePlanRequest) returns (Plan)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/plans.create
The equivalent REST API is:
POST /v1alpha2/plans (BODY: plan)
UpdatePlan Method
UpdatePlan
rpc UpdatePlan(UpdatePlanRequest) returns (Plan)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/plans.update
The equivalent REST API is:
PUT /v1alpha2/{plan.name=plans/*} (BODY: plan)
DeletePlan Method
DeletePlan
rpc DeletePlan(DeletePlanRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/plans.delete
The equivalent REST API is:
DELETE /v1alpha2/{name=plans/*}
Plan Messages
Here is the list of Plan resource messages:
Plan Message
Name |
Type |
Description |
name |
string (name of Plan) |
Name of Plan When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-zA-Z0-9_.-]{1,128} |
display_name |
string |
|
service |
string (reference to Service) |
Primary service to which this plan applies |
resource_limits |
repeated Allowance |
List of limits per each resource. Resources may belong to different services (dependant services) |
plan_level |
Plan.PlanLevel |
Plan level |
business_tier |
BusinessTier |
Business tier |
metadata |
Meta |
Metadata |
GetPlanRequest Message
A request message of the GetPlan method.
Name |
Type |
Description |
name |
string (name of Plan) |
Name of ntt.limits.v1alpha2.Plan |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetPlansRequest Message
A request message of the BatchGetPlans method.
Name |
Type |
Description |
names |
repeated string (name of Plan) |
Names of Plans |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetPlansResponse Message
A response message of the BatchGetPlans method.
Name |
Type |
Description |
plans |
repeated Plan |
found Plans |
missing |
repeated string (name of Plan) |
list of not found Plans |
ListPlansRequest Message
A request message of the ListPlans method.
Name |
Type |
Description |
page_size |
int32 |
Requested page size. Server may return fewer Plans than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of Plan) |
A token identifying a page of results the server should return. Typically, this is the value of ListPlansResponse.next_page_token. |
order_by |
string (orderBy of Plan) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of Plan) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListPlansResponse Message
A response message of the ListPlans method.
Name |
Type |
Description |
plans |
repeated Plan |
The list of Plans |
prev_page_token |
string (cursor of Plan) |
A token to retrieve previous page of results. Pass this value in the ListPlansRequest.page_token. |
next_page_token |
string (cursor of Plan) |
A token to retrieve next page of results. Pass this value in the ListPlansRequest.page_token. |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total Plans across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
WatchPlanRequest Message
A request message of the WatchPlan method.
Name |
Type |
Description |
name |
string (name of Plan) |
Name of ntt.limits.v1alpha2.Plan |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchPlanResponse Message
A response message of the WatchPlan method.
WatchPlansRequest Message
A request message of the WatchPlans method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
page_size |
int32 |
Requested page size. Server may return fewer Plans than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of Plan) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of Plan) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of Plan) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Plan that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Plan that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchPlansResponse Message
A response message of the WatchPlans method.
Name |
Type |
Description |
plan_changes |
repeated PlanChange |
Changes of Plans |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Plans will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchPlansResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Plans will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchPlansResponse.PageTokenChange Message
Name |
Type |
Description |
prev_page_token |
string (cursor of Plan) |
New token to retrieve previous page of results. |
next_page_token |
string (cursor of Plan) |
New token to retrieve next page of results. |
CreatePlanRequest Message
A request message of the CreatePlan method.
Name |
Type |
Description |
plan |
Plan |
Plan resource body |
response_mask |
CreatePlanRequest.ResponseMask |
Optional masking applied to response object to reduce message response size. |
CreatePlanRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. |
UpdatePlanRequest Message
A request message of the UpdatePlan method.
Name |
Type |
Description |
plan |
Plan |
Plan resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdatePlanRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
allow_missing |
bool |
If set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update |
response_mask |
UpdatePlanRequest.ResponseMask |
reduce message response size. |
UpdatePlanRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
Plan |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdatePlanRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeletePlanRequest Message
A request message of the DeletePlan method.
Name |
Type |
Description |
name |
string (name of Plan) |
Name of ntt.limits.v1alpha2.Plan |
Plan Enumerations
Here is the list of Plan resource enumerations:
Plan.PlanLevel Enumeration
PlanLevel defines entity level for whom plan can be assigned
Name |
Description |
UNDEFINED |
|
SYSTEM |
|
ORGANIZATION |
|
PROJECT |
|
PlanAssignment Resource
PlanAssignment binds plan (with optional customizations) with specific
entity (assignee - either system, organization or project).
Plan assignments (sum of them) are used to compute configured size of
limit pools (system and organizations) AND limits (projects).
They are not modifiable - limits are passed from system to projects,
so each PlanAssignment must be agreed by higher instance (parent organization
or system). System recognizes acceptance by existence of AcceptedPlan
instances - it synchronizes PlanAssignment instances with them.
Name patterns:
planAssignments/{plan_assignment}
projects/{project}/planAssignments/{plan_assignment}
organizations/{organization}/planAssignments/{plan_assignment}
Parent resources:
This section covers the methods
and messages to interact
with PlanAssignment resource.
PlanAssignment Methods
Here is the list of PlanAssignment resource methods:
GetPlanAssignment Method
GetPlanAssignment
rpc GetPlanAssignment(GetPlanAssignmentRequest) returns (PlanAssignment)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignments.get
The equivalent REST API is:
GET /v1alpha2/{name=planAssignments/*}
GET /v1alpha2/{name=projects/*/planAssignments/*}
GET /v1alpha2/{name=organizations/*/planAssignments/*}
BatchGetPlanAssignments Method
BatchGetPlanAssignments
rpc BatchGetPlanAssignments(BatchGetPlanAssignmentsRequest) returns (BatchGetPlanAssignmentsResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignments.batchGet
The equivalent REST API is:
GET /v1alpha2/planAssignments:batchGet
ListPlanAssignments Method
ListPlanAssignments
rpc ListPlanAssignments(ListPlanAssignmentsRequest) returns (ListPlanAssignmentsResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignments.list
The equivalent REST API is:
GET /v1alpha2/planAssignments
GET /v1alpha2/{parent=projects/*}/planAssignments
GET /v1alpha2/{parent=organizations/*}/planAssignments
WatchPlanAssignment Method
WatchPlanAssignment
rpc WatchPlanAssignment(WatchPlanAssignmentRequest) returns (WatchPlanAssignmentResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignments.watch
The equivalent REST API is:
POST /v1alpha2/{name=planAssignments/*}:watch
POST /v1alpha2/{name=projects/*/planAssignments/*}:watch
POST /v1alpha2/{name=organizations/*/planAssignments/*}:watch
WatchPlanAssignments Method
WatchPlanAssignments
rpc WatchPlanAssignments(WatchPlanAssignmentsRequest) returns (WatchPlanAssignmentsResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignments.watch
The equivalent REST API is:
POST /v1alpha2/planAssignments:watch
POST /v1alpha2/{parent=projects/*}/planAssignments:watch
POST /v1alpha2/{parent=organizations/*}/planAssignments:watch
CreatePlanAssignment Method
CreatePlanAssignment
rpc CreatePlanAssignment(CreatePlanAssignmentRequest) returns (PlanAssignment)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignments.create
The equivalent REST API is:
POST /v1alpha2/planAssignments (BODY: plan_assignment)
POST /v1alpha2/{parent=projects/*}/planAssignments
POST /v1alpha2/{parent=organizations/*}/planAssignments
UpdatePlanAssignment Method
UpdatePlanAssignment
rpc UpdatePlanAssignment(UpdatePlanAssignmentRequest) returns (PlanAssignment)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignments.update
The equivalent REST API is:
PUT /v1alpha2/{plan_assignment.name=planAssignments/*} (BODY: plan_assignment)
PUT /v1alpha2/{plan_assignment.name=projects/*/planAssignments/*}
PUT /v1alpha2/{plan_assignment.name=organizations/*/planAssignments/*}
DeletePlanAssignment Method
DeletePlanAssignment
rpc DeletePlanAssignment(DeletePlanAssignmentRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignments.delete
The equivalent REST API is:
DELETE /v1alpha2/{name=planAssignments/*}
DELETE /v1alpha2/{name=projects/*/planAssignments/*}
DELETE /v1alpha2/{name=organizations/*/planAssignments/*}
MigratePlanAssignment Method
MigratePlanAssignment
rpc MigratePlanAssignment(MigratePlanAssignmentRequest) returns (PlanAssignment)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignments.migrate
The equivalent REST API is:
PUT /v1alpha2/{plan_assignment.name=planAssignments/*}:migrate (BODY: plan_assignment)
PUT /v1alpha2/{plan_assignment.name=projects/*/planAssignments/*}:migrate
PUT /v1alpha2/{plan_assignment.name=organizations/*/planAssignments/*}:migrate
PlanAssignment Messages
Here is the list of PlanAssignment resource messages:
PlanAssignment Message
Name |
Type |
Description |
name |
string (name of PlanAssignment) |
Name of PlanAssignment When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-zA-Z0-9_.-]{1,128} |
plan |
string (reference to Plan) |
Plan with basic set of limits |
service |
string (reference to Service) |
Service associated with plan |
extensions |
repeated Allowance |
Additional extensions (but may be negative) on top of regular plan. |
regional_distributions |
repeated RegionalDistribution |
Regional distributions across regions. This field makes sense only for projects, because limit pools are regionless. |
source |
string (reference to AcceptedPlan) |
Source with which this PlanAssignment is synchronized. |
metadata |
Meta |
Metadata |
GetPlanAssignmentRequest Message
A request message of the GetPlanAssignment method.
Name |
Type |
Description |
name |
string (name of PlanAssignment) |
Name of ntt.limits.v1alpha2.PlanAssignment |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetPlanAssignmentsRequest Message
A request message of the BatchGetPlanAssignments method.
Name |
Type |
Description |
names |
repeated string (name of PlanAssignment) |
Names of PlanAssignments |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetPlanAssignmentsResponse Message
A response message of the BatchGetPlanAssignments method.
Name |
Type |
Description |
plan_assignments |
repeated PlanAssignment |
found PlanAssignments |
missing |
repeated string (name of PlanAssignment) |
list of not found PlanAssignments |
ListPlanAssignmentsRequest Message
A request message of the ListPlanAssignments method.
Name |
Type |
Description |
parent |
string (parent name of PlanAssignment) |
Parent name of ntt.limits.v1alpha2.PlanAssignment |
page_size |
int32 |
Requested page size. Server may return fewer PlanAssignments than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of PlanAssignment) |
A token identifying a page of results the server should return. Typically, this is the value of ListPlanAssignmentsResponse.next_page_token. |
order_by |
string (orderBy of PlanAssignment) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of PlanAssignment) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListPlanAssignmentsResponse Message
A response message of the ListPlanAssignments method.
Name |
Type |
Description |
plan_assignments |
repeated PlanAssignment |
The list of PlanAssignments |
prev_page_token |
string (cursor of PlanAssignment) |
A token to retrieve previous page of results. Pass this value in the ListPlanAssignmentsRequest.page_token. |
next_page_token |
string (cursor of PlanAssignment) |
A token to retrieve next page of results. Pass this value in the ListPlanAssignmentsRequest.page_token. |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total PlanAssignments across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
WatchPlanAssignmentRequest Message
A request message of the WatchPlanAssignment method.
Name |
Type |
Description |
name |
string (name of PlanAssignment) |
Name of ntt.limits.v1alpha2.PlanAssignment |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchPlanAssignmentResponse Message
A response message of the WatchPlanAssignment method.
WatchPlanAssignmentsRequest Message
A request message of the WatchPlanAssignments method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
parent |
string (parent name of PlanAssignment) |
Parent name of ntt.limits.v1alpha2.PlanAssignment |
page_size |
int32 |
Requested page size. Server may return fewer PlanAssignments than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of PlanAssignment) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of PlanAssignment) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of PlanAssignment) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to PlanAssignment that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to PlanAssignment that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchPlanAssignmentsResponse Message
A response message of the WatchPlanAssignments method.
Name |
Type |
Description |
plan_assignment_changes |
repeated PlanAssignmentChange |
Changes of PlanAssignments |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All PlanAssignments will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchPlanAssignmentsResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (PlanAssignments will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchPlanAssignmentsResponse.PageTokenChange Message
Name |
Type |
Description |
prev_page_token |
string (cursor of PlanAssignment) |
New token to retrieve previous page of results. |
next_page_token |
string (cursor of PlanAssignment) |
New token to retrieve next page of results. |
CreatePlanAssignmentRequest Message
A request message of the CreatePlanAssignment method.
CreatePlanAssignmentRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. |
UpdatePlanAssignmentRequest Message
A request message of the UpdatePlanAssignment method.
Name |
Type |
Description |
plan_assignment |
PlanAssignment |
PlanAssignment resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdatePlanAssignmentRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
allow_missing |
bool |
If set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update |
response_mask |
UpdatePlanAssignmentRequest.ResponseMask |
reduce message response size. |
UpdatePlanAssignmentRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
PlanAssignment |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdatePlanAssignmentRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeletePlanAssignmentRequest Message
A request message of the DeletePlanAssignment method.
Name |
Type |
Description |
name |
string (name of PlanAssignment) |
Name of ntt.limits.v1alpha2.PlanAssignment |
MigratePlanAssignmentRequest Message
Request message for method
[MigratePlanAssignment][ntt.limits.v1alpha2.MigratePlanAssignment]
Name |
Type |
Description |
plan_assignment |
PlanAssignment |
PlanAssignment resource body |
PlanAssignmentRequest Resource
PlanAssignmentRequest gives administrator a way to modify their
PlanAssignment instances in a safe way, with respect to parent
organization/system limits.
PlanAssignmentRequest can be used to:
- Assign/Reassign new plan for specific service
- Extend specific resource limits for existing PlanAssignment
- Redistribute limits across regions (available for project PlanAssignments)
- Unassign existing PlanAssignment
Certain requests may be automatically approved by system (for example, if
they would result in lowering limits), other require higher administrator
consent. User creating request should check status field after operation
to check if request was automatically approved.
Name patterns:
projects/{project}/planAssignmentRequests/{plan_assignment_request}
organizations/{organization}/planAssignmentRequests/{plan_assignment_request}
Parent resources:
This section covers the methods
and messages to interact
with PlanAssignmentRequest resource.
PlanAssignmentRequest Methods
Here is the list of PlanAssignmentRequest resource methods:
GetPlanAssignmentRequest Method
GetPlanAssignmentRequest
rpc GetPlanAssignmentRequest(GetPlanAssignmentRequestRequest) returns (PlanAssignmentRequest)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignmentRequests.get
The equivalent REST API is:
GET /v1alpha2/{name=projects/*/planAssignmentRequests/*}
GET /v1alpha2/{name=organizations/*/planAssignmentRequests/*}
BatchGetPlanAssignmentRequests Method
BatchGetPlanAssignmentRequests
rpc BatchGetPlanAssignmentRequests(BatchGetPlanAssignmentRequestsRequest) returns (BatchGetPlanAssignmentRequestsResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignmentRequests.batchGet
The equivalent REST API is:
GET /v1alpha2/planAssignmentRequests:batchGet
ListPlanAssignmentRequests Method
ListPlanAssignmentRequests
rpc ListPlanAssignmentRequests(ListPlanAssignmentRequestsRequest) returns (ListPlanAssignmentRequestsResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignmentRequests.list
The equivalent REST API is:
GET /v1alpha2/{parent=projects/*}/planAssignmentRequests
GET /v1alpha2/{parent=organizations/*}/planAssignmentRequests
WatchPlanAssignmentRequest Method
WatchPlanAssignmentRequest
rpc WatchPlanAssignmentRequest(WatchPlanAssignmentRequestRequest) returns (WatchPlanAssignmentRequestResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignmentRequests.watch
The equivalent REST API is:
POST /v1alpha2/{name=projects/*/planAssignmentRequests/*}:watch
POST /v1alpha2/{name=organizations/*/planAssignmentRequests/*}:watch
WatchPlanAssignmentRequests Method
WatchPlanAssignmentRequests
rpc WatchPlanAssignmentRequests(WatchPlanAssignmentRequestsRequest) returns (WatchPlanAssignmentRequestsResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignmentRequests.watch
The equivalent REST API is:
POST /v1alpha2/{parent=projects/*}/planAssignmentRequests:watch
POST /v1alpha2/{parent=organizations/*}/planAssignmentRequests:watch
CreatePlanAssignmentRequest Method
CreatePlanAssignmentRequest
rpc CreatePlanAssignmentRequest(CreatePlanAssignmentRequestRequest) returns (PlanAssignmentRequest)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignmentRequests.create
The equivalent REST API is:
POST /v1alpha2/{parent=projects/*}/planAssignmentRequests (BODY: plan_assignment_request)
POST /v1alpha2/{parent=organizations/*}/planAssignmentRequests
UpdatePlanAssignmentRequest Method
UpdatePlanAssignmentRequest
rpc UpdatePlanAssignmentRequest(UpdatePlanAssignmentRequestRequest) returns (PlanAssignmentRequest)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignmentRequests.update
The equivalent REST API is:
PUT /v1alpha2/{plan_assignment_request.name=projects/*/planAssignmentRequests/*} (BODY: plan_assignment_request)
PUT /v1alpha2/{plan_assignment_request.name=organizations/*/planAssignmentRequests/*}
DeletePlanAssignmentRequest Method
DeletePlanAssignmentRequest
rpc DeletePlanAssignmentRequest(DeletePlanAssignmentRequestRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignmentRequests.delete
The equivalent REST API is:
DELETE /v1alpha2/{name=projects/*/planAssignmentRequests/*}
DELETE /v1alpha2/{name=organizations/*/planAssignmentRequests/*}
AcceptPlanAssignment Method
AcceptPlanAssignment
rpc AcceptPlanAssignment(AcceptPlanAssignmentRequest) returns (AcceptPlanAssignmentResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignmentRequests.accept
The equivalent REST API is:
POST /v1alpha2/{name=projects/*/planAssignmentRequests/*}:accept
POST /v1alpha2/{name=organizations/*/planAssignmentRequests/*}:accept
DeclinePlanAssignment Method
DeclinePlanAssignment
rpc DeclinePlanAssignment(DeclinePlanAssignmentRequest) returns (DeclinePlanAssignmentResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/planAssignmentRequests.decline
The equivalent REST API is:
POST /v1alpha2/{name=projects/*/planAssignmentRequests/*}:decline
POST /v1alpha2/{name=organizations/*/planAssignmentRequests/*}:decline
ListApproverPlanAssignmentRequests Method
ListApproverPlanAssignmentRequests
rpc ListApproverPlanAssignmentRequests(ListApproverPlanAssignmentRequestsRequest) returns (ListPlanAssignmentRequestsResponse)
with the following messages:
Required Permissions:
- services/limits.edgelq.com/permissions/approverPlanAssignmentRequests.list
The equivalent REST API is:
GET /v1alpha2/planAssignmentRequests:listApprover
PlanAssignmentRequest Messages
Here is the list of PlanAssignmentRequest resource messages:
PlanAssignmentRequest Message
Name |
Type |
Description |
name |
string (name of PlanAssignmentRequest) |
Name of PlanAssignmentRequest When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9-]{0,28}[a-z0-9] |
request |
PlanAssignmentRequest.RequestType |
Purpose of this request |
service |
string (reference to Service) |
Service associated with this request. |
approver |
string (reference to Organization) |
Approver |
status |
PlanAssignmentRequest.Status |
|
metadata |
Meta |
Metadata |
PlanAssignmentRequest.Status Message
Status
PlanAssignmentRequest.RequestType Message
RequestType describes what should change in existing PlanAssignment,
optionally if new one should be created.
PlanAssignmentRequest.RequestType.Assign Message
Assign request requests for new PlanAssignment instance. If there
already is a plan for same service, then previous record is overwritten.
In other words, this request can also be used to upgrade/downgrade
existing plan.
Name |
Type |
Description |
plan |
string (reference to Plan) |
Plan to apply |
extensions |
repeated Allowance |
List of all extensions over basic plan |
regional_distributions |
repeated RegionalDistribution |
Optional list of distributions across regions. This field can only be used for project plans only. It may be provided fully or partially by user - system will automatically distribute remaining limits equally across all regions. |
PlanAssignmentRequest.RequestType.Extend Message
Extend request should be used in order to increase (optionally
decrease) limits from existing plan assignment.
Name |
Type |
Description |
assignment |
string (reference to PlanAssignment) |
Reference to existing plan assignment |
additions |
repeated Allowance |
List of limits to merge within existing assignment |
regional_distributions |
repeated RegionalDistribution |
Distributions of NEW (only!) limits across regions. It does not allow for redistribution of existing limits before. It is optional, but can be provided only for project plans. May be provided fully or partially, system will distribute remaining limits on its own. |
PlanAssignmentRequest.RequestType.Redistribute Message
Redistribute request is used to move existing limits across
regions. It cannot change total values.
Name |
Type |
Description |
assignment |
string (reference to PlanAssignment) |
Reference to existing assignment |
regional_distributions |
repeated RegionalDistribution |
List of regional distributions. It should contain only those regions where limits are moved from/to. |
PlanAssignmentRequest.RequestType.Unassign Message
Unassign is used to remove existing PlanAssignment. This will
always be automatically approved unless limits are in use by
existing resources.
GetPlanAssignmentRequestRequest Message
A request message of the GetPlanAssignmentRequest method.
Name |
Type |
Description |
name |
string (name of PlanAssignmentRequest) |
Name of ntt.limits.v1alpha2.PlanAssignmentRequest |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetPlanAssignmentRequestsRequest Message
A request message of the BatchGetPlanAssignmentRequests method.
Name |
Type |
Description |
names |
repeated string (name of PlanAssignmentRequest) |
Names of PlanAssignmentRequests |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetPlanAssignmentRequestsResponse Message
A response message of the BatchGetPlanAssignmentRequests method.
ListPlanAssignmentRequestsRequest Message
A request message of the ListPlanAssignmentRequests method.
Name |
Type |
Description |
parent |
string (parent name of PlanAssignmentRequest) |
Parent name of ntt.limits.v1alpha2.PlanAssignmentRequest |
page_size |
int32 |
Requested page size. Server may return fewer PlanAssignmentRequests than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of PlanAssignmentRequest) |
A token identifying a page of results the server should return. Typically, this is the value of ListPlanAssignmentRequestsResponse.next_page_token. |
order_by |
string (orderBy of PlanAssignmentRequest) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of PlanAssignmentRequest) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListPlanAssignmentRequestsResponse Message
A response message of the ListPlanAssignmentRequests method.
Name |
Type |
Description |
plan_assignment_requests |
repeated PlanAssignmentRequest |
The list of PlanAssignmentRequests |
prev_page_token |
string (cursor of PlanAssignmentRequest) |
A token to retrieve previous page of results. Pass this value in the ListPlanAssignmentRequestsRequest.page_token. |
next_page_token |
string (cursor of PlanAssignmentRequest) |
A token to retrieve next page of results. Pass this value in the ListPlanAssignmentRequestsRequest.page_token. |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total PlanAssignmentRequests across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
WatchPlanAssignmentRequestRequest Message
A request message of the WatchPlanAssignmentRequest method.
Name |
Type |
Description |
name |
string (name of PlanAssignmentRequest) |
Name of ntt.limits.v1alpha2.PlanAssignmentRequest |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchPlanAssignmentRequestResponse Message
A response message of the WatchPlanAssignmentRequest method.
WatchPlanAssignmentRequestsRequest Message
A request message of the WatchPlanAssignmentRequests method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
parent |
string (parent name of PlanAssignmentRequest) |
Parent name of ntt.limits.v1alpha2.PlanAssignmentRequest |
page_size |
int32 |
Requested page size. Server may return fewer PlanAssignmentRequests than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of PlanAssignmentRequest) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of PlanAssignmentRequest) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of PlanAssignmentRequest) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to PlanAssignmentRequest that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to PlanAssignmentRequest that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchPlanAssignmentRequestsResponse Message
A response message of the WatchPlanAssignmentRequests method.
Name |
Type |
Description |
plan_assignment_request_changes |
repeated PlanAssignmentRequestChange |
Changes of PlanAssignmentRequests |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All PlanAssignmentRequests will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchPlanAssignmentRequestsResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (PlanAssignmentRequests will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchPlanAssignmentRequestsResponse.PageTokenChange Message
Name |
Type |
Description |
prev_page_token |
string (cursor of PlanAssignmentRequest) |
New token to retrieve previous page of results. |
next_page_token |
string (cursor of PlanAssignmentRequest) |
New token to retrieve next page of results. |
CreatePlanAssignmentRequestRequest Message
A request message of the CreatePlanAssignmentRequest method.
CreatePlanAssignmentRequestRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. |
UpdatePlanAssignmentRequestRequest Message
A request message of the UpdatePlanAssignmentRequest method.
Name |
Type |
Description |
plan_assignment_request |
PlanAssignmentRequest |
PlanAssignmentRequest resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdatePlanAssignmentRequestRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
allow_missing |
bool |
If set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update |
response_mask |
UpdatePlanAssignmentRequestRequest.ResponseMask |
reduce message response size. |
UpdatePlanAssignmentRequestRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
PlanAssignmentRequest |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdatePlanAssignmentRequestRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeletePlanAssignmentRequestRequest Message
A request message of the DeletePlanAssignmentRequest method.
Name |
Type |
Description |
name |
string (name of PlanAssignmentRequest) |
Name of ntt.limits.v1alpha2.PlanAssignmentRequest |
AcceptPlanAssignmentRequest Message
Request message for method
[AcceptPlanAssignment][ntt.limits.v1alpha2.AcceptPlanAssignment]
Name |
Type |
Description |
name |
string (name of PlanAssignmentRequest) |
name of ntt.limits.v1alpha2.PlanAssignmentRequest |
approver |
string (name of Organization) |
Entity approving plan assignment. It can be left empty if the one approving uses system-level privileges. |
AcceptPlanAssignmentResponse Message
Response message for method
[AcceptAssignment][ntt.limits.v1alpha2.AcceptAssignment]
DeclinePlanAssignmentRequest Message
Request message for method
[DeclineAssignment][ntt.limits.v1alpha2.DeclineAssignment]
Name |
Type |
Description |
name |
string (name of PlanAssignmentRequest) |
name of ntt.limits.v1alpha2.AssignmentRequest |
approver |
string (name of Organization) |
Entity approving plan assignment. It must match approver in PlanAssignmentRequest. |
reason |
string |
|
DeclinePlanAssignmentResponse Message
Response message for method
[DeclinePlanAssignment][ntt.limits.v1alpha2.DeclinePlanAssignment]
Name |
Type |
Description |
none |
none |
none |
ListApproverPlanAssignmentRequestsRequest Message
Request message for method
[ListApproverPlanAssignmentRequests][ntt.limits.v1alpha2.ListApproverPlanAssignmentRequests]
Name |
Type |
Description |
approver |
string (name of Organization) |
Approver of the plan assignment requests |
page_size |
int32 |
Requested page size. Server may return fewer PlanAssignmentRequests than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of PlanAssignmentRequest) |
A token identifying a page of results the server should return. Typically, this is the value of [ListPlanAssignmentRequestsResponse.next_page_token][ntt.limits.v1alpha2.ListPlanAssignmentRequestsResponse.next_page_token] |
order_by |
string (orderBy of PlanAssignmentRequest) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of PlanAssignmentRequest) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
PlanAssignmentRequest Enumerations
Here is the list of PlanAssignmentRequest resource enumerations:
PlanAssignmentRequest.Status.Conclusion Enumeration
Name |
Description |
UNDEFINED |
|
PENDING |
|
APPROVED |
|
REJECTED |
|
Limits Service Shared Methods and Messages
Limits Service Shared Messages
Here is the list of Limits service shared messages:
AcceptedPlanChange Message
AcceptedPlanChange is used by Watch notifications Responses to describe
change of single AcceptedPlan One of Added, Modified, Removed
AcceptedPlanChange.Added Message
AcceptedPlan has been added to query view
Name |
Type |
Description |
accepted_plan |
AcceptedPlan |
|
view_index |
int32 |
Integer describing index of added AcceptedPlan in resulting query view. |
AcceptedPlanChange.Current Message
AcceptedPlan has been added or modified in a query view. Version used for
stateless watching
AcceptedPlanChange.Modified Message
AcceptedPlan changed some of it’s fields - contains either full document or
masked change
Name |
Type |
Description |
name |
string (name of AcceptedPlan) |
Name of modified AcceptedPlan |
accepted_plan |
AcceptedPlan |
New version of AcceptedPlan or masked difference, depending on mask_changes instrumentation of issued [WatchAcceptedPlanRequest] or [WatchAcceptedPlansRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified AcceptedPlan. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying AcceptedPlan new index in resulting query view. |
AcceptedPlanChange.Removed Message
Removed is returned when AcceptedPlan is deleted or leaves Query view
Name |
Type |
Description |
name |
string (name of AcceptedPlan) |
|
view_index |
int32 |
Integer specifying removed AcceptedPlan index. Not populated in stateless watch type. |
Allowance Message
Allowance informs how many instances of resource for given type are
permitted.
Name |
Type |
Description |
resource |
string (reference to Resource) |
Reference to resource |
value |
int64 |
Limit or extension for given resource. |
LimitChange Message
LimitChange is used by Watch notifications Responses to describe change of
single Limit One of Added, Modified, Removed
Name |
Type |
Description |
added |
LimitChange.Added |
Added is returned when watched document is added, either created or enters Query view |
modified |
LimitChange.Modified |
Modified is returned when watched document is modified |
current |
LimitChange.Current |
Current is returned in stateless watch when document enters query view or is modified within. |
removed |
LimitChange.Removed |
Removed is returned when Limit is deleted or leaves Query view |
LimitChange.Added Message
Limit has been added to query view
Name |
Type |
Description |
limit |
Limit |
|
view_index |
int32 |
Integer describing index of added Limit in resulting query view. |
LimitChange.Current Message
Limit has been added or modified in a query view. Version used for
stateless watching
Name |
Type |
Description |
limit |
Limit |
|
LimitChange.Modified Message
Limit changed some of it’s fields - contains either full document or masked
change
Name |
Type |
Description |
name |
string (name of Limit) |
Name of modified Limit |
limit |
Limit |
New version of Limit or masked difference, depending on mask_changes instrumentation of issued [WatchLimitRequest] or [WatchLimitsRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified Limit. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying Limit new index in resulting query view. |
LimitChange.Removed Message
Removed is returned when Limit is deleted or leaves Query view
Name |
Type |
Description |
name |
string (name of Limit) |
|
view_index |
int32 |
Integer specifying removed Limit index. Not populated in stateless watch type. |
LimitPoolChange Message
LimitPoolChange is used by Watch notifications Responses to describe change
of single LimitPool One of Added, Modified, Removed
LimitPoolChange.Added Message
LimitPool has been added to query view
Name |
Type |
Description |
limit_pool |
LimitPool |
|
view_index |
int32 |
Integer describing index of added LimitPool in resulting query view. |
LimitPoolChange.Current Message
LimitPool has been added or modified in a query view. Version used for
stateless watching
LimitPoolChange.Modified Message
LimitPool changed some of it’s fields - contains either full document or
masked change
Name |
Type |
Description |
name |
string (name of LimitPool) |
Name of modified LimitPool |
limit_pool |
LimitPool |
New version of LimitPool or masked difference, depending on mask_changes instrumentation of issued [WatchLimitPoolRequest] or [WatchLimitPoolsRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified LimitPool. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying LimitPool new index in resulting query view. |
LimitPoolChange.Removed Message
Removed is returned when LimitPool is deleted or leaves Query view
Name |
Type |
Description |
name |
string (name of LimitPool) |
|
view_index |
int32 |
Integer specifying removed LimitPool index. Not populated in stateless watch type. |
PlanAssignmentChange Message
PlanAssignmentChange is used by Watch notifications Responses to describe
change of single PlanAssignment One of Added, Modified, Removed
PlanAssignmentChange.Added Message
PlanAssignment has been added to query view
Name |
Type |
Description |
plan_assignment |
PlanAssignment |
|
view_index |
int32 |
Integer describing index of added PlanAssignment in resulting query view. |
PlanAssignmentChange.Current Message
PlanAssignment has been added or modified in a query view. Version used for
stateless watching
PlanAssignmentChange.Modified Message
PlanAssignment changed some of it’s fields - contains either full document
or masked change
Name |
Type |
Description |
name |
string (name of PlanAssignment) |
Name of modified PlanAssignment |
plan_assignment |
PlanAssignment |
New version of PlanAssignment or masked difference, depending on mask_changes instrumentation of issued [WatchPlanAssignmentRequest] or [WatchPlanAssignmentsRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified PlanAssignment. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying PlanAssignment new index in resulting query view. |
PlanAssignmentChange.Removed Message
Removed is returned when PlanAssignment is deleted or leaves Query view
Name |
Type |
Description |
name |
string (name of PlanAssignment) |
|
view_index |
int32 |
Integer specifying removed PlanAssignment index. Not populated in stateless watch type. |
PlanAssignmentRequestChange Message
PlanAssignmentRequestChange is used by Watch notifications Responses to
describe change of single PlanAssignmentRequest One of Added, Modified,
Removed
PlanAssignmentRequestChange.Added Message
PlanAssignmentRequest has been added to query view
Name |
Type |
Description |
plan_assignment_request |
PlanAssignmentRequest |
|
view_index |
int32 |
Integer describing index of added PlanAssignmentRequest in resulting query view. |
PlanAssignmentRequestChange.Current Message
PlanAssignmentRequest has been added or modified in a query view. Version
used for stateless watching
PlanAssignmentRequestChange.Modified Message
PlanAssignmentRequest changed some of it’s fields - contains either full
document or masked change
Name |
Type |
Description |
name |
string (name of PlanAssignmentRequest) |
Name of modified PlanAssignmentRequest |
plan_assignment_request |
PlanAssignmentRequest |
New version of PlanAssignmentRequest or masked difference, depending on mask_changes instrumentation of issued [WatchPlanAssignmentRequestRequest] or [WatchPlanAssignmentRequestsRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified PlanAssignmentRequest. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying PlanAssignmentRequest new index in resulting query view. |
PlanAssignmentRequestChange.Removed Message
Removed is returned when PlanAssignmentRequest is deleted or leaves Query
view
Name |
Type |
Description |
name |
string (name of PlanAssignmentRequest) |
|
view_index |
int32 |
Integer specifying removed PlanAssignmentRequest index. Not populated in stateless watch type. |
PlanChange Message
PlanChange is used by Watch notifications Responses to describe change of
single Plan One of Added, Modified, Removed
Name |
Type |
Description |
added |
PlanChange.Added |
Added is returned when watched document is added, either created or enters Query view |
modified |
PlanChange.Modified |
Modified is returned when watched document is modified |
current |
PlanChange.Current |
Current is returned in stateless watch when document enters query view or is modified within. |
removed |
PlanChange.Removed |
Removed is returned when Plan is deleted or leaves Query view |
PlanChange.Added Message
Plan has been added to query view
Name |
Type |
Description |
plan |
Plan |
|
view_index |
int32 |
Integer describing index of added Plan in resulting query view. |
PlanChange.Current Message
Plan has been added or modified in a query view. Version used for stateless
watching
Name |
Type |
Description |
plan |
Plan |
|
PlanChange.Modified Message
Plan changed some of it’s fields - contains either full document or masked
change
Name |
Type |
Description |
name |
string (name of Plan) |
Name of modified Plan |
plan |
Plan |
New version of Plan or masked difference, depending on mask_changes instrumentation of issued [WatchPlanRequest] or [WatchPlansRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified Plan. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying Plan new index in resulting query view. |
PlanChange.Removed Message
Removed is returned when Plan is deleted or leaves Query view
Name |
Type |
Description |
name |
string (name of Plan) |
|
view_index |
int32 |
Integer specifying removed Plan index. Not populated in stateless watch type. |
RegionalDistribution Message
RegionalDistribution shows distribution of certain resource allowances
across regions.
Name |
Type |
Description |
resource |
string (reference to Resource) |
Reference to resource |
limits_by_region |
map<string, int64> |
Limit per region. |