Understanding the limits.edgelq.com service APIv1alpha2, in proto package ntt.limits.v1alpha2.

Service limits.edgelq.com in version v1alpha2, 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.

Name Type Description
change AcceptedPlanChange

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.

Name Type Description
parent string (parent name of AcceptedPlan) Parent name of ntt.limits.v1alpha2.AcceptedPlan
accepted_plan AcceptedPlan AcceptedPlan resource body
response_mask CreateAcceptedPlanRequest.ResponseMask Optional masking applied to response object to reduce message response size.

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.

Name Type Description
change LimitChange

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/limitPools 
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.

Name Type Description
change LimitPoolChange

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:

  • plans/{plan}

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:

GET /v1alpha2/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 /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.

Name Type Description
change PlanChange

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.

Name Type Description
change PlanAssignmentChange

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.

Name Type Description
parent string (parent name of PlanAssignment) Parent name of ntt.limits.v1alpha2.PlanAssignment
plan_assignment PlanAssignment PlanAssignment resource body
response_mask CreatePlanAssignmentRequest.ResponseMask Optional masking applied to response object to reduce message response size.

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

Name Type Description
conclusion PlanAssignmentRequest.Status.Conclusion Conclusion
reason string Optional message with reason

PlanAssignmentRequest.RequestType Message

RequestType describes what should change in existing PlanAssignment, optionally if new one should be created.

Name Type Description
assign PlanAssignmentRequest.RequestType.Assign Assign request
extend PlanAssignmentRequest.RequestType.Extend Extend request
redistribute PlanAssignmentRequest.RequestType.Redistribute Redistribute request
unassign PlanAssignmentRequest.RequestType.Unassign Unassign request

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.

Name Type Description
assignment string (reference to PlanAssignment)

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.

Name Type Description
plan_assignment_requests repeated PlanAssignmentRequest found PlanAssignmentRequests
missing repeated string (name of PlanAssignmentRequest) list of not found PlanAssignmentRequests

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.

Name Type Description
change PlanAssignmentRequestChange

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.

Name Type Description
parent string (parent name of PlanAssignmentRequest) Parent name of ntt.limits.v1alpha2.PlanAssignmentRequest
plan_assignment_request PlanAssignmentRequest PlanAssignmentRequest resource body
response_mask CreatePlanAssignmentRequestRequest.ResponseMask Optional masking applied to response object to reduce message response size.

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]

Name Type Description
accepted_plan AcceptedPlan

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

Name Type Description
added AcceptedPlanChange.Added Added is returned when watched document is added, either created or enters Query view
modified AcceptedPlanChange.Modified Modified is returned when watched document is modified
current AcceptedPlanChange.Current Current is returned in stateless watch when document enters query view or is modified within.
removed AcceptedPlanChange.Removed Removed is returned when AcceptedPlan is deleted or leaves Query view

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

Name Type Description
accepted_plan AcceptedPlan

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

Name Type Description
added LimitPoolChange.Added Added is returned when watched document is added, either created or enters Query view
modified LimitPoolChange.Modified Modified is returned when watched document is modified
current LimitPoolChange.Current Current is returned in stateless watch when document enters query view or is modified within.
removed LimitPoolChange.Removed Removed is returned when LimitPool is deleted or leaves Query view

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

Name Type Description
limit_pool LimitPool

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

Name Type Description
added PlanAssignmentChange.Added Added is returned when watched document is added, either created or enters Query view
modified PlanAssignmentChange.Modified Modified is returned when watched document is modified
current PlanAssignmentChange.Current Current is returned in stateless watch when document enters query view or is modified within.
removed PlanAssignmentChange.Removed Removed is returned when PlanAssignment is deleted or leaves Query view

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

Name Type Description
plan_assignment PlanAssignment

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

Name Type Description
added PlanAssignmentRequestChange.Added Added is returned when watched document is added, either created or enters Query view
modified PlanAssignmentRequestChange.Modified Modified is returned when watched document is modified
current PlanAssignmentRequestChange.Current Current is returned in stateless watch when document enters query view or is modified within.
removed PlanAssignmentRequestChange.Removed Removed is returned when PlanAssignmentRequest is deleted or leaves Query view

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

Name Type Description
plan_assignment_request PlanAssignmentRequest

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.