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

NameTypeDescription
namestring (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}
planstring (reference to Plan)Plan with resource limits
servicestring (reference to Service)Service indicates by plan.
extensionsrepeated AllowanceOptional extensions over standard plan
regional_distributionsrepeated RegionalDistributionDistribution 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.
assigneeAcceptedPlan.AssigneePlan assignee
metadataMetaMetadata

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.

NameTypeDescription
project_assigneestring (reference to Project)Project for whom plan is for.
organization_assigneestring (reference to Organization)Organization for whom plan is for.
system_assigneeboolIf true, it means plan is for system itself.

GetAcceptedPlanRequest Message

A request message of the GetAcceptedPlan method.

NameTypeDescription
namestring (name of AcceptedPlan)Name of ntt.limits.v1alpha2.AcceptedPlan
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
namesrepeated string (name of AcceptedPlan)Names of AcceptedPlans
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
accepted_plansrepeated AcceptedPlanfound AcceptedPlans
missingrepeated string (name of AcceptedPlan)list of not found AcceptedPlans

ListAcceptedPlansRequest Message

A request message of the ListAcceptedPlans method.

NameTypeDescription
parentstring (parent name of AcceptedPlan)Parent name of ntt.limits.v1alpha2.AcceptedPlan
page_sizeint32Requested page size. Server may return fewer AcceptedPlans than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (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_bystring (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”
filterstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates 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.

NameTypeDescription
accepted_plansrepeated AcceptedPlanThe list of AcceptedPlans
prev_page_tokenstring (cursor of AcceptedPlan)A token to retrieve previous page of results. Pass this value in the ListAcceptedPlansRequest.page_token.
next_page_tokenstring (cursor of AcceptedPlan)A token to retrieve next page of results. Pass this value in the ListAcceptedPlansRequest.page_token.
current_offsetint32Current 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_countint32Number 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.

NameTypeDescription
namestring (name of AcceptedPlan)Name of ntt.limits.v1alpha2.AcceptedPlan
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
changeAcceptedPlanChange

WatchAcceptedPlansRequest Message

A request message of the WatchAcceptedPlans method.

NameTypeDescription
typeWatchTypeType 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.
parentstring (parent name of AcceptedPlan)Parent name of ntt.limits.v1alpha2.AcceptedPlan
page_sizeint32Requested 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_tokenstring (cursor of AcceptedPlan)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of AcceptedPlan)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint 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.
filterstring (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.FieldMaskA 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.
viewViewView 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_sizeint32Maximum 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.

NameTypeDescription
accepted_plan_changesrepeated AcceptedPlanChangeChanges of AcceptedPlans
is_currentboolIf 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_changeWatchAcceptedPlansResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken 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_sizeint64Server 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_resetboolIn 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_resetboolIn 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

NameTypeDescription
prev_page_tokenstring (cursor of AcceptedPlan)New token to retrieve previous page of results.
next_page_tokenstring (cursor of AcceptedPlan)New token to retrieve next page of results.

CreateAcceptedPlanRequest Message

A request message of the CreateAcceptedPlan method.

NameTypeDescription
parentstring (parent name of AcceptedPlan)Parent name of ntt.limits.v1alpha2.AcceptedPlan
accepted_planAcceptedPlanAcceptedPlan resource body
response_maskCreateAcceptedPlanRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateAcceptedPlanRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateAcceptedPlanRequest Message

A request message of the UpdateAcceptedPlan method.

NameTypeDescription
accepted_planAcceptedPlanAcceptedPlan resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateAcceptedPlanRequest.CASConditional 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_missingboolIf 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_maskUpdateAcceptedPlanRequest.ResponseMaskreduce 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.

NameTypeDescription
conditional_stateAcceptedPlanConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateAcceptedPlanRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf 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_onlyboolInclude 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.FieldMaskIf 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.

NameTypeDescription
namestring (name of AcceptedPlan)Name of ntt.limits.v1alpha2.AcceptedPlan
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

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

NameTypeDescription
namestring (name of Limit)Name of Limit, it has following format: projects/{project}/limits/{regionId}/{resourceType}
servicestring (reference to Service)Referenced service
resourcestring (reference to Resource)Referenced resource type
regionstringRegion ID to which this limit applies. This may be different compared to default project region, because projects themselves can be multi-regional.
configured_limitint64Configured limit - it is always in sync with limits predicted by PlanAssignment instances.
active_limitint64Active 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.
usageint64Number of resources currently in existence.
sourcestring (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.
metadataMetaMetadata

GetLimitRequest Message

A request message of the GetLimit method.

NameTypeDescription
namestring (name of Limit)Name of ntt.limits.v1alpha2.Limit
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
namesrepeated string (name of Limit)Names of Limits
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
limitsrepeated Limitfound Limits
missingrepeated string (name of Limit)list of not found Limits

ListLimitsRequest Message

A request message of the ListLimits method.

NameTypeDescription
parentstring (parent name of Limit)Parent name of ntt.limits.v1alpha2.Limit
page_sizeint32Requested page size. Server may return fewer Limits than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (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_bystring (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”
filterstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates 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.

NameTypeDescription
limitsrepeated LimitThe list of Limits
prev_page_tokenstring (cursor of Limit)A token to retrieve previous page of results. Pass this value in the ListLimitsRequest.page_token.
next_page_tokenstring (cursor of Limit)A token to retrieve next page of results. Pass this value in the ListLimitsRequest.page_token.
current_offsetint32Current 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_countint32Number 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.

NameTypeDescription
namestring (name of Limit)Name of ntt.limits.v1alpha2.Limit
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
changeLimitChange

WatchLimitsRequest Message

A request message of the WatchLimits method.

NameTypeDescription
typeWatchTypeType 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.
parentstring (parent name of Limit)Parent name of ntt.limits.v1alpha2.Limit
page_sizeint32Requested 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_tokenstring (cursor of Limit)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of Limit)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint 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.
filterstring (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.FieldMaskA 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.
viewViewView 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_sizeint32Maximum 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.

NameTypeDescription
limit_changesrepeated LimitChangeChanges of Limits
is_currentboolIf 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_changeWatchLimitsResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken 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_sizeint64Server 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_resetboolIn 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_resetboolIn 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

NameTypeDescription
prev_page_tokenstring (cursor of Limit)New token to retrieve previous page of results.
next_page_tokenstring (cursor of Limit)New token to retrieve next page of results.

UpdateLimitRequest Message

A request message of the UpdateLimit method.

NameTypeDescription
limitLimitLimit resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateLimitRequest.CASConditional 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_maskUpdateLimitRequest.ResponseMaskOptional 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.

NameTypeDescription
conditional_stateLimitConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateLimitRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf 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_onlyboolInclude 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.FieldMaskIf 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.

NameTypeDescription
namestring (name of Limit)Name of ntt.limits.v1alpha2.Limit
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

MigrateLimitSourceRequest Message

Request message for method [MigrateLimitSource][ntt.limits.v1alpha2.MigrateLimitSource]

NameTypeDescription
namestring (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

NameTypeDescription
namestring (name of LimitPool)Name of LimitPool
servicestring (reference to Service)Referenced service
resourcestring (reference to Resource)Referenced resource type
configured_sizeint64Configured size of pool according to PlanAssignment instances belonging to same scope (system or organization).
active_sizeint64Active 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.
reservedint64Configured OR Active Size of all child Limit and LimitPool instances - whichever is bigger.
sourcestring (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.
metadataMetaMetadata

GetLimitPoolRequest Message

A request message of the GetLimitPool method.

NameTypeDescription
namestring (name of LimitPool)Name of ntt.limits.v1alpha2.LimitPool
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
namesrepeated string (name of LimitPool)Names of LimitPools
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
limit_poolsrepeated LimitPoolfound LimitPools
missingrepeated string (name of LimitPool)list of not found LimitPools

ListLimitPoolsRequest Message

A request message of the ListLimitPools method.

NameTypeDescription
parentstring (parent name of LimitPool)Parent name of ntt.limits.v1alpha2.LimitPool
page_sizeint32Requested page size. Server may return fewer LimitPools than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (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_bystring (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”
filterstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates 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.

NameTypeDescription
limit_poolsrepeated LimitPoolThe list of LimitPools
prev_page_tokenstring (cursor of LimitPool)A token to retrieve previous page of results. Pass this value in the ListLimitPoolsRequest.page_token.
next_page_tokenstring (cursor of LimitPool)A token to retrieve next page of results. Pass this value in the ListLimitPoolsRequest.page_token.
current_offsetint32Current 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_countint32Number 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.

NameTypeDescription
namestring (name of LimitPool)Name of ntt.limits.v1alpha2.LimitPool
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
changeLimitPoolChange

WatchLimitPoolsRequest Message

A request message of the WatchLimitPools method.

NameTypeDescription
typeWatchTypeType 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.
parentstring (parent name of LimitPool)Parent name of ntt.limits.v1alpha2.LimitPool
page_sizeint32Requested 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_tokenstring (cursor of LimitPool)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of LimitPool)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint 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.
filterstring (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.FieldMaskA 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.
viewViewView 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_sizeint32Maximum 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.

NameTypeDescription
limit_pool_changesrepeated LimitPoolChangeChanges of LimitPools
is_currentboolIf 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_changeWatchLimitPoolsResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken 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_sizeint64Server 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_resetboolIn 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_resetboolIn 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

NameTypeDescription
prev_page_tokenstring (cursor of LimitPool)New token to retrieve previous page of results.
next_page_tokenstring (cursor of LimitPool)New token to retrieve next page of results.

UpdateLimitPoolRequest Message

A request message of the UpdateLimitPool method.

NameTypeDescription
limit_poolLimitPoolLimitPool resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateLimitPoolRequest.CASConditional 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_maskUpdateLimitPoolRequest.ResponseMaskOptional 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.

NameTypeDescription
conditional_stateLimitPoolConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateLimitPoolRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf 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_onlyboolInclude 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.FieldMaskIf 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.

NameTypeDescription
namestring (name of LimitPool)Name of ntt.limits.v1alpha2.LimitPool
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

MigrateLimitPoolSourceRequest Message

Request message for method [MigrateLimitPoolSource][ntt.limits.v1alpha2.MigrateLimitPoolSource]

NameTypeDescription
namestring (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

NameTypeDescription
namestring (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_namestring
servicestring (reference to Service)Primary service to which this plan applies
resource_limitsrepeated AllowanceList of limits per each resource. Resources may belong to different services (dependant services)
plan_levelPlan.PlanLevelPlan level
business_tierBusinessTierBusiness tier
metadataMetaMetadata

GetPlanRequest Message

A request message of the GetPlan method.

NameTypeDescription
namestring (name of Plan)Name of ntt.limits.v1alpha2.Plan
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
namesrepeated string (name of Plan)Names of Plans
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
plansrepeated Planfound Plans
missingrepeated string (name of Plan)list of not found Plans

ListPlansRequest Message

A request message of the ListPlans method.

NameTypeDescription
page_sizeint32Requested page size. Server may return fewer Plans than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (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_bystring (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”
filterstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates 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.

NameTypeDescription
plansrepeated PlanThe list of Plans
prev_page_tokenstring (cursor of Plan)A token to retrieve previous page of results. Pass this value in the ListPlansRequest.page_token.
next_page_tokenstring (cursor of Plan)A token to retrieve next page of results. Pass this value in the ListPlansRequest.page_token.
current_offsetint32Current 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_countint32Number 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.

NameTypeDescription
namestring (name of Plan)Name of ntt.limits.v1alpha2.Plan
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
changePlanChange

WatchPlansRequest Message

A request message of the WatchPlans method.

NameTypeDescription
typeWatchTypeType 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_sizeint32Requested 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_tokenstring (cursor of Plan)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of Plan)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint 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.
filterstring (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.FieldMaskA 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.
viewViewView 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_sizeint32Maximum 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.

NameTypeDescription
plan_changesrepeated PlanChangeChanges of Plans
is_currentboolIf 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_changeWatchPlansResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken 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_sizeint64Server 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_resetboolIn 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_resetboolIn 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

NameTypeDescription
prev_page_tokenstring (cursor of Plan)New token to retrieve previous page of results.
next_page_tokenstring (cursor of Plan)New token to retrieve next page of results.

CreatePlanRequest Message

A request message of the CreatePlan method.

NameTypeDescription
planPlanPlan resource body
response_maskCreatePlanRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreatePlanRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdatePlanRequest Message

A request message of the UpdatePlan method.

NameTypeDescription
planPlanPlan resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdatePlanRequest.CASConditional 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_missingboolIf 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_maskUpdatePlanRequest.ResponseMaskreduce 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.

NameTypeDescription
conditional_statePlanConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdatePlanRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf 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_onlyboolInclude 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.FieldMaskIf 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.

NameTypeDescription
namestring (name of Plan)Name of ntt.limits.v1alpha2.Plan
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

Plan Enumerations

Here is the list of Plan resource enumerations:

Plan.PlanLevel Enumeration

PlanLevel defines entity level for whom plan can be assigned

NameDescription
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

NameTypeDescription
namestring (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}
planstring (reference to Plan)Plan with basic set of limits
servicestring (reference to Service)Service associated with plan
extensionsrepeated AllowanceAdditional extensions (but may be negative) on top of regular plan.
regional_distributionsrepeated RegionalDistributionRegional distributions across regions. This field makes sense only for projects, because limit pools are regionless.
sourcestring (reference to AcceptedPlan)Source with which this PlanAssignment is synchronized.
metadataMetaMetadata

GetPlanAssignmentRequest Message

A request message of the GetPlanAssignment method.

NameTypeDescription
namestring (name of PlanAssignment)Name of ntt.limits.v1alpha2.PlanAssignment
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
namesrepeated string (name of PlanAssignment)Names of PlanAssignments
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
plan_assignmentsrepeated PlanAssignmentfound PlanAssignments
missingrepeated string (name of PlanAssignment)list of not found PlanAssignments

ListPlanAssignmentsRequest Message

A request message of the ListPlanAssignments method.

NameTypeDescription
parentstring (parent name of PlanAssignment)Parent name of ntt.limits.v1alpha2.PlanAssignment
page_sizeint32Requested page size. Server may return fewer PlanAssignments than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (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_bystring (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”
filterstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates 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.

NameTypeDescription
plan_assignmentsrepeated PlanAssignmentThe list of PlanAssignments
prev_page_tokenstring (cursor of PlanAssignment)A token to retrieve previous page of results. Pass this value in the ListPlanAssignmentsRequest.page_token.
next_page_tokenstring (cursor of PlanAssignment)A token to retrieve next page of results. Pass this value in the ListPlanAssignmentsRequest.page_token.
current_offsetint32Current 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_countint32Number 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.

NameTypeDescription
namestring (name of PlanAssignment)Name of ntt.limits.v1alpha2.PlanAssignment
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
changePlanAssignmentChange

WatchPlanAssignmentsRequest Message

A request message of the WatchPlanAssignments method.

NameTypeDescription
typeWatchTypeType 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.
parentstring (parent name of PlanAssignment)Parent name of ntt.limits.v1alpha2.PlanAssignment
page_sizeint32Requested 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_tokenstring (cursor of PlanAssignment)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of PlanAssignment)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint 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.
filterstring (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.FieldMaskA 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.
viewViewView 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_sizeint32Maximum 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.

NameTypeDescription
plan_assignment_changesrepeated PlanAssignmentChangeChanges of PlanAssignments
is_currentboolIf 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_changeWatchPlanAssignmentsResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken 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_sizeint64Server 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_resetboolIn 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_resetboolIn 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

NameTypeDescription
prev_page_tokenstring (cursor of PlanAssignment)New token to retrieve previous page of results.
next_page_tokenstring (cursor of PlanAssignment)New token to retrieve next page of results.

CreatePlanAssignmentRequest Message

A request message of the CreatePlanAssignment method.

NameTypeDescription
parentstring (parent name of PlanAssignment)Parent name of ntt.limits.v1alpha2.PlanAssignment
plan_assignmentPlanAssignmentPlanAssignment resource body
response_maskCreatePlanAssignmentRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreatePlanAssignmentRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdatePlanAssignmentRequest Message

A request message of the UpdatePlanAssignment method.

NameTypeDescription
plan_assignmentPlanAssignmentPlanAssignment resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdatePlanAssignmentRequest.CASConditional 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_missingboolIf 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_maskUpdatePlanAssignmentRequest.ResponseMaskreduce 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.

NameTypeDescription
conditional_statePlanAssignmentConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdatePlanAssignmentRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf 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_onlyboolInclude 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.FieldMaskIf 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.

NameTypeDescription
namestring (name of PlanAssignment)Name of ntt.limits.v1alpha2.PlanAssignment
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

MigratePlanAssignmentRequest Message

Request message for method [MigratePlanAssignment][ntt.limits.v1alpha2.MigratePlanAssignment]

NameTypeDescription
plan_assignmentPlanAssignmentPlanAssignment 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

NameTypeDescription
namestring (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]
requestPlanAssignmentRequest.RequestTypePurpose of this request
servicestring (reference to Service)Service associated with this request.
approverstring (reference to Organization)Approver
statusPlanAssignmentRequest.Status
metadataMetaMetadata

PlanAssignmentRequest.Status Message

Status

NameTypeDescription
conclusionPlanAssignmentRequest.Status.ConclusionConclusion
reasonstringOptional message with reason

PlanAssignmentRequest.RequestType Message

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

NameTypeDescription
assignPlanAssignmentRequest.RequestType.AssignAssign request
extendPlanAssignmentRequest.RequestType.ExtendExtend request
redistributePlanAssignmentRequest.RequestType.RedistributeRedistribute request
unassignPlanAssignmentRequest.RequestType.UnassignUnassign 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.

NameTypeDescription
planstring (reference to Plan)Plan to apply
extensionsrepeated AllowanceList of all extensions over basic plan
regional_distributionsrepeated RegionalDistributionOptional 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.

NameTypeDescription
assignmentstring (reference to PlanAssignment)Reference to existing plan assignment
additionsrepeated AllowanceList of limits to merge within existing assignment
regional_distributionsrepeated RegionalDistributionDistributions 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.

NameTypeDescription
assignmentstring (reference to PlanAssignment)Reference to existing assignment
regional_distributionsrepeated RegionalDistributionList 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.

NameTypeDescription
assignmentstring (reference to PlanAssignment)

GetPlanAssignmentRequestRequest Message

A request message of the GetPlanAssignmentRequest method.

NameTypeDescription
namestring (name of PlanAssignmentRequest)Name of ntt.limits.v1alpha2.PlanAssignmentRequest
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
namesrepeated string (name of PlanAssignmentRequest)Names of PlanAssignmentRequests
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
plan_assignment_requestsrepeated PlanAssignmentRequestfound PlanAssignmentRequests
missingrepeated string (name of PlanAssignmentRequest)list of not found PlanAssignmentRequests

ListPlanAssignmentRequestsRequest Message

A request message of the ListPlanAssignmentRequests method.

NameTypeDescription
parentstring (parent name of PlanAssignmentRequest)Parent name of ntt.limits.v1alpha2.PlanAssignmentRequest
page_sizeint32Requested page size. Server may return fewer PlanAssignmentRequests than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (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_bystring (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”
filterstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates 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.

NameTypeDescription
plan_assignment_requestsrepeated PlanAssignmentRequestThe list of PlanAssignmentRequests
prev_page_tokenstring (cursor of PlanAssignmentRequest)A token to retrieve previous page of results. Pass this value in the ListPlanAssignmentRequestsRequest.page_token.
next_page_tokenstring (cursor of PlanAssignmentRequest)A token to retrieve next page of results. Pass this value in the ListPlanAssignmentRequestsRequest.page_token.
current_offsetint32Current 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_countint32Number 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.

NameTypeDescription
namestring (name of PlanAssignmentRequest)Name of ntt.limits.v1alpha2.PlanAssignmentRequest
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
changePlanAssignmentRequestChange

WatchPlanAssignmentRequestsRequest Message

A request message of the WatchPlanAssignmentRequests method.

NameTypeDescription
typeWatchTypeType 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.
parentstring (parent name of PlanAssignmentRequest)Parent name of ntt.limits.v1alpha2.PlanAssignmentRequest
page_sizeint32Requested 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_tokenstring (cursor of PlanAssignmentRequest)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of PlanAssignmentRequest)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint 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.
filterstring (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.FieldMaskA 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.
viewViewView 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_sizeint32Maximum 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.

NameTypeDescription
plan_assignment_request_changesrepeated PlanAssignmentRequestChangeChanges of PlanAssignmentRequests
is_currentboolIf 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_changeWatchPlanAssignmentRequestsResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken 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_sizeint64Server 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_resetboolIn 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_resetboolIn 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

NameTypeDescription
prev_page_tokenstring (cursor of PlanAssignmentRequest)New token to retrieve previous page of results.
next_page_tokenstring (cursor of PlanAssignmentRequest)New token to retrieve next page of results.

CreatePlanAssignmentRequestRequest Message

A request message of the CreatePlanAssignmentRequest method.

NameTypeDescription
parentstring (parent name of PlanAssignmentRequest)Parent name of ntt.limits.v1alpha2.PlanAssignmentRequest
plan_assignment_requestPlanAssignmentRequestPlanAssignmentRequest resource body
response_maskCreatePlanAssignmentRequestRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreatePlanAssignmentRequestRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdatePlanAssignmentRequestRequest Message

A request message of the UpdatePlanAssignmentRequest method.

NameTypeDescription
plan_assignment_requestPlanAssignmentRequestPlanAssignmentRequest resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdatePlanAssignmentRequestRequest.CASConditional 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_missingboolIf 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_maskUpdatePlanAssignmentRequestRequest.ResponseMaskreduce 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.

NameTypeDescription
conditional_statePlanAssignmentRequestConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdatePlanAssignmentRequestRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf 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_onlyboolInclude 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.FieldMaskIf 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.

NameTypeDescription
namestring (name of PlanAssignmentRequest)Name of ntt.limits.v1alpha2.PlanAssignmentRequest
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

AcceptPlanAssignmentRequest Message

Request message for method [AcceptPlanAssignment][ntt.limits.v1alpha2.AcceptPlanAssignment]

NameTypeDescription
namestring (name of PlanAssignmentRequest)name of ntt.limits.v1alpha2.PlanAssignmentRequest
approverstring (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]

NameTypeDescription
accepted_planAcceptedPlan

DeclinePlanAssignmentRequest Message

Request message for method [DeclineAssignment][ntt.limits.v1alpha2.DeclineAssignment]

NameTypeDescription
namestring (name of PlanAssignmentRequest)name of ntt.limits.v1alpha2.AssignmentRequest
approverstring (name of Organization)Entity approving plan assignment. It must match approver in PlanAssignmentRequest.
reasonstring

DeclinePlanAssignmentResponse Message

Response message for method [DeclinePlanAssignment][ntt.limits.v1alpha2.DeclinePlanAssignment]

NameTypeDescription
nonenonenone

ListApproverPlanAssignmentRequestsRequest Message

Request message for method [ListApproverPlanAssignmentRequests][ntt.limits.v1alpha2.ListApproverPlanAssignmentRequests]

NameTypeDescription
approverstring (name of Organization)Approver of the plan assignment requests
page_sizeint32Requested page size. Server may return fewer PlanAssignmentRequests than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (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_bystring (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”
filterstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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

NameDescription
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

NameTypeDescription
addedAcceptedPlanChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedAcceptedPlanChange.ModifiedModified is returned when watched document is modified
currentAcceptedPlanChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedAcceptedPlanChange.RemovedRemoved is returned when AcceptedPlan is deleted or leaves Query view

AcceptedPlanChange.Added Message

AcceptedPlan has been added to query view

NameTypeDescription
accepted_planAcceptedPlan
view_indexint32Integer 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

NameTypeDescription
accepted_planAcceptedPlan

AcceptedPlanChange.Modified Message

AcceptedPlan changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of AcceptedPlan)Name of modified AcceptedPlan
accepted_planAcceptedPlanNew version of AcceptedPlan or masked difference, depending on mask_changes instrumentation of issued [WatchAcceptedPlanRequest] or [WatchAcceptedPlansRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified AcceptedPlan. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying AcceptedPlan new index in resulting query view.

AcceptedPlanChange.Removed Message

Removed is returned when AcceptedPlan is deleted or leaves Query view

NameTypeDescription
namestring (name of AcceptedPlan)
view_indexint32Integer specifying removed AcceptedPlan index. Not populated in stateless watch type.

Allowance Message

Allowance informs how many instances of resource for given type are permitted.

NameTypeDescription
resourcestring (reference to Resource)Reference to resource
valueint64Limit 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

NameTypeDescription
addedLimitChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedLimitChange.ModifiedModified is returned when watched document is modified
currentLimitChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedLimitChange.RemovedRemoved is returned when Limit is deleted or leaves Query view

LimitChange.Added Message

Limit has been added to query view

NameTypeDescription
limitLimit
view_indexint32Integer 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

NameTypeDescription
limitLimit

LimitChange.Modified Message

Limit changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of Limit)Name of modified Limit
limitLimitNew version of Limit or masked difference, depending on mask_changes instrumentation of issued [WatchLimitRequest] or [WatchLimitsRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified Limit. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying Limit new index in resulting query view.

LimitChange.Removed Message

Removed is returned when Limit is deleted or leaves Query view

NameTypeDescription
namestring (name of Limit)
view_indexint32Integer 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

NameTypeDescription
addedLimitPoolChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedLimitPoolChange.ModifiedModified is returned when watched document is modified
currentLimitPoolChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedLimitPoolChange.RemovedRemoved is returned when LimitPool is deleted or leaves Query view

LimitPoolChange.Added Message

LimitPool has been added to query view

NameTypeDescription
limit_poolLimitPool
view_indexint32Integer 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

NameTypeDescription
limit_poolLimitPool

LimitPoolChange.Modified Message

LimitPool changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of LimitPool)Name of modified LimitPool
limit_poolLimitPoolNew version of LimitPool or masked difference, depending on mask_changes instrumentation of issued [WatchLimitPoolRequest] or [WatchLimitPoolsRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified LimitPool. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying LimitPool new index in resulting query view.

LimitPoolChange.Removed Message

Removed is returned when LimitPool is deleted or leaves Query view

NameTypeDescription
namestring (name of LimitPool)
view_indexint32Integer 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

NameTypeDescription
addedPlanAssignmentChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedPlanAssignmentChange.ModifiedModified is returned when watched document is modified
currentPlanAssignmentChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedPlanAssignmentChange.RemovedRemoved is returned when PlanAssignment is deleted or leaves Query view

PlanAssignmentChange.Added Message

PlanAssignment has been added to query view

NameTypeDescription
plan_assignmentPlanAssignment
view_indexint32Integer 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

NameTypeDescription
plan_assignmentPlanAssignment

PlanAssignmentChange.Modified Message

PlanAssignment changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of PlanAssignment)Name of modified PlanAssignment
plan_assignmentPlanAssignmentNew version of PlanAssignment or masked difference, depending on mask_changes instrumentation of issued [WatchPlanAssignmentRequest] or [WatchPlanAssignmentsRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified PlanAssignment. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying PlanAssignment new index in resulting query view.

PlanAssignmentChange.Removed Message

Removed is returned when PlanAssignment is deleted or leaves Query view

NameTypeDescription
namestring (name of PlanAssignment)
view_indexint32Integer 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

NameTypeDescription
addedPlanAssignmentRequestChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedPlanAssignmentRequestChange.ModifiedModified is returned when watched document is modified
currentPlanAssignmentRequestChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedPlanAssignmentRequestChange.RemovedRemoved is returned when PlanAssignmentRequest is deleted or leaves Query view

PlanAssignmentRequestChange.Added Message

PlanAssignmentRequest has been added to query view

NameTypeDescription
plan_assignment_requestPlanAssignmentRequest
view_indexint32Integer 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

NameTypeDescription
plan_assignment_requestPlanAssignmentRequest

PlanAssignmentRequestChange.Modified Message

PlanAssignmentRequest changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of PlanAssignmentRequest)Name of modified PlanAssignmentRequest
plan_assignment_requestPlanAssignmentRequestNew version of PlanAssignmentRequest or masked difference, depending on mask_changes instrumentation of issued [WatchPlanAssignmentRequestRequest] or [WatchPlanAssignmentRequestsRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified PlanAssignmentRequest. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying PlanAssignmentRequest new index in resulting query view.

PlanAssignmentRequestChange.Removed Message

Removed is returned when PlanAssignmentRequest is deleted or leaves Query view

NameTypeDescription
namestring (name of PlanAssignmentRequest)
view_indexint32Integer 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

NameTypeDescription
addedPlanChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedPlanChange.ModifiedModified is returned when watched document is modified
currentPlanChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedPlanChange.RemovedRemoved is returned when Plan is deleted or leaves Query view

PlanChange.Added Message

Plan has been added to query view

NameTypeDescription
planPlan
view_indexint32Integer 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

NameTypeDescription
planPlan

PlanChange.Modified Message

Plan changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of Plan)Name of modified Plan
planPlanNew version of Plan or masked difference, depending on mask_changes instrumentation of issued [WatchPlanRequest] or [WatchPlansRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified Plan. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying Plan new index in resulting query view.

PlanChange.Removed Message

Removed is returned when Plan is deleted or leaves Query view

NameTypeDescription
namestring (name of Plan)
view_indexint32Integer specifying removed Plan index. Not populated in stateless watch type.

RegionalDistribution Message

RegionalDistribution shows distribution of certain resource allowances across regions.

NameTypeDescription
resourcestring (reference to Resource)Reference to resource
limits_by_regionmap<string, int64>Limit per region.