Understanding the limits.edgelq.com service APIv1, in proto package ntt.limits.v1.

Service limits.edgelq.com in version v1, proto package ntt.limits.v1

Here is the list of resources supported in Limits service APIv1:

AcceptedPlan Resource

AcceptedPlan shows a plan accepted by assigner (system or organization) for project, organization and system - with all additional information like extensions or regional distributions. It is in relation 1-1 with PlanAssignment, BUT:

  • PlanAssignment is read-only and represents information for Assignee. Name pattern indicates to WHOM plan is assigned.
  • AcceptedPlan contains accepted configuration and represents information for assigner. Name pattern indicates WHO ASSIGNED a plan. It is modifiable, BUT modifications of accepted plans may result in increased usage of allowed limit pools - Organization/Service cannot accept plans to sub-entities without limits (however, system is allowed to assign plan to itself without limits, which makes system admin fully responsible).

Name patterns:

  • services/{service}/acceptedPlans/{accepted_plan}
  • organizations/{organization}/acceptedPlans/{accepted_plan}

Parent resources:

This section covers the methods and messages to interact with AcceptedPlan resource.

AcceptedPlan Methods

Here is the list of AcceptedPlan resource methods:

GetAcceptedPlan Method

GetAcceptedPlan

rpc GetAcceptedPlan(GetAcceptedPlanRequest) returns (AcceptedPlan)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/acceptedPlans.get

The equivalent REST API is:

GET /v1/{name=services/*/acceptedPlans/*} 
GET /v1/{name=organizations/*/acceptedPlans/*} 

BatchGetAcceptedPlans Method

BatchGetAcceptedPlans

rpc BatchGetAcceptedPlans(BatchGetAcceptedPlansRequest) returns (BatchGetAcceptedPlansResponse)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/acceptedPlans.batchGet

The equivalent REST API is:

GET /v1/acceptedPlans:batchGet 

ListAcceptedPlans Method

ListAcceptedPlans

rpc ListAcceptedPlans(ListAcceptedPlansRequest) returns (ListAcceptedPlansResponse)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/acceptedPlans.list

The equivalent REST API is:

GET /v1/{parent=services/*}/acceptedPlans 
GET /v1/{parent=organizations/*}/acceptedPlans 

WatchAcceptedPlan Method

WatchAcceptedPlan

rpc WatchAcceptedPlan(WatchAcceptedPlanRequest) returns (WatchAcceptedPlanResponse)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/acceptedPlans.watch

The equivalent REST API is:

POST /v1/{name=services/*/acceptedPlans/*}:watch 
POST /v1/{name=organizations/*/acceptedPlans/*}:watch 

WatchAcceptedPlans Method

WatchAcceptedPlans

rpc WatchAcceptedPlans(WatchAcceptedPlansRequest) returns (WatchAcceptedPlansResponse)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/acceptedPlans.watch

The equivalent REST API is:

POST /v1/{parent=services/*}/acceptedPlans:watch 
POST /v1/{parent=organizations/*}/acceptedPlans:watch 

CreateAcceptedPlan Method

CreateAcceptedPlan

rpc CreateAcceptedPlan(CreateAcceptedPlanRequest) returns (AcceptedPlan)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/acceptedPlans.create

The equivalent REST API is:

POST /v1/{parent=services/*}/acceptedPlans (BODY: accepted_plan)
POST /v1/{parent=organizations/*}/acceptedPlans 

UpdateAcceptedPlan Method

UpdateAcceptedPlan

rpc UpdateAcceptedPlan(UpdateAcceptedPlanRequest) returns (AcceptedPlan)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/acceptedPlans.update

The equivalent REST API is:

PUT /v1/{accepted_plan.name=services/*/acceptedPlans/*} (BODY: accepted_plan)
PUT /v1/{accepted_plan.name=organizations/*/acceptedPlans/*} 

DeleteAcceptedPlan Method

DeleteAcceptedPlan

rpc DeleteAcceptedPlan(DeleteAcceptedPlanRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/acceptedPlans.delete

The equivalent REST API is:

DELETE /v1/{name=services/*/acceptedPlans/*} 
DELETE /v1/{name=organizations/*/acceptedPlans/*} 

AcceptedPlan Messages

Here is the list of AcceptedPlan resource messages:

AcceptedPlan Message

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}
metadataMetaMetadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
default_regional_planstring (reference to Plan)Plan with resource limits - it will apply to EACH region of service/organization/project.
servicestring (reference to Service)Service indicated by a plan.
regional_plan_overridesrepeated RegionalPlanAssignmentIndividual plan overrides per each region - however, overrides do not work on non-regional resources for project assignees.
extensionsrepeated AllowanceOptional extensions over standard plans in individual regions or all regions, if region id is empty.
allowancesrepeated AllowanceFinal allowances per resource/region - computed from extensions and all regional plans.
applied_regionsrepeated stringList of regions ID where plan was applied - it is being taken from service/organization/project list of regions. Limits service extends plans if it notices expansion to the new region.
applied_plan_spec_generationint64Default region plan generation number, set during each update and creation. It is used to notice if plan got changed and we need to trigger accepted plan update.
assigneeAcceptedPlan.AssigneePlan assignee

AcceptedPlan.Assignee Message

Assignee indicates for whom plan was accepted for. In case of child project/org deletion, accepted plan will be deleted too, which will result in return of all limits.

NameTypeDescription
project_assigneestring (reference to Project)Project for whom plan is for.
organization_assigneestring (reference to Organization)Organization for whom plan is for.
service_assigneestring (reference to Service)Service for whom plan is for

GetAcceptedPlanRequest Message

A request message of the GetAcceptedPlan method.

NameTypeDescription
namestring (name of AcceptedPlan)Name of ntt.limits.v1.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.v1.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.v1.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.v1.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.v1.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.v1.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 /v1/{name=projects/*/limits/*} 

BatchGetLimits Method

BatchGetLimits

rpc BatchGetLimits(BatchGetLimitsRequest) returns (BatchGetLimitsResponse)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/limits.batchGet

The equivalent REST API is:

GET /v1/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 /v1/{parent=projects/*}/limits 

WatchLimit Method

WatchLimit

rpc WatchLimit(WatchLimitRequest) returns (WatchLimitResponse)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/limits.watch

The equivalent REST API is:

POST /v1/{name=projects/*/limits/*}:watch 

WatchLimits Method

WatchLimits

rpc WatchLimits(WatchLimitsRequest) returns (WatchLimitsResponse)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/limits.watch

The equivalent REST API is:

POST /v1/{parent=projects/*}/limits:watch 

UpdateLimit Method

UpdateLimit

rpc UpdateLimit(UpdateLimitRequest) returns (Limit)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/limits.update

The equivalent REST API is:

PUT /v1/{limit.name=projects/*/limits/*} (BODY: limit)

DeleteLimit Method

DeleteLimit

rpc DeleteLimit(DeleteLimitRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/limits.delete

The equivalent REST API is:

DELETE /v1/{name=projects/*/limits/*} 

MigrateLimitSource Method

MigrateLimitSource

rpc MigrateLimitSource(MigrateLimitSourceRequest) returns (Limit)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/limits.migrate

The equivalent REST API is:

POST /v1/{name=projects/*/limits/*}:migrate 

Limit Messages

Here is the list of Limit resource messages:

Limit Message

NameTypeDescription
namestring (name of Limit)Name of Limit When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-zA-Z0-9-]{1,128}\/[a-zA-Z0-9-.]{1,128}\/[a-zA-Z]{1,128}
metadataMetaMetadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
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.
sourcesrepeated string (reference to LimitPool)LimitPool sources that supplied reservation to this limit. Any change in configured/active value in current Limit increases/decreases reserved field in source LimitPool. Number of sources depends whether resource is regional or not - if resource is regional, it will be only one source pointing to the specific region. Non-regional resources will point to all regions where project is present.

GetLimitRequest Message

A request message of the GetLimit method.

NameTypeDescription
namestring (name of Limit)Name of ntt.limits.v1.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.v1.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.v1.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.v1.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.v1.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.v1.MigrateLimitSource]

NameTypeDescription
namestring (name of Limit)name of ntt.limits.v1.Limit

LimitPool Resource

LimitPool represents a pool from which next LimitPool or final Limit instances are allocated from. LimitPool can either belong to a service (first pool, without parent) or organization (which got pool from service or parent organization). Size of child limit or limit pools must not exceed parent limit pool. LimitPool is in a way similar to Limit - it has scope and associated resource but LimitPool is non-final object. It cannot be used to allocate resources directly. It need child Limit first. Therefore, field with values in LimitPool are configured size, active size and reserved. Fields in Limit are configured limit, active limit and usage - they need different interpretation. Because LimitPool instances within one scope (service, organization) are managed by primary region of that scope, changes in them are done with only single transaction. LimitPool instances cannot be directly created or deleted. They cannot be also be modified (there are only some state fields controlled by service). LimitPools are created/modified along with PlanAssignment instances.

Name patterns:

  • services/{service}/limitPools/{limit_pool}
  • organizations/{organization}/limitPools/{limit_pool}

Parent resources:

This section covers the methods and messages to interact with LimitPool resource.

LimitPool Methods

Here is the list of LimitPool resource methods:

GetLimitPool Method

GetLimitPool

rpc GetLimitPool(GetLimitPoolRequest) returns (LimitPool)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/limitPools.get

The equivalent REST API is:

GET /v1/{name=services/*/limitPools/*} 
GET /v1/{name=organizations/*/limitPools/*} 

BatchGetLimitPools Method

BatchGetLimitPools

rpc BatchGetLimitPools(BatchGetLimitPoolsRequest) returns (BatchGetLimitPoolsResponse)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/limitPools.batchGet

The equivalent REST API is:

GET /v1/limitPools:batchGet 

ListLimitPools Method

ListLimitPools

rpc ListLimitPools(ListLimitPoolsRequest) returns (ListLimitPoolsResponse)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/limitPools.list

The equivalent REST API is:

GET /v1/{parent=services/*}/limitPools 
GET /v1/{parent=organizations/*}/limitPools 

WatchLimitPool Method

WatchLimitPool

rpc WatchLimitPool(WatchLimitPoolRequest) returns (WatchLimitPoolResponse)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/limitPools.watch

The equivalent REST API is:

POST /v1/{name=services/*/limitPools/*}:watch 
POST /v1/{name=organizations/*/limitPools/*}:watch 

WatchLimitPools Method

WatchLimitPools

rpc WatchLimitPools(WatchLimitPoolsRequest) returns (WatchLimitPoolsResponse)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/limitPools.watch

The equivalent REST API is:

POST /v1/{parent=services/*}/limitPools:watch 
POST /v1/{parent=organizations/*}/limitPools:watch 

UpdateLimitPool Method

UpdateLimitPool

rpc UpdateLimitPool(UpdateLimitPoolRequest) returns (LimitPool)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/limitPools.update

The equivalent REST API is:

PUT /v1/{limit_pool.name=services/*/limitPools/*} (BODY: limit_pool)
PUT /v1/{limit_pool.name=organizations/*/limitPools/*} 

DeleteLimitPool Method

DeleteLimitPool

rpc DeleteLimitPool(DeleteLimitPoolRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/limitPools.delete

The equivalent REST API is:

DELETE /v1/{name=services/*/limitPools/*} 
DELETE /v1/{name=organizations/*/limitPools/*} 

MigrateLimitPoolSource Method

MigrateLimitPoolSource

rpc MigrateLimitPoolSource(MigrateLimitPoolSourceRequest) returns (LimitPool)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/limitPools.migrate

The equivalent REST API is:

POST /v1/{name=services/*/limitPools/*}:migrate 
POST /v1/{name=organizations/*/limitPools/*}:migrate 

LimitPool Messages

Here is the list of LimitPool resource messages:

LimitPool Message

NameTypeDescription
namestring (name of LimitPool)Name of LimitPool When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-zA-Z0-9-]{1,128}\/[a-zA-Z0-9-.]{1,128}\/[a-zA-Z]{1,128}
metadataMetaMetadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
servicestring (reference to Service)Referenced service
resourcestring (reference to Resource)Referenced resource type
regionstringRegion ID to which this pool applies. This may be different compared to default region for service/organization, because they may use multiple regions.
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 supplied reservation to this LimitPool. Any change in configured/active value in current LimitPool increases/decreases reserved field in source LimitPool.

GetLimitPoolRequest Message

A request message of the GetLimitPool method.

NameTypeDescription
namestring (name of LimitPool)Name of ntt.limits.v1.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.v1.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.v1.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.v1.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.v1.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.v1.MigrateLimitPoolSource]

NameTypeDescription
namestring (name of LimitPool)name of ntt.limits.v1.LimitPool

Plan Resource

Plan is a bundle with set of limits for various resources in given service. Note that Plan limits are regional. For example, if plan predicts for example 1000 pods and is assigned for resource enabled for 2 regions, then project will be allowed to create 1000 pods in each region.

Name patterns:

  • services/{service}/plans/{plan}
  • organizations/{organization}/plans/{plan}

Parent resources:

This section covers the methods and messages to interact with Plan resource.

Plan Methods

Here is the list of Plan resource methods:

GetPlan Method

GetPlan

rpc GetPlan(GetPlanRequest) returns (Plan)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/plans.get

The equivalent REST API is:

GET /v1/{name=services/*/plans/*} 
GET /v1/{name=organizations/*/plans/*} 

BatchGetPlans Method

BatchGetPlans

rpc BatchGetPlans(BatchGetPlansRequest) returns (BatchGetPlansResponse)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/plans.batchGet

The equivalent REST API is:

GET /v1/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 /v1/{parent=services/*}/plans 
GET /v1/{parent=organizations/*}/plans 

WatchPlan Method

WatchPlan

rpc WatchPlan(WatchPlanRequest) returns (WatchPlanResponse)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/plans.watch

The equivalent REST API is:

POST /v1/{name=services/*/plans/*}:watch 
POST /v1/{name=organizations/*/plans/*}:watch 

WatchPlans Method

WatchPlans

rpc WatchPlans(WatchPlansRequest) returns (WatchPlansResponse)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/plans.watch

The equivalent REST API is:

POST /v1/{parent=services/*}/plans:watch 
POST /v1/{parent=organizations/*}/plans:watch 

CreatePlan Method

CreatePlan

rpc CreatePlan(CreatePlanRequest) returns (Plan)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/plans.create

The equivalent REST API is:

POST /v1/{parent=services/*}/plans (BODY: plan)
POST /v1/{parent=organizations/*}/plans 

UpdatePlan Method

UpdatePlan

rpc UpdatePlan(UpdatePlanRequest) returns (Plan)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/plans.update

The equivalent REST API is:

PUT /v1/{plan.name=services/*/plans/*} (BODY: plan)
PUT /v1/{plan.name=organizations/*/plans/*} 

DeletePlan Method

DeletePlan

rpc DeletePlan(DeletePlanRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/plans.delete

The equivalent REST API is:

DELETE /v1/{name=services/*/plans/*} 
DELETE /v1/{name=organizations/*/plans/*} 

Plan Messages

Here is the list of Plan resource messages:

Plan Message

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}
metadataMetaMetadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
display_namestringPlan display name
servicestring (reference to Service)Service where plan applies. If this Plan is a child of Service itself, they must be equal.
resource_limitsrepeated Plan.LimitValueList of limits per each resource.
plan_levelPlan.PlanLevelPlan level
business_tierBusinessTierBusiness tier - this only is used to determine default plan when project/organization is created. It is possible to set this value to UNDEFINED rendering this plan as non-default.
generationint64Spec generation, incremented for every change in resource_limits field.

Plan.LimitValue Message

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

NameTypeDescription
resourcestring (reference to Resource)Reference to resource
valueint64Limit for given resource.

GetPlanRequest Message

A request message of the GetPlan method.

NameTypeDescription
namestring (name of Plan)Name of ntt.limits.v1.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
parentstring (parent name of Plan)Parent name of ntt.limits.v1.Plan
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.v1.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.
parentstring (parent name of Plan)Parent name of ntt.limits.v1.Plan
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
parentstring (parent name of Plan)Parent name of ntt.limits.v1.Plan
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.v1.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
SERVICE
ORGANIZATION
PROJECT

PlanAssignment Resource

PlanAssignment binds plan (with optional customizations) with specific entity (assignee - either system, organization or project). Plan assignments (sum of them) are used to compute configured size of limit pools (system and organizations) AND limits (projects). They are not modifiable - limits are passed from system to projects, so each PlanAssignment must be agreed by higher instance (parent organization or system). System recognizes acceptance by existence of AcceptedPlan instances - it synchronizes PlanAssignment instances with them.

Name patterns:

  • services/{service}/planAssignments/{plan_assignment}
  • projects/{project}/planAssignments/{plan_assignment}
  • organizations/{organization}/planAssignments/{plan_assignment}

Parent resources:

This section covers the methods and messages to interact with PlanAssignment resource.

PlanAssignment Methods

Here is the list of PlanAssignment resource methods:

GetPlanAssignment Method

GetPlanAssignment

rpc GetPlanAssignment(GetPlanAssignmentRequest) returns (PlanAssignment)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/planAssignments.get

The equivalent REST API is:

GET /v1/{name=services/*/planAssignments/*} 
GET /v1/{name=projects/*/planAssignments/*} 
GET /v1/{name=organizations/*/planAssignments/*} 

BatchGetPlanAssignments Method

BatchGetPlanAssignments

rpc BatchGetPlanAssignments(BatchGetPlanAssignmentsRequest) returns (BatchGetPlanAssignmentsResponse)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/planAssignments.batchGet

The equivalent REST API is:

GET /v1/planAssignments:batchGet 

ListPlanAssignments Method

ListPlanAssignments

rpc ListPlanAssignments(ListPlanAssignmentsRequest) returns (ListPlanAssignmentsResponse)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/planAssignments.list

The equivalent REST API is:

GET /v1/{parent=services/*}/planAssignments 
GET /v1/{parent=projects/*}/planAssignments 
GET /v1/{parent=organizations/*}/planAssignments 

WatchPlanAssignment Method

WatchPlanAssignment

rpc WatchPlanAssignment(WatchPlanAssignmentRequest) returns (WatchPlanAssignmentResponse)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/planAssignments.watch

The equivalent REST API is:

POST /v1/{name=services/*/planAssignments/*}:watch 
POST /v1/{name=projects/*/planAssignments/*}:watch 
POST /v1/{name=organizations/*/planAssignments/*}:watch 

WatchPlanAssignments Method

WatchPlanAssignments

rpc WatchPlanAssignments(WatchPlanAssignmentsRequest) returns (WatchPlanAssignmentsResponse)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/planAssignments.watch

The equivalent REST API is:

POST /v1/{parent=services/*}/planAssignments:watch 
POST /v1/{parent=projects/*}/planAssignments:watch 
POST /v1/{parent=organizations/*}/planAssignments:watch 

CreatePlanAssignment Method

CreatePlanAssignment

rpc CreatePlanAssignment(CreatePlanAssignmentRequest) returns (PlanAssignment)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/planAssignments.create

The equivalent REST API is:

POST /v1/{parent=services/*}/planAssignments (BODY: plan_assignment)
POST /v1/{parent=projects/*}/planAssignments 
POST /v1/{parent=organizations/*}/planAssignments 

UpdatePlanAssignment Method

UpdatePlanAssignment

rpc UpdatePlanAssignment(UpdatePlanAssignmentRequest) returns (PlanAssignment)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/planAssignments.update

The equivalent REST API is:

PUT /v1/{plan_assignment.name=services/*/planAssignments/*} (BODY: plan_assignment)
PUT /v1/{plan_assignment.name=projects/*/planAssignments/*} 
PUT /v1/{plan_assignment.name=organizations/*/planAssignments/*} 

DeletePlanAssignment Method

DeletePlanAssignment

rpc DeletePlanAssignment(DeletePlanAssignmentRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/planAssignments.delete

The equivalent REST API is:

DELETE /v1/{name=services/*/planAssignments/*} 
DELETE /v1/{name=projects/*/planAssignments/*} 
DELETE /v1/{name=organizations/*/planAssignments/*} 

MigratePlanAssignment Method

MigratePlanAssignment

rpc MigratePlanAssignment(MigratePlanAssignmentRequest) returns (PlanAssignment)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/planAssignments.migrate

The equivalent REST API is:

PUT /v1/{plan_assignment.name=services/*/planAssignments/*}:migrate (BODY: plan_assignment)
PUT /v1/{plan_assignment.name=projects/*/planAssignments/*}:migrate 
PUT /v1/{plan_assignment.name=organizations/*/planAssignments/*}:migrate 

PlanAssignment Messages

Here is the list of PlanAssignment resource messages:

PlanAssignment Message

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}
metadataMetaMetadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
default_regional_planstring (reference to Plan)Plan with basic set of limits - it will apply to EACH region of service/organization/project
servicestring (reference to Service)Service associated with plan
regional_plan_overridesrepeated RegionalPlanAssignmentIndividual plan overrides per each region.
extensionsrepeated AllowanceAdditional extensions (but may be negative) on top of regular plan.
allowancesrepeated AllowanceFinal allowances per resource/region - computed from extensions and all regional plans.
applied_regionsrepeated stringList of regions ID where plan was applied - it is being taken from service/organization/project list of regions. Limits service extends plans if it notices expansion to the new region.
applied_plan_spec_generationint64Default region plan generation number, set during each update and creation. It is used to notice if plan got changed and we need to trigger plan update.
sourcestring (reference to AcceptedPlan)Source with which this PlanAssignment is synchronized.

GetPlanAssignmentRequest Message

A request message of the GetPlanAssignment method.

NameTypeDescription
namestring (name of PlanAssignment)Name of ntt.limits.v1.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.v1.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.v1.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.v1.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.v1.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.v1.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.v1.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 /v1/{name=projects/*/planAssignmentRequests/*} 
GET /v1/{name=organizations/*/planAssignmentRequests/*} 

BatchGetPlanAssignmentRequests Method

BatchGetPlanAssignmentRequests

rpc BatchGetPlanAssignmentRequests(BatchGetPlanAssignmentRequestsRequest) returns (BatchGetPlanAssignmentRequestsResponse)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/planAssignmentRequests.batchGet

The equivalent REST API is:

GET /v1/planAssignmentRequests:batchGet 

ListPlanAssignmentRequests Method

ListPlanAssignmentRequests

rpc ListPlanAssignmentRequests(ListPlanAssignmentRequestsRequest) returns (ListPlanAssignmentRequestsResponse)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/planAssignmentRequests.list

The equivalent REST API is:

GET /v1/{parent=projects/*}/planAssignmentRequests 
GET /v1/{parent=organizations/*}/planAssignmentRequests 

WatchPlanAssignmentRequest Method

WatchPlanAssignmentRequest

rpc WatchPlanAssignmentRequest(WatchPlanAssignmentRequestRequest) returns (WatchPlanAssignmentRequestResponse)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/planAssignmentRequests.watch

The equivalent REST API is:

POST /v1/{name=projects/*/planAssignmentRequests/*}:watch 
POST /v1/{name=organizations/*/planAssignmentRequests/*}:watch 

WatchPlanAssignmentRequests Method

WatchPlanAssignmentRequests

rpc WatchPlanAssignmentRequests(WatchPlanAssignmentRequestsRequest) returns (WatchPlanAssignmentRequestsResponse)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/planAssignmentRequests.watch

The equivalent REST API is:

POST /v1/{parent=projects/*}/planAssignmentRequests:watch 
POST /v1/{parent=organizations/*}/planAssignmentRequests:watch 

CreatePlanAssignmentRequest Method

CreatePlanAssignmentRequest

rpc CreatePlanAssignmentRequest(CreatePlanAssignmentRequestRequest) returns (PlanAssignmentRequest)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/planAssignmentRequests.create

The equivalent REST API is:

POST /v1/{parent=projects/*}/planAssignmentRequests (BODY: plan_assignment_request)
POST /v1/{parent=organizations/*}/planAssignmentRequests 

UpdatePlanAssignmentRequest Method

UpdatePlanAssignmentRequest

rpc UpdatePlanAssignmentRequest(UpdatePlanAssignmentRequestRequest) returns (PlanAssignmentRequest)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/planAssignmentRequests.update

The equivalent REST API is:

PUT /v1/{plan_assignment_request.name=projects/*/planAssignmentRequests/*} (BODY: plan_assignment_request)
PUT /v1/{plan_assignment_request.name=organizations/*/planAssignmentRequests/*} 

DeletePlanAssignmentRequest Method

DeletePlanAssignmentRequest

rpc DeletePlanAssignmentRequest(DeletePlanAssignmentRequestRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/planAssignmentRequests.delete

The equivalent REST API is:

DELETE /v1/{name=projects/*/planAssignmentRequests/*} 
DELETE /v1/{name=organizations/*/planAssignmentRequests/*} 

AcceptPlanAssignment Method

AcceptPlanAssignment

rpc AcceptPlanAssignment(AcceptPlanAssignmentRequest) returns (AcceptPlanAssignmentResponse)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/planAssignmentRequests.accept

The equivalent REST API is:

POST /v1/{name=projects/*/planAssignmentRequests/*}:accept 
POST /v1/{name=organizations/*/planAssignmentRequests/*}:accept 

DeclinePlanAssignment Method

DeclinePlanAssignment

rpc DeclinePlanAssignment(DeclinePlanAssignmentRequest) returns (DeclinePlanAssignmentResponse)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/planAssignmentRequests.decline

The equivalent REST API is:

POST /v1/{name=projects/*/planAssignmentRequests/*}:decline 
POST /v1/{name=organizations/*/planAssignmentRequests/*}:decline 

ListApproverPlanAssignmentRequests Method

ListApproverPlanAssignmentRequests

rpc ListApproverPlanAssignmentRequests(ListApproverPlanAssignmentRequestsRequest) returns (ListPlanAssignmentRequestsResponse)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/approverPlanAssignmentRequests.list

The equivalent REST API is:

GET /v1/planAssignmentRequests:listApprover 

PlanAssignmentRequest Messages

Here is the list of PlanAssignmentRequest resource messages:

PlanAssignmentRequest Message

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]
metadataMetaMetadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
requestPlanAssignmentRequest.RequestTypePurpose of this request
servicestring (reference to Service)Service associated with this request.
approverstring (parent name of AcceptedPlan)Approver - it can be org or service in practice, note its always equal to the parent name of AcceptedPlan
statusPlanAssignmentRequest.Status

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
unassignPlanAssignmentRequest.RequestType.UnassignUnassign request

PlanAssignmentRequest.RequestType.Assign Message

Assign request requests for new PlanAssignment instance. If there already is a plan for associated service, then previous record is overwritten in the scope of the “region”. In other words, this request can also be used to upgrade/downgrade existing plan. If “region” is specified, all extensions from existing plan for given region will be discarded and overwritten from this one. If “region” is not specified, then

NameTypeDescription
planstring (reference to Plan)Plan to apply
extensionsrepeated AllowanceList of all extensions over basic plan. Extensions without specified region will apply to all regions if value of field “region” in this request is also empty. However, if “region” is specified, then extensions defined here will be applicable for this region only.
regionstringOptional region ID for the plan - if not specified, assigned plan will apply to all regions (default plan for region), BUT it will not override plans for specific region in existing PlanAssignment.

PlanAssignmentRequest.RequestType.Extend Message

Extend request should be used in order to increase (optionally decrease) limits from existing plan assignment. Note each addition can be applied to one or all regions.

NameTypeDescription
assignmentstring (reference to PlanAssignment)Reference to existing plan assignment
additionsrepeated AllowanceList of limits to merge within existing assignment

PlanAssignmentRequest.RequestType.Unassign Message

Unassign is used to remove existing PlanAssignment if “region” is empty. This will always be automatically approved unless limits are in use by existing resources. If “region” is specified, then this request will remove region specific overrides only. Note that this will not be self approved if this would result in increased value of limits.

NameTypeDescription
assignmentstring (reference to PlanAssignment)
regionstring

GetPlanAssignmentRequestRequest Message

A request message of the GetPlanAssignmentRequest method.

NameTypeDescription
namestring (name of PlanAssignmentRequest)Name of ntt.limits.v1.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.v1.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.v1.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.v1.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.v1.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.v1.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.v1.AcceptPlanAssignment]

NameTypeDescription
namestring (name of PlanAssignmentRequest)name of ntt.limits.v1.PlanAssignmentRequest
approverstring (parent name of AcceptedPlan)Entity approving plan assignment. It can be left empty if the one approving uses service-level privileges.

AcceptPlanAssignmentResponse Message

Response message for method [AcceptPlanAssignment][ntt.limits.v1.AcceptPlanAssignment]

NameTypeDescription
accepted_planAcceptedPlan

DeclinePlanAssignmentRequest Message

Request message for method [DeclinePlanAssignment][ntt.limits.v1.DeclinePlanAssignment]

NameTypeDescription
namestring (name of PlanAssignmentRequest)name of ntt.limits.v1.PlanAssignmentRequest
approverstring (parent name of AcceptedPlan)Entity approving plan assignment. It must match approver in PlanAssignmentRequest.
reasonstring

DeclinePlanAssignmentResponse Message

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

NameTypeDescription
nonenonenone

ListApproverPlanAssignmentRequestsRequest Message

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

NameTypeDescription
approverstring (parent name of AcceptedPlan)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.v1.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

RetentionPolicy Resource

RetentionPolicy Resource

Name patterns:

  • retentionPolicies/{retention_policy}
  • projects/{project}/retentionPolicies/{retention_policy}
  • organizations/{organization}/retentionPolicies/{retention_policy}

Parent resources:

This section covers the methods and messages to interact with RetentionPolicy resource.

RetentionPolicy Methods

Here is the list of RetentionPolicy resource methods:

GetRetentionPolicy Method

GetRetentionPolicy

rpc GetRetentionPolicy(GetRetentionPolicyRequest) returns (RetentionPolicy)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/retentionPolicies.get

The equivalent REST API is:

GET /v1/{name=retentionPolicies/*} 
GET /v1/{name=projects/*/retentionPolicies/*} 
GET /v1/{name=organizations/*/retentionPolicies/*} 

BatchGetRetentionPolicies Method

BatchGetRetentionPolicies

rpc BatchGetRetentionPolicies(BatchGetRetentionPoliciesRequest) returns (BatchGetRetentionPoliciesResponse)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/retentionPolicies.batchGet

The equivalent REST API is:

GET /v1/retentionPolicies:batchGet 

ListRetentionPolicies Method

ListRetentionPolicies

rpc ListRetentionPolicies(ListRetentionPoliciesRequest) returns (ListRetentionPoliciesResponse)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/retentionPolicies.list

The equivalent REST API is:

GET /v1/retentionPolicies 
GET /v1/{parent=projects/*}/retentionPolicies 
GET /v1/{parent=organizations/*}/retentionPolicies 

WatchRetentionPolicy Method

WatchRetentionPolicy

rpc WatchRetentionPolicy(WatchRetentionPolicyRequest) returns (WatchRetentionPolicyResponse)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/retentionPolicies.watch

The equivalent REST API is:

POST /v1/{name=retentionPolicies/*}:watch 
POST /v1/{name=projects/*/retentionPolicies/*}:watch 
POST /v1/{name=organizations/*/retentionPolicies/*}:watch 

WatchRetentionPolicies Method

WatchRetentionPolicies

rpc WatchRetentionPolicies(WatchRetentionPoliciesRequest) returns (WatchRetentionPoliciesResponse)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/retentionPolicies.watch

The equivalent REST API is:

POST /v1/retentionPolicies:watch 
POST /v1/{parent=projects/*}/retentionPolicies:watch 
POST /v1/{parent=organizations/*}/retentionPolicies:watch 

CreateRetentionPolicy Method

CreateRetentionPolicy

rpc CreateRetentionPolicy(CreateRetentionPolicyRequest) returns (RetentionPolicy)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/retentionPolicies.create

The equivalent REST API is:

POST /v1/retentionPolicies (BODY: retention_policy)
POST /v1/{parent=projects/*}/retentionPolicies 
POST /v1/{parent=organizations/*}/retentionPolicies 

UpdateRetentionPolicy Method

UpdateRetentionPolicy

rpc UpdateRetentionPolicy(UpdateRetentionPolicyRequest) returns (RetentionPolicy)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/retentionPolicies.update

The equivalent REST API is:

PUT /v1/{retention_policy.name=retentionPolicies/*} (BODY: retention_policy)
PUT /v1/{retention_policy.name=projects/*/retentionPolicies/*} 
PUT /v1/{retention_policy.name=organizations/*/retentionPolicies/*} 

DeleteRetentionPolicy Method

DeleteRetentionPolicy

rpc DeleteRetentionPolicy(DeleteRetentionPolicyRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/limits.edgelq.com/permissions/retentionPolicies.delete

The equivalent REST API is:

DELETE /v1/{name=retentionPolicies/*} 
DELETE /v1/{name=projects/*/retentionPolicies/*} 
DELETE /v1/{name=organizations/*/retentionPolicies/*} 

RetentionPolicy Messages

Here is the list of RetentionPolicy resource messages:

RetentionPolicy Message

NameTypeDescription
namestring (name of RetentionPolicy)Name of RetentionPolicy 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,72}[a-z0-9]
metadataMetaMetadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
resourcestring (reference to Resource)The resource type this policy applies to. e.g., “ai.edgelq.com/Conversation”
retention_duration.google.protobuf.DurationHow long to keep inactive resources before they are eligible for deletion. For conversations, this is measured from the last_activity_time.
enabledboolWhether this retention policy is enabled. Disabled policies are ignored during garbage collection.
display_namestringHuman-readable display name for this policy.
descriptionstringOptional description of this policy.

GetRetentionPolicyRequest Message

A request message of the GetRetentionPolicy method.

NameTypeDescription
namestring (name of RetentionPolicy)Name of ntt.limits.v1.RetentionPolicy
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

BatchGetRetentionPoliciesRequest Message

A request message of the BatchGetRetentionPolicies method.

NameTypeDescription
namesrepeated string (name of RetentionPolicy)Names of RetentionPolicies
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

BatchGetRetentionPoliciesResponse Message

A response message of the BatchGetRetentionPolicies method.

NameTypeDescription
retention_policiesrepeated RetentionPolicyfound RetentionPolicies
missingrepeated string (name of RetentionPolicy)list of not found RetentionPolicies

ListRetentionPoliciesRequest Message

A request message of the ListRetentionPolicies method.

NameTypeDescription
parentstring (parent name of RetentionPolicy)Parent name of ntt.limits.v1.RetentionPolicy
page_sizeint32Requested page size. Server may return fewer RetentionPolicies than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of RetentionPolicy)A token identifying a page of results the server should return. Typically, this is the value of ListRetentionPoliciesResponse.next_page_token.
order_bystring (orderBy of RetentionPolicy)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 RetentionPolicy)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).

ListRetentionPoliciesResponse Message

A response message of the ListRetentionPolicies method.

NameTypeDescription
retention_policiesrepeated RetentionPolicyThe list of RetentionPolicies
prev_page_tokenstring (cursor of RetentionPolicy)A token to retrieve previous page of results. Pass this value in the ListRetentionPoliciesRequest.page_token.
next_page_tokenstring (cursor of RetentionPolicy)A token to retrieve next page of results. Pass this value in the ListRetentionPoliciesRequest.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 RetentionPolicies 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.

WatchRetentionPolicyRequest Message

A request message of the WatchRetentionPolicy method.

NameTypeDescription
namestring (name of RetentionPolicy)Name of ntt.limits.v1.RetentionPolicy
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

WatchRetentionPolicyResponse Message

A response message of the WatchRetentionPolicy method.

NameTypeDescription
changeRetentionPolicyChange

WatchRetentionPoliciesRequest Message

A request message of the WatchRetentionPolicies 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 RetentionPolicy)Parent name of ntt.limits.v1.RetentionPolicy
page_sizeint32Requested page size. Server may return fewer RetentionPolicies than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_tokenstring (cursor of RetentionPolicy)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of RetentionPolicy)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 RetentionPolicy)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 RetentionPolicy 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 RetentionPolicy 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.

WatchRetentionPoliciesResponse Message

A response message of the WatchRetentionPolicies method.

NameTypeDescription
retention_policy_changesrepeated RetentionPolicyChangeChanges of RetentionPolicies
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 RetentionPolicies 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_changeWatchRetentionPoliciesResponse.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 (RetentionPolicies 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.

WatchRetentionPoliciesResponse.PageTokenChange Message

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

CreateRetentionPolicyRequest Message

A request message of the CreateRetentionPolicy method.

NameTypeDescription
parentstring (parent name of RetentionPolicy)Parent name of ntt.limits.v1.RetentionPolicy
retention_policyRetentionPolicyRetentionPolicy resource body
response_maskCreateRetentionPolicyRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateRetentionPolicyRequest.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.

UpdateRetentionPolicyRequest Message

A request message of the UpdateRetentionPolicy method.

NameTypeDescription
retention_policyRetentionPolicyRetentionPolicy resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateRetentionPolicyRequest.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_maskUpdateRetentionPolicyRequest.ResponseMaskreduce message response size.

UpdateRetentionPolicyRequest.CAS Message

CAS - Compare and Swap. This object is used if user wants to make update conditional based upon previous resource version.

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

UpdateRetentionPolicyRequest.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.

DeleteRetentionPolicyRequest Message

A request message of the DeleteRetentionPolicy method.

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

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.
regionstringRegion ID where allowance applies - empty if for all.

LimitChange Message

LimitChange is used by Watch notifications Responses to describe change of single Limit One of Added, Modified, Removed

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.

RegionalPlanAssignment Message

RegionalPlanAssignment binds region and plan.

NameTypeDescription
planstring (reference to Plan)Plan for given region
regionstringRegion ID for this override
plan_generationint64Applied generation spec of the plan.

RetentionPolicyChange Message

RetentionPolicyChange is used by Watch notifications Responses to describe change of single RetentionPolicy One of Added, Modified, Removed

NameTypeDescription
addedRetentionPolicyChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedRetentionPolicyChange.ModifiedModified is returned when watched document is modified
currentRetentionPolicyChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedRetentionPolicyChange.RemovedRemoved is returned when RetentionPolicy is deleted or leaves Query view

RetentionPolicyChange.Added Message

RetentionPolicy has been added to query view

NameTypeDescription
retention_policyRetentionPolicy
view_indexint32Integer describing index of added RetentionPolicy in resulting query view.

RetentionPolicyChange.Current Message

RetentionPolicy has been added or modified in a query view. Version used for stateless watching

NameTypeDescription
retention_policyRetentionPolicy

RetentionPolicyChange.Modified Message

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

NameTypeDescription
namestring (name of RetentionPolicy)Name of modified RetentionPolicy
retention_policyRetentionPolicyNew version of RetentionPolicy or masked difference, depending on mask_changes instrumentation of issued [WatchRetentionPolicyRequest] or [WatchRetentionPoliciesRequest]
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 RetentionPolicy. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying RetentionPolicy new index in resulting query view.

RetentionPolicyChange.Removed Message

Removed is returned when RetentionPolicy is deleted or leaves Query view

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