Meta is a core, reflection service for the whole SPEKTRA Edge ecosystem.
It allows all services on the SPEKTRA Edge platform to gain access to the
ecosystem which consists of:
Meta service allows us to see in which regions the ecosystem is deployed,
what services each region offers, what are possible services in general
and what resources they have declared.
It underpins several features like multi-region routing (thanks to knowledge
of regions and deployments), Limits (thanks to knowledge of resources),
garbage collection (thanks to the knowledge of all service schemas and their
relationship with each other).
Note that some services are public, some private (and viewing them may be
rejected).
A deployment represents an instance of a chosen service in
a particular region (backend service). It contains some basic
information, API version number available (currently active), regional
public endpoint, location, etc.
Regions
A region represents a single region where services can hold their
deployments.
Services
A service represents some particular service on the SPEKTRA Edge platform,
for example, devices.edgelq.com. Organization admins
can even deploy their services, too.
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
service_name
string
Service display name - it is lowerCamelCase of service name, but not domain. It is taken from api-skeleton file, under “service.name” path.
Informs in which region cluster running this deployment is located.
public_domain
string
Public domain indicates under which public address service in this particular region can be accessed.
private_domain
string
Private domain indicates how to access this service within local private network. However, this address should not be available for anyone outside network. It is only to be used by other service deployments that run within same private network for better performance purposes (less hops). It should be used in conjunction with field local_network_id.
Additional regional domains with labels where Deployment can be accessed.
local_network_id
string
Local network identifier - it can be mostly anything, however if two deployments for different services hold same value in same region, then Goten components will try to optimize access by using private_domain field instead of public_domain.
Location of given deployment. This value is likely to be equal for all deployments using same underlying cluster. It may be used by Goten to optimize multi-region routing.
is_disabled
bool
Whether this deployment is disabled. It does not trigger any deployment deletion - it will just notify others (in different regions) that its no longer available and no request should be routed there. It can be used as first step to delete deployment.
env_registry_generation
int32
Generation number used by EnvRegistry config to generate this resource.
current_version
string
The current version of the service. Note this MAY not be the newest version! At the very least, if there was a fresh db upgrade, it will be old version till automatic upgrade finishes (or manual switch happens).
db_data_version
string
Current version of data in the database, it must follow convention v<Number>.<Number>… (may be more numbers). When deployment is created first time, value is set to the current value. If non-empty lower value is detected, db-controller may run update task locally. Do not confuse this field with “current_version”, which describes API version. If not populated, then “current”/“newest” should be assumed. current_version signals main API version by deployment, while db_data_version indicates underlying database data. It can be used for internal upgrades, database migrations, or simple in-place updates.
db_location_tag
string
Arbitrary database location tag. This should be used if database migration is needed (different endpoint, backend, namespace…).
automatic_version_switch
bool
If true, then switch to the new version will be automatic (if there is newer), once db upgrade finishes. Otherwise it will require manual call from operator.
Location describes deployment location of this deployment. It may be used
for multi-region routing to help determine closest deployment.
Name
Type
Description
continent
string
Continent
country
string
Country
agglomeration
string
Agglomeration
city
string
City
cloud
string
Cloud provider (like GCP, Azure, AWS…)
Deployment.UpgradeState Message
UpgradeState describes current state of database major upgrade.
This corresponds to database migrations, API upgrades, other internal
updates (if needed).
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListDeploymentsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Deployments 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.
Requested page size. Server may return fewer Deployments than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Deployment that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Deployment that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchDeploymentsResponse Message
A response message of the WatchDeployments method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Deployments 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Deployments 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateDeploymentRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
Region Resource is an auxiliary resource that provides geographic
scope to resources in Goten services, ideally should point to narrow
geographic location but Goten is not strict about it. This allows case
where in single physical location we have multiple clusters using different
virtual networks hosting different deployments. Goten uses regions to aid
in global scaling, but otherwise tries to abstract from running hardware
focusing on services instead.
Name patterns:
regions/{region}
This section covers the methods
and messages to interact
with Region resource.
Name of Region When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListRegionsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Regions 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.
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_size
int32
Requested page size. Server may return fewer Regions than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Region that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Region that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Regions 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Regions 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateRegionRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
Name of Resource 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-Z]{1,128}
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
plural_name
string
Plural name of resource in CamelForm, for example “Devices”
fqn
string
Fully qualified name, for example devices.edgelq.com/Device. It can also be derived from name too.
versions
repeated string
List of service versions where this resource is known. This list will be sorted if created by meta service provided by Goten. The newest version is first, the oldest last.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListResourcesRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Resources 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.
Requested page size. Server may return fewer Resources than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Resource that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Resource that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Resources 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Resources 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateResourceRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
Name of Service When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-.]{0,28}[a-z0-9]
Metadata 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).
All used services. Unlike imported, they are not imported on schema level. Its just a declaration that given service may access other services, but does not try to establish any references.
Information containing which imported service version is used by current service version. This does not include any used services.
env_registry_generation
int32
Generation number used by EnvRegistry config to generate this resource.
automatic_version_switch
bool
If true, then switch to the new version will be automatic (if there is newer), once db upgrade finishes. Otherwise it will require manual call from operator.
Service.ImportedVersions Message
ImportedVersions contains information which version of the imported service
is used by current service in specific version.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListServicesRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Services 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.
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_size
int32
Requested page size. Server may return fewer Services than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Service that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Service that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Services 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Services 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateServiceRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
New version of Deployment or masked difference, depending on mask_changes instrumentation of issued [WatchDeploymentRequest] or [WatchDeploymentsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Deployment. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Deployment new index in resulting query view.
DeploymentChange.Removed Message
Removed is returned when Deployment is deleted or leaves Query view
Integer specifying removed Deployment index. Not populated in stateless watch type.
LabelledDomain Message
LabelledDomain provides connectivity information in a context of Service and
specific label. Service/Deployment may provide multiple addresses, for
example offering different quality class, like optimized for high/low
throughput.
Name
Type
Description
label
string
domain
string
available_mixins
repeated string
web_grpc_available
bool
rest_api_available
bool
is_private
bool
RegionChange Message
RegionChange is used by Watch notifications Responses to describe change of
single Region One of Added, Modified, Removed
New version of Region or masked difference, depending on mask_changes instrumentation of issued [WatchRegionRequest] or [WatchRegionsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Region. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Region new index in resulting query view.
RegionChange.Removed Message
Removed is returned when Region is deleted or leaves Query view
New version of Resource or masked difference, depending on mask_changes instrumentation of issued [WatchResourceRequest] or [WatchResourcesRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Resource. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Resource new index in resulting query view.
ResourceChange.Removed Message
Removed is returned when Resource is deleted or leaves Query view
New version of Service or masked difference, depending on mask_changes instrumentation of issued [WatchServiceRequest] or [WatchServicesRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Service. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Service new index in resulting query view.
ServiceChange.Removed Message
Removed is returned when Service is deleted or leaves Query view
Name of Deployment 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}
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListDeploymentsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Deployments 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.
Requested page size. Server may return fewer Deployments than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Deployment that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Deployment that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchDeploymentsResponse Message
A response message of the WatchDeployments method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Deployments 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Deployments 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.
Name of Region 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]
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListRegionsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Regions 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.
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_size
int32
Requested page size. Server may return fewer Regions than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Region that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Region that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Regions 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Regions 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.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListResourcesRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Resources 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.
Requested page size. Server may return fewer Resources than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Resource that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Resource that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Resources 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Resources 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.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListServicesRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Services 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.
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_size
int32
Requested page size. Server may return fewer Services than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Service that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Service that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Services 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Services 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.
New version of Deployment or masked difference, depending on mask_changes instrumentation of issued [WatchDeploymentRequest] or [WatchDeploymentsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Deployment. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Deployment new index in resulting query view.
DeploymentChange.Removed Message
Removed is returned when Deployment is deleted or leaves Query view
New version of Region or masked difference, depending on mask_changes instrumentation of issued [WatchRegionRequest] or [WatchRegionsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Region. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Region new index in resulting query view.
RegionChange.Removed Message
Removed is returned when Region is deleted or leaves Query view
New version of Resource or masked difference, depending on mask_changes instrumentation of issued [WatchResourceRequest] or [WatchResourcesRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Resource. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Resource new index in resulting query view.
ResourceChange.Removed Message
Removed is returned when Resource is deleted or leaves Query view
New version of Service or masked difference, depending on mask_changes instrumentation of issued [WatchServiceRequest] or [WatchServicesRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Service. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Service new index in resulting query view.
ServiceChange.Removed Message
Removed is returned when Service is deleted or leaves Query view
Integer specifying removed Service index. Not populated in stateless watch type.
2 - SPEKTRA Edge IAM Service API
Understanding the IAM service API.
The Identity and Access Management (IAM) service provides an authentication
and authorization endpoint for both end-user clients such as the cuttle
command and other services that require permission checks.
An example organization hierarchy managed by IAM service.
During the authentication process, backend services extract the Actor
(Who) from JWT tokens. During Authorization, backend services are
checking in which scopes (Where) actions are happening, what
permissions/roles are required (What), and whether an authenticated
Actor has necessary RoleBindings (which binds an Actor with Scope with
Role).
Apart from that, Organization admins can create so-called Service Projects,
in which they can create their Services. Services on their own are
additional IAM Scopes, where administrators also can manage RoleBindings.
A group is a set of other members. It facilitates authorization
management, admins can assign roles to groups instead of individual
principals, groups, nor domains.
Members
A member is a similar concept of principal, but it can also
represent a groups of users, e.g. group, domain, or wildcard
principals, e.g. any one of them. You can think of it as:
Every principals is a member, but not every member is a principal.
Known member types are:
users:$EMAIL
A Member of User type (also an principal), where $EMAIL
is equal to User Email.
serviceAccounts:$EMAIL
A member of service account type (also an principal), where
$EMAIL is equal to ServiceAccount E-mail.
Describes all users whose email matches the domain
group:$EMAIL
A member of group type, where $EMAIL is equal to group
E-mail.
When project/organization/service administrators manage a
role binding, they are binding roles with
members, not principals. This allows assigning
permissions to individual principal, as
well as groups of them (bulk).
Organizations
An organization is a hierarchical grouping of sub-organizations and
projects that enables the easier resource management and the visibility
across entire hierarchies. Granting or revoking permissions through
the creation or deletion of role bindings allows access
control to be inherited to all sub-organizations and projects.
Permissions
A permission is an atomic and unique resource that identifies the unit
of permittable action.
For example, services/devices.edgelq.com/permissions/devices.get
corresponds to GetDevice method of devices.edgelq.com service.
Current SPEKTRA Edge supports three types of Permissions:
verb permissions
It’s usually an one-to-one mapped to gRPC method, e.g.,
services/devices.edgelq.com/permissions/devices.get.
Method either succeeds or fails depending on the presence
of required permission.
attach permissions
With IAM, relationships between resources are protected both ways.
Role bindings allow the system to control which resources the user is
allowed to refer to (or “attach”). For example, the user may have
permission to update Device record, but if they try to update
spec.serviceAccount, which points to ServiceAccount resource, then
the user needs special attach permission on the ServiceAccount itself.
field-level Set/Read permissions
Annotating resource with ntt.annotations.iam.auth_checks.read_checks
or ntt.annotations.iam.auth_checks.set_checks will protect single
field. Unless the user has this permission, it will:
censor (unset) it to get/list responses; or
ignore it in update/create requests.
Principals
A principal represents any single entity interacting with the SPEKTRA Edge
system.
IAM service and middleware allow all SPEKTRA Edge services to verify
Authentication data attached to incoming requests and ensure security
by enforcing Access Controls.
IAM recognizes three types of actors: Users, Service Accounts, and Anonymous.
A user is actual human who interact with our endpoints (most often through
Web dashboards or command-line tools).
A service account is usually assigned to a program, like agents,
controllers, API servers.
An anonymous principal is any unauthenticated request (not JWT token),
on rare occasions, it is still valid to allow such traffic. Disabled
by default.
Users identify themselves through authentication providers using their IDs,
emails, passwords, or SSOs, while service accounts use cryptographic
asymmetric key pairs (RSA).
In many cases, users are subject to the multi-factor authentication.
Each user and service account is represented by IAM resource:
User/ServiceAccount.
Projects
A project is a logical container for most of the resources present in
the system. All devices, applications, and telemetry have a project
attached to them.
The project may define the parent organization and
inherit all access control from it.
Unlike sub-organizations switching parent organizations, resources
within a given project, like devices or pods, cannot easily move to different
projects, so make sure you have large-scale [deployments][] well-planned.
Roles
A role is a set of grants with permissions and optional conditions.
Typically, administrators should not assign to members individual
permissions, as it would require too much work. Instead, we have
Roles that contains set of grants, each has an optional sub-scope,
conditions, and list of permissions.
Role Bindings
A role binding follows the general principles of RBAC:
Role-Based Access Control.
A role can be granted to a member on a scope
by creating a corresponding role binding resource.
This results in all matching principals defined in the member
field to be able to perform actions defined in roles on the resource
in a given scope and its descendant scopes.
Scopes
A scope provides system wide resource groupings. There are four levels of
scopes:
system-wide
when resource name pattern doesn’t start with either projects/ or
organizations/ or services/.
Normally users don’t interact very often with system-level resources.
organization-scoped
when the resource name pattern starts with organizations/.
The organization is a resource in IAM, and it can refer to the parent
organization, meaning organizations can form “trees”. Role Bindings
are inherited in child organizations. Example: NTT, NTT America,
NTT America: Network Innovations
project-scoped
when the resource name pattern starts with projects/ - projects may
point to the parent organization.
Role Bindings from the parent Organization are inherited too.
service-scoped
when the resource name pattern starts with services/ - each service
should point to a service project.
Role Bindings from Service projects are inherited too. If the Service
Project has a parent organization, then all Role Bindings are inherited
from the whole ancestry path.
Service Projects
A service project is a type of project, in which
administrators can create [services][]. A service project is responsible
for managing the service accounts that are the service administrators
of the project, or for storing usage metrics for
the project.
This allows the modeling divisions within a company or the logical groupings
for managed customers. Organization administrators can move
sub-organization to another organization without delay, so
long as they have required permissions on both organizations.
There is no hard limit on the depth of hierarchy, but we recommend keeping
it ten or less.
Tenant management
Almost all resources on SPEKTRA Edge are managed based on Project. For example,
resources such as Devices and Pods are managed by being tied to a Project.
A grouping of resources commonly referred to as a “tenant” is called a Project
in SPEKTRA Edge.
Organization is a resource for organizing multiple projects, and a project
can be a child of Organization if necessary (projects that do not belong to
Organization can also exist). Since an Organization itself can also be a child
of an Organization, an Organization and a Project form a tree structure.
Projects are managed by the system or a higher level Organization
administrator. Users who are only authorized to operate on specific project
cannot perform operations such as creating the project itself.
Creating a project
To create a new Project in an Organization, a user must be assigned the role
containing permission services/iam.edgelq.com/permissions/projects.create.
Well-known roles that satisfy this condition are:
services/iam.edgelq.com/roles/scope-admin
because it is special Owner role (wildcard)
services/iam.edgelq.com/roles/admin-operator
administrator of SPEKTRA Edge project or organization (core services only).
To create a new project, use the cuttle iam create project command:
Options
Description
--multi-region-policy
Specify the region name to be used for multi-region. Specify eu1 for commercial environment and us-west2 for staging environment. This parameter is required.
--enabled-services
Specify “services/watchdog.edgelq.com” if you use Service Experience Insights (SEI).
cuttle iam create project \
--title "<project name for humans>"\
--organization $ORGANIZATION \
--multi-region-policy '{"enabledRegions": ["eu1"], "defaultControlRegion": "eu1"}'\
--enabled-services 'services/watchdog.edgelq.com'\
$PROJECT.
Role Bindings management
The RoleBinding is a resource used to assign privileges to specific users,
service accounts, or groups within a Project or Organization. Role Binding
itself is also a resource within a Project or Organization, and only users
with specific privileges (such as the
services/iam.edgelq.com/roles/scope-admin role) can manipulate Role Binding
resources.
The privileges granted by Role Binding are dictated by the Role resource.
For example, scope-admin is defined as the Role of an owner in an IAM scope
(project, organization, service). This role serves as a wildcard (all
permissions are granted within scope). Otherwise, in practice, a Role is
a collection of multiple Permissions, such as
services/iam.edgelq.com/permissions/roleBinding.create, that allows to
create RoleBinding (but within scope predicted by RoleBinding).
Permission is a resource that represents the permissions needed to perform
the actual operation. As in the previous example,
services/iam.edgelq.com/permissions/projects.create is the Permission
required to create a Project resource. Note that a Permission may be shared
by multiple Roles.
When a user performs an operation, they must possess the necessary Permission
to ultimately perform that operation. In practice, a user obtains Permission
through a Role by being given a Role Binding in a particular Project.
Note that single user may have multiple roles assigned. In this case,
the final Permission granted to the user will be the sum of the Permissions
derived from all assigned Roles.
Frequently used roles
Default service roles can be listed by using the cuttle iam list roles --service <service> command. It is advisable to add category filter.
For example, to see list of Core SPEKTRA Edge roles for users, we can execute
the following:
cuttle iam list roles --service iam.edgelq.com --filter \
'category IN ["USER","OWNER"]'
In SPEKTRA Edge core services (IAM, devices, applications, monitoring,
logging,…), we put all user-relevant roles in service iam.edgelq.com.
Third party services, including watchdog, have own list.
Currently, user-facing roles in SPEKTRA Edge core services are:
Roles
Description
services/iam.edgelq.com/roles/scope-admin
Users granted this role can perform all operations in the scope.
services/iam.edgelq.com/roles/admin-operator
Users granted this role is administrator of core SPEKTRA Edge services (excludes 3rd party)
services/iam.edgelq.com/roles/devices-operator
Users granted this role can perform all operations relevant for Edge devices and applications (pods)
services/iam.edgelq.com/roles/apps-operator
Users granted this role can perform all operations relevant for Edge applications (pods)
Creating Role Binding
Role assignments can be performed for users, user groups, and service
accounts using the Role Binding resource on IAM.
The following example command assigns devices-operator to a user with
an email address of example@edgelq.com. Note that the --member option
is in addition to the email address, and that user: is present as a prefix.
cuttle iam create role-binding \
--role services/iam.edgelq.com/roles/devices-operator \
--member "user:example@edgelq.com"
Note that the --member option prefix must be serviceAccount: for
assigning Role Binding to a service account or group: for a group.
When a Role Binding is created for a group, another one is automatically
created for each member in the group. Therefore, multiple Role Bindings
may be created even if only one is created from the user’s perspective.
Checking Role Bindings
A list of Role Bindings can be obtained with the following commands:
cuttle iam list role-bindings --organization $ORGANIZATION # for organizationcuttle iam list role-bindings --project $PROJECT # for projectcuttle iam list role-bindings --service $SERVICE # for service (available for service developers)
Checking your access
Check for projects to which you are authorized to access
The command that lists the Project resources present on the system
(cuttle iam list projects) cannot be executed by ordinary users for
security reasons. If you want to see the projects to which you are entitled,
use cuttle iam list-my projects (this command requires -o json,
use -o json in combination with jq).
cuttle iam list-my projects -o json | jq .
Check for organizations to which you are authorized to access
The command that lists the Organizations resources present on the system
(cuttle iam list organizations) cannot be executed by ordinary users for
security reasons, just like for projects. If you want to see the organizations
to which you are entitled, use cuttle iam list-my organizations
(this command requires -o json, use -o json in combination with jq).
cuttle iam list-my organizations -o json | jq .
Check the roles assigned to you
To check the roles you hold within a particular project, use the cuttle iam check-my role-bindings --project $PROJECT command (this command requires
-o json, use jq in combination).
We can use this method to check our RoleBindings in projects and services too.
It shows all RoleBindings, including inherited from parent organizations
(if exist) and system scope (Role
services/iam.edgelq.com/roles/edgelq-public is assigned to all on the system
level).
If RoleBinding has ownedObjects, it means we are owners of specified, and
we are granted all permissions. Sign - is a wildcard, so we are admins in
the whole organization, and we can do whatever we like.
Roles management with conditions
Understanding the Role and its Grants is crucial for effective and secure
management of authorization. In the simplest form, The role may look like
this:
Default roles are defined by each service. In core SPEKTRA Edge services,
we define all user-facing roles in service iam.edgelq.com.
Project/Organization admins can create their own roles if defualts are not
satisfying. Organization and Project administrator will need access to
a Service before they are able to create a role with that service permissions.
This will allow a user with a given email to view devices using BatchGet,
Get, and List methods in the project test.
However, we can also define some role that allows viewing only a specific
device:
This will restrict the user to a specific device:
projects/test/regions/us-west2/devices/specific-id. Note that in this
case “list” permission makes no sense. Be aware that subScope is APPENDED
to the RoleBinding parent name.
We can also give access to multiple devices if we modify the role:
The above role will restrict the user to see devices only if their
metadata.tags contain a specific tag. Service automatically can detect that
field path metadata.tags is an array of strings. If it was a single string,
then Role would allow us to see Devices where the tag is EQUAL to the specified value. If you combine ARRAY_OF_STRINGS scope param with the field path
containing the array, it will effectively work like CONTAINS ANY.
When it comes to resource field conditions, SPEKTRA Edge Service can
automatically detect referenced resources from specified requests. For
updates, it will verify two resource states: before and after the update
(the user could potentially modify the resource that would match the
required condition, but the previous state still matters).
There are more condition types than resource field types, for example,
we can reference requests directly:
Note that scope params also are used for condition values.
There is a method CreateActivityLogs, which request contains field path
activity_logs.service.name, where activity_logs is an array field!
This condition will ensure that for each record in activity_logs array
field path service.name has a specified value (both service and name fields
are single ones, not arrays).
Note this is a bit of a different behavior compared to resource field
conditions: For resources, if the field path contains an array, then it works
effectively as CONTAINS condition. In request conditions, each value must
satisfy the condition.
TODO: It was more convenient this way, but we will add “allValues” condition
separately.
There is also a possibility to use CEL conditions, where we can specify CEL
code to execute.
In this example, we allow direct access to internet quality metrics, so
a viewing party may request internet quality data per Internet Service
Provider for each Province in Japan, but we don’t allow for too narrow
filtering or grouping, which could potentially de-anonymize the data, like
the exact agent identifier or its location.
First, we need to create iam.edgelq.com/Condition resource:
name: services/watchdog.edgelq.com/conditions/anonymous-time-seriesdisplayName: Watchdog Anonymous Time Seriesdescription: >- Inspects Time Series requests to ensure that the user doesn't filter or retrieve private information
from probe metric labels like name, ID or precise geo-coordinatesexpression: | // restrict only Probe/Host Time Series
(!(request.body.filter.satisfies('resource.type="watchdog.edgelq.com/probe"')) ? true :
// reduce without identifiable information
(!request.body.filter.specifies("resource.labels.probe_id") &&
!request.body.filter.specifies("resource.labels.admin_area3_id") &&
!request.body.filter.specifies("resource.labels.admin_area3") &&
!request.body.filter.specifies("resource.labels.admin_area4_id") &&
!request.body.filter.specifies("resource.labels.admin_area4") &&
!request.body.filter.specifies("resource.labels.geohash4") &&
!request.body.filter.specifies("resource.labels.geohash5") &&
!request.body.filter.specifies("resource.labels.geohash6") &&
!request.body.filter.specifies("resource.labels.geohash7") &&
has(request.body.aggregation.cross_series_reducer) &&
request.body.aggregation.group_by_fields.all(gbf, gbf in [
"resource.labels.project_id",
"resource.labels.region_id",
"resource.labels.probe_group_id",
"resource.labels.continent",
"resource.labels.continent_id",
"resource.labels.country",
"resource.labels.country_id",
"resource.labels.admin_area1",
"resource.labels.admin_area1_id",
"resource.labels.admin_area2",
"resource.labels.admin_area2_id",
"resource.labels.geohash2",
"resource.labels.geohash3",
"resource.labels.asn",
"resource.labels.asn_name",
"metric.labels.target",
"metric.labels.target_id",
"metric.labels.target_group",
"metric.labels.target_group_id",
"metric.labels.target_category",
])))parameterDeclarations: []
In the future though (TODO), this condition will be possible to be specified
by inline conditions:
scopeParams:
- name: filterConditiontype: ARRAY_OF_STRINGSdefaultValues:
- resource.labels.probe_id - ... - resource.labels.geohash7- name: groupByProbeLabelstype: ARRAY_OF_STRINGSdefaultValues:
- resource.labels.project_id - ... - metric.labels.target_categorygrants:
# Access to time series for probes only - permissions:
- services/monitoring.edgelq.com/permissions/timeSeries.queryrequestFieldConditions:
- path: filterdoesSatisfy: 'resource.type="watchdog.edgelq.com/probe"' - path: filterdoesNotSpecify: "{filterCondition}" - path: aggregation.crossSeriesReducernotValue: REDUCE_NONE - path: aggregation.groupByvaluesAll: "{groupByProbeLabels}"# Allow for non-probe- permissions:
- services/monitoring.edgelq.com/permissions/timeSeries.queryrequestFieldConditions:
- path: filterdoesNotSatisfy: 'resource.type="watchdog.edgelq.com/probe"'
SubScopes for collection and single resource actions
When defining subscopes in roles, collection-type actions (list, watch
for plural!) must accept subScope without final collection name and
resource ID.
For example, all these grants are legal:
# Permissions for non-collection actions and specific device- subScope: regions/{region}/devices/{device}permissions:
- services/devices.edgelq.com/devices.get - services/devices.edgelq.com/devices.batchGet - services/devices.edgelq.com/devices.update - services/devices.edgelq.com/devices.delete# Permissions for collection actions and specific region (parent):- subScope: regions/{region}permissions:
- services/devices.edgelq.com/devices.list - services/devices.edgelq.com/devices.create# Permissions for non-collection actions for specific region- subScope: regions/{region}permissions:
- services/devices.edgelq.com/devices.get - services/devices.edgelq.com/devices.batchGet - services/devices.edgelq.com/devices.update - services/devices.edgelq.com/devices.delete
But these grants would be not working (illegal):
# Permissions for non-collection actions and specific device- subScope: regions/{region}/devices/{device}permissions:
- services/devices.edgelq.com/devices.list - services/devices.edgelq.com/devices.create
The reason is, that ListDevices and CreateDevice are collection types,
and they have “parent” resource field as the primary field for authorization.
Name pattern for device parent is projects/{project}/regions/{region},
therefore it will never match subScope. Keep this in mind when defining
subScopes!
Watch permissions
Permission for watches is a bit ambiguous. For example, we have two watch
requests for each resource type, for example for devices we can specify:
WatchDevice - for single device (singular resource method)
WatchDevices - for collection of devices (collection method)
However, both of these actions are represented by single permission:
services/devices.edgelq.com/devices.watch.
This means, that the following grants will apply to BOTH cases:
# Grants both WatchDevice and WatchDevices- permissions:
- services/devices.edgelq.com/devices.watch# Grants both WatchDevice and WatchDevices, as long as we are restricting# to a specific region:- subScope: regions/{region}permissions:
- services/devices.edgelq.com/devices.watch
However, if we specify subScope for a single device, then this grant will
only work for a single resource watch:
# Because we specified the device in sub-scope, this grant will never apply# to plural WatchDevices!- subScope: regions/{region}/devices/{device}permissions:
- services/devices.edgelq.com/devices.watch
Attach permissions
In the IAM, establishing relationships requires extra permissions -
so-called attach checks. For example, if we are updating the Device resource
from the devices.edgelq.com service, which has a reference to ServiceAccount
via the spec.service_account field (Service iam.edgelq.com), we need
two permissions:
Request field conditions do not make sense for attach checks - they apply
for a whole call only, affecting the main permission for a method
(device.update in this case).
Managing Users (User Resources)
SPEKTRA Edge manages users as independent resources. In other words, a user
is not tied to a specific Project or Organization, but exists on its own.
In other words, a user can “access” multiple Projects and Organizations,
but there is no concept of “belonging” to a Project or Organization.
The relationship between a user and a Project or Organization is done as
Role Binding.
Note that the SEI dashboard displays Role Binding resources as pseudo “users”
so that users can manage user privileges without understanding the detailed
IAM specifications. Note that deleting a “user” on the SEI dashboard does not
delete the user’s information from the system. What is deleted is the Role
Binding resource that the user holds on the relevant Project.
Users usually sign up using an individual email address (called a local user)
or register with the system using SSO, which is linked to a Google account,
etc. If SSO is used, the user’s registration information is handled by the SSO
provider. For local users, password registration and MFA settings are done on
SPEKTRA Edge.
The following operations on local users currently require a request to
the system administrator.
Reset MFA access settings
Complete deletion of user information
Service Account and Service Account Key
Service accounts are used to authenticate for M2M. For example, when accessing
SPEKTRA Edge’s API with scripts for API integration or various automation
tools, a service account can be used instead of a specific user. Service
accounts exist as Service Account resources on IAM.
For IAM authorization processing, service accounts are treated much the same
as regular users. In other words, in order to allow a service account to
access the API, it must be assigned a role. Please refer to the above
explanation for how to assign roles.
To create a new service account, use the cuttle iam create service-account
command.
cuttle iam create service-account --project $PROJECT \
$SVCACCNT_NAME
To actually use a service account, a service account key must be created
as a credential. Service account keys are created as child resources of
the service account. Multiple service account keys can be created for
a single service count.
The service account key supports multiple key algorithms. Normally,
a 2048-bit key pair using RSA (--algorithm RSA_2048) is used. This key pair
can be used for API calls with gRPC and authentication with the cuttle command.
On the other hand, if you want to use a short string used as a Bearer token in
the Authorization header of a REST request as a key, use the API KEY
(--algorithm API_KEY).
The following example shows how to generate a service account key using RSA.
When this command is executed, a file named credentails.json containing
the freshly generated key will be created in the directory where the command
was executed
The following command is an example of using the loaded service account in the
default context (if you are using a staging environment, etc., change it
accordingly). (The name of the context can be obtained with the
cuttle config context list command). For the account name, enter the email
address of the service account as it appears when the above command is read.
cuttle config context set default \
--account sa@exmaple.eu1.serviceaccounts.iam.edgelq.com
The following example shows how to generate a key using API_KEY.
In this case, the output is written as JSON to standard output, and the value
of the .apiKey field is the API key.
Groups
A group is a resource used when operating multiple users together.
For example, by assigning roles to groups, it is possible to omit assigning
roles to individual users.
A group consists of two resources. The primary resource is the Group resource
in IAM, which defines the group itself. To add users to a group, use the Group
Member resource, which is a child of the Group resource.
Groups can be created in the System, Organization, and Project scopes, but
each requires its own permissions.
The following command is an example of creating a group in the Project scope
and adding members; note that, as with Role Binding, the --member option
must be prefixed.
## create groupcuttle iam create group --project $PROJECT $GROUP_NAME
## add a membercuttle iam create group-member --project $PROJECT \
--group $GROUP_NAME --member "user:example@edgelq.com"
2.1 -
Understanding the iam.edgelq.com service APIv1, in proto package ntt.iam.v1.
Service iam.edgelq.com in version v1, proto package ntt.iam.v1
Here is the list of resources supported in IAM service APIv1:
Name of AttestationDomain When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
display_name
string
Display name
insecure_skip_manufacturer_ekcert_verification
bool
If false (default), attestation verifier SHALL check CA certificate chain up to the TPM chip manufacturers CA (defined in manufacturer_ca_issuers). This step is necessary to prove that the attestation request comes from a genuine TPM device, and not a TPM emulator. If true, attestation verifier SHALL skip EKcert verification - !!INSECURE!! Without this check, any keys may come from a simulated TPM on the device. An attacker may therefore forge any key they want. Therefore, this option should only be changed for development purposes.
Attestees wanting to attest under this attestation domain SHALL fulfill requirements of at least one of attestation policies defined in this list. Policies are checked in the order they appear on this list.
Attestation policy may require atestees pubkey to be present on enrollment_list.
AttestationDomain.Policy Message
Policy defines a singular attestation policy, that should match a
homogenous class of device (i.e. hardware and firmware configuration) in
the fleet.
Name
Type
Description
manufacturer_root_ca_certs_pem
string
List of acceptable manufacturer’s root CAs certs (in PEM format). To obtain such a cert, run something like: tpm2_getekcertificate -o cert.binopenssl x509 -inform der -in cert.bin -noout -text Then manually download certificate specified in Authority Information Access (AIA). Repeat the above openssl command on the newly downloadedfile (change the value of -in argument). Continue this until you reach a certificate which does not have AIA. It’s the root certificate. Convert it to PEM like so: openssl x509 -inform der -in root.crt -out root.pem Still, we need to encode newlines: awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' root.pem Then paste the output here. Note: multiple PEM certificates may be included here by simple means of concatenation.
require_enrollment
bool
If true, the attestee’s pubkey SHALL be present on this AttestationDomain’s enrollment list, otherwise fail the attestation.
List of expected PCR values. All PCRs on this list SHALL match exactly the PCRs provided by the atestee, otherwise the attestation SHALL be failed. The verifier SHALL perform sanity checks: PCR index/digest pairs are unique and the size of the list is sane (TODO). They can be read from TPM by running something like tpm2_pcrread.
AttestationDomain.EnrolledKey Message
EnrolledKey defines an enrolled key.
Name
Type
Description
pubkey_pem
string
PEM encoded EK pubkey. It can be read from TPM by running something like tpm2_createek -G rsa -u ek.pub -c key.ctx -f pem.
comment
string
User’s comments for this entry
GetAttestationDomainRequest Message
A request message of the GetAttestationDomain method.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListAttestationDomainsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total AttestationDomains 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.
WatchAttestationDomainRequest Message
A request message of the WatchAttestationDomain method.
Requested page size. Server may return fewer AttestationDomains than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to AttestationDomain that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to AttestationDomain that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchAttestationDomainsResponse Message
A response message of the WatchAttestationDomains method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All AttestationDomains 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (AttestationDomains 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteAttestationDomainRequest Message
A request message of the DeleteAttestationDomain method.
This will be used to set “sub” claim for attestation token. This “sub” should be compared to “sub” of JWT access token during validation. “Sub” comparison ties both tokens together and protects against theft/reuse of one of them by another service account.
For Intel TPMs, Intel hosts certificates at a public URL derived from the Public key. Clients or servers can perform an HTTP GET to this URL, and use ParseEKCertificate on the response body.
ChallengeFormat defines the method of generating identity activation challenge by the Verifier (server). It should affect the interpretation ChallengeResponse fields cred_encrypted_by_ekpub and secret_encrypted_by_cred. Attestor (client) is responsible for chosing the right format depending on TPM version and the presence of TrouSerS daemon.
Binary contents of /sys/kernel/security/tpm0/binary_bios_measurements
VerifyRequest.ChallengeResponse.Quote Message
Name
Type
Description
quote
bytes
TPMS_ATTEST (TSS_VALIDATION.Data or TSS_VALIDATION.rgbData) This contains PCR selection information for which the signature was calculated and other required data, like nonce.
signature
bytes
TSS_VALIDATION.ValidationData or TSS_VALIDATION.rgbValidationData
VerifyResponse Message
Response message for method [Verify][ntt.iam.v1.Verify]
Condition Resource represents additional that is not
built-in into the role. It can be attached to role grant
or RoleBinding (applies to all grants then).
Name of Condition When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
Typed parameters declarations. When binding a Condition passed parameters must correspond to declarations. DEPRECATED: Along with expression, CEL conditions are gone.
Condition.ParameterDeclaration Message
Parameter Declarations used
Name
Type
Description
key
string
Parameter Key - must be unique within condition. Defined parameter variables are accessible in condition expression via parameters.\<key\>, e.g.parameters.projectId
List of permissions excepted from this condition. By default, it contains: * services/iam.edgelq.com/permissions/attestationDomains.get * services/iam.edgelq.com/permissions/attestationDomains.verify * services/iam.edgelq.com/permissions/serviceAccounts.get * services/iam.edgelq.com/permissions/serviceAccountKeys.get * services/devices.edgelq.com/permissions/devices.list * services/devices.edgelq.com/permissions/provisioningPolicies.list * services/devices.edgelq.com/permissions/provisioningPolicies.provisionDeviceViaPolicy * services/devices.edgelq.com/permissions/provisioningPolicies.requestProvisioningApproval Those are necessary to obtain attestation token in the first place.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListConditionsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Conditions 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.
Requested page size. Server may return fewer Conditions than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Condition that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Condition that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Conditions 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Conditions 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateConditionRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
Name of Group When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
display_name
string
Display Name
description
string
Optional. Description of the Group
email
string
Unique email address for this [Group]. Generated based on its [name][ntt.iam.v1alpha2.Group.name] with following rules: 1. System group: {group_id}@groups.iam.edgelq.com 2. Organization group: {group_id}@{organization_id}.groups.iam.edgelq.com 3. Project group: {group_id}@{project_id}.groups.iam.edgelq.com This email can be used in [RoleBindings][ntt.iam.v1alpha2.RoleBinding.member] field. Note: Currently there is way to assign custom domain for [Organization] or [Project].
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListGroupsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Groups 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.
Requested page size. Server may return fewer Groups than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Group that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Group that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Groups 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Groups 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateGroupRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
Name of GroupMember When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
member
string
Format of the string is one of: - “allUsers” (anyone) - “allAuthenticatedUsers” (anyone logged in) - “user:admin.super@example.com” - “serviceAccount:device_agent@watchdog.serviceaccounts.iam.edgelq.com” - “group:nice.group@example.com”
parent_member
string
Internal field used by the IAM controller to know member ID (email) of a group this member belongs to.
min_ancestry_members
repeated string
Internal field used the IAM controller to know common ancestors if this group member is actually a copy from another group, which can happen if group is member in another group. List contains member IDs of other groups. Last element is always pointing to the group which made an actual copy and is responsible for deletion when needed. If particular group member is copied multiple times (which also can happen if group is indirect member via multiple memberships) then this field contains list only of common ancestors. This field has purpose of indicating owner (last item in this list) and to break cycles (previous elements). List is always empty if this group member is DIRECT member of this group and controller cannot modify it.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListGroupMembersRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total GroupMembers 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.
Requested page size. Server may return fewer GroupMembers than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to GroupMember that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to GroupMember that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchGroupMembersResponse Message
A response message of the WatchGroupMembers method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All GroupMembers 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (GroupMembers 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateGroupMemberRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteGroupMemberRequest Message
A request message of the DeleteGroupMember method.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListGroupMembersWithMembersRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total GroupMembers 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.
MemberAssignment Resource
MemberAssignment - it is an internal resource, not for end users. It tracks
REGIONAL RoleBindings per combination of scope/member for organization and
project RoleBindings.
If multiple RoleBindings point to same project/org and member, they will all
share single MemberAssignment.
MemberAssignment are managed by IAM Server, they are created/updated/deleted
in TX when RoleBinding is created/updated/deleted. MemberAssignment shares
same region as RoleBinding, otherwise tx-level synchronization would not be
possible.
For example: We create RoleBinding { project = “X”, member = “M”, role =
“r1”}. It will create MemberAssignment { scope = “projects/x”, member = “M”
}. If another RoleBinding with same project and member would be created, then
no additional MemberAssignment is created. When last RoleBinding per
scope/member is deleted, MemberAssignment is deleted.
Not all RoleBindings however have MemberAssignment instances. We track only
organization and project RoleBindings! Therefore, system and service
RoleBindings don’t get their MemberAssignment. However, there is some caveat
about this…
When lets say project enables Service “S”, and we create RoleBinding WHERE:
{project = “X”, member = “M”, role = “r1”, metadata.services.allowedServices
CONTAINS “S”}, then special MemberAssignment is created with params: { scope
= “services/S”, member = “M” }, apart of { scope = “projects/x”, member = “M”
} mentioned previously. We create those service MemberAssignment only for 3rd
party services (non core EdgeLQ), so we know if User/ServiceAccount is
eligible user of some service.
Main task of MemberAssignment is to track participations of all users/service
accounts in projects/organizations. We use it for things like ListMyProjects,
ListMyOrganizations. We also use those special service MemberAssignment
instances to track who is using Service by proxy of Project/Organization!
With this we can forbid/allow specific users using particular service.
System RoleBindings are managed only by EdgeLQ admins for internal cases, and
we dont need this tracking.
Name of MemberAssignment First letter is source indicator (p, o, s for project, org, service). Then we have proper scope identifier (projectId etc), then member identifier (like user:$EMAIL).
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
Points to Organization/Project of RoleBindings, OR service for those special MemberAssignments. It is already part of name, but we track in field for filter purpose.
scope_title
string
Populated for organization/project scopes. Skipped for service ones.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListMemberAssignmentsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total MemberAssignments 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.
WatchMemberAssignmentRequest Message
A request message of the WatchMemberAssignment method.
Requested page size. Server may return fewer MemberAssignments than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to MemberAssignment that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to MemberAssignment that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchMemberAssignmentsResponse Message
A response message of the WatchMemberAssignments method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All MemberAssignments 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (MemberAssignments 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteMemberAssignmentRequest Message
A request message of the DeleteMemberAssignment method.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
Name of Organization When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
Business tier applicable for all allowed services. This value defines: * Default business tier for child projects (if not defined on creation) * Default business tier to this organization.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListOrganizationsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Organizations 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.
WatchOrganizationRequest Message
A request message of the WatchOrganization method.
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_size
int32
Requested page size. Server may return fewer Organizations than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Organization that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Organization that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchOrganizationsResponse Message
A response message of the WatchOrganizations method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Organizations 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Organizations 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateOrganizationRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteOrganizationRequest Message
A request message of the DeleteOrganization method.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token identifying a page of results the server should return. Typically, this is the value of [ListOrganizationsResponse.next_page_token][ntt.iam.v1alpha2.ListOrganizationsResponse.next_page_token]
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A FieldMask used to filter response fields. When present, only requested fields will be present in each response item. Omitting field_mask results will cause response items to contain all present fields.
include_paging_info
bool
ListMyOrganizationsResponse Message
Response message for method
[ListMyOrganizations][ntt.iam.v1.ListMyOrganizations]
A token to retrieve previous page of results. Pass this value in the [ListOrganizationsRequest.page_token][ntt.iam.v1alpha2.ListOrganizationsRequest.page_token]
A token to retrieve next page of results. Pass this value in the [ListOrganizationsRequest.page_token][ntt.iam.v1alpha2.ListOrganizationsRequest.page_token]
total_count
int32
cursor_offset
int32
SearchMyOrganizationsRequest Message
Request message for method
[SearchMyOrganizations][ntt.iam.v1.SearchMyOrganizations]
Name
Type
Description
page_size
int32
Requested page size. Server may return fewer Organizations than requested. If unspecified, server will pick an appropriate default.
A token identifying a page of results the server should return. Typically, this is the value of [SearchOrganizationsResponse.next_page_token][ntt.iam.v1alpha2.SearchOrganizationsResponse.next_page_token]
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A FieldMask used to filter response fields. When present, only requested fields will be present in each response item. Omitting field_mask results will cause response items to contain all present fields.
include_paging_info
bool
phrase
string
SearchMyOrganizationsResponse Message
Response message for method
[SearchMyOrganizations][ntt.iam.v1.SearchMyOrganizations]
A token to retrieve previous page of results. Pass this value in the [SearchOrganizationsRequest.page_token][ntt.iam.v1alpha2.SearchOrganizationsRequest.page_token]
A token to retrieve next page of results. Pass this value in the [SearchOrganizationsRequest.page_token][ntt.iam.v1alpha2.SearchOrganizationsRequest.page_token]
Name of OrganizationInvitation When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListOrganizationInvitationsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total OrganizationInvitations 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.
WatchOrganizationInvitationRequest Message
A request message of the WatchOrganizationInvitation method.
Requested page size. Server may return fewer OrganizationInvitations than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to OrganizationInvitation that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to OrganizationInvitation that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchOrganizationInvitationsResponse Message
A response message of the WatchOrganizationInvitations method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All OrganizationInvitations 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (OrganizationInvitations 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteOrganizationInvitationRequest Message
A request message of the DeleteOrganizationInvitation method.
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListPermissionsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Permissions 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.
Requested page size. Server may return fewer Permissions than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Permission that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Permission that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchPermissionsResponse Message
A response message of the WatchPermissions method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Permissions 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Permissions 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdatePermissionRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
Name of Project When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListProjectsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Projects 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.
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_size
int32
Requested page size. Server may return fewer Projects than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Project that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Project that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Projects 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Projects 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateProjectRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token identifying a page of results the server should return. Typically, this is the value of [ListProjectsResponse.next_page_token][ntt.iam.v1.ListMyProjectsResponse.next_page_token]
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A FieldMask used to filter response fields. When present, only requested fields will be present in each response item. Omitting field_mask results will cause response items to contain all present fields.
include_paging_info
bool
ListMyProjectsResponse Message
Response message for method [ListMyProjects][ntt.iam.v1.ListMyProjects]
A token identifying a page of results the server should return. Typically, this is the value of [SearchProjectsResponse.next_page_token][ntt.iam.v1.SearchMyProjectsResponse.next_page_token]
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A FieldMask used to filter response fields. When present, only requested fields will be present in each response item. Omitting field_mask results will cause response items to contain all present fields.
include_paging_info
bool
phrase
string
SearchMyProjectsResponse Message
Response message for method [SearchMyProjects][ntt.iam.v1.SearchMyProjects]
A token to retrieve previous page of results. Pass this value in the [SearchMyProjectsRequest.page_token][ntt.iam.v1.SearchMyProjectsRequest.page_token]
A token identifying a page of results the server should return. Typically, this is the value of [ListProjectsResponse.next_page_token][ntt.iam.v1.ListMyServiceProjectsResponse.next_page_token]
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A FieldMask used to filter response fields. When present, only requested fields will be present in each response item. Omitting field_mask results will cause response items to contain all present fields.
ListMyServiceProjectsResponse Message
Response message for method
[ListMyServiceProjects][ntt.iam.v1.ListMyServiceProjects]
A token to retrieve previous page of results. Pass this value in the [ListMyServiceProjectsRequest.page_token][ntt.iam.v1.ListMyServiceProjectsRequest.page_token]
A token to retrieve next page of results. Pass this value in the [ListMyServiceProjectsRequest.page_token][ntt.iam.v1.ListMyServiceProjectsRequest.page_token]
SetupServiceProjectRequest Message
Request message for method
[SetupServiceProject][ntt.iam.v1.SetupServiceProject]
Default business tier to apply to a service project - it determines business tier for core edgelq services, influencing assigned limits. By default XSMALL will be set (UNDEFINED is replaced with XSMALL). If limits are not needed at all for core edgelq services, it is recommended to opt out from them using core_edgelq_service_opt_outs param.
Optional list of core edgelq services which are not needed for this service project. As of now, it has effect on devices/applications. If they are added to this list, then no limits are assigned for resources in those services.
description
string
Project Description
ReserveServiceNameRequest Message
Request message for method
[ReserveServiceName][ntt.iam.v1.ReserveServiceName]
Service account name that will be an admin for this Service. If it does not exist, it will be created. If exists this service account will have right to create reserved service.
Optional admin account key - must be skipped if admin_account already exists and has key already known by user. If provided, then new ServiceAccountKey will be created. If public key was provided in request, then server will use it. Otherwise it will generate private/public pair and provide both in response. If key already exists and admin_key was provided, AlreadyExists will be returned.
Optional Role admin_account will have in the service project. When service is eventually created, admin_account will have full ownership of the Service. However, it wont be able to access Service Project freely - by default minimal role is assigned, that allows to send usage metrics (for example). In some cases it may be necessary for admin_account to have larger access to the service project, for example for devices management.
ReserveServiceNameResponse Message
Response message for method
[ReserveServiceName][ntt.iam.v1.ReserveServiceName]
Service account admin credentials are provided if admin_key was populated in the request object. It will have private key data if public key was not provided in the request admin_key. JSON representation of this object must be saved by the caller as ntt-credentials.json file - it will be required during actual application deployment. If user generated private/public pair themselves (and proved public in request object), before saving JSON user will need to populate private key string themselves in the final file. In case of lost credentials, user will need to send DeleteServiceAccountKey and CreateServiceAccountKey requests for admin ServiceAccount - and craft another credentials.
DeleteServiceReservationRequest Message
Response message for method
[DeleteServiceReservation][ntt.iam.v1.DeleteServiceReservation]
Name of ProjectInvitation When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
project_display_name
string
project display name (auto-generated). Present here as user doesn’t have yet permission to fetch related project.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListProjectInvitationsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total ProjectInvitations 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.
WatchProjectInvitationRequest Message
A request message of the WatchProjectInvitation method.
Requested page size. Server may return fewer ProjectInvitations than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to ProjectInvitation that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to ProjectInvitation that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchProjectInvitationsResponse Message
A response message of the WatchProjectInvitations method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All ProjectInvitations 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (ProjectInvitations 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteProjectInvitationRequest Message
A request message of the DeleteProjectInvitation method.
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
List of permissions granted per each object prefix.
owned_objects
repeated string
List of owned objects templates - during binding of a role, each owned object specified in this role is computed against scope params from role binding to evaluate final owned objects. For example, if owned_objects in Role contains value “regions/{region}/devices/{device}, and RoleBinding specifies region=useast and device=d1, then final owned_object will be regions/useast/devices/d1. Ownership also would include any potential child resources of this device. Note that RoleBinding scope (project, organization, service) will still be prepended before each owned object to form fully qualified name of the owned resource. Owned objects may contain wildcards: ‘-’. As a special case, if owned objects contain string with only single character: ‘-’, then it means member of the role binding is considered as full owner of the scope. This field cannot be modified after role creation.
List of services used by this role. It is being detected by the usage of permissions in grants - or if it has owned objects, it contains all services used by parent service.
rb_spec_generation
int64
Internal field used by controller to ensure role bindings are in sync with role updates.
Optional prefix that is APPENDED to the scope inherited from RoleBinding (project, organization, service). If not specified, then scope is equal to the one from RoleBinding.
List of resource field conditions. Values for conditions are extracted from assigned RoleBinding (scope params). Resource extraction is following: - If request has resource body, then it is used. - If request has resource name, then resource is extracted from database and its fields are used. - If request has filter object applicable for collection requests (like list, collection watch…), then service uses resource field paths and values extracted from filter conditions.
List of executable conditions to be applied in order to validate this grant. Note that executable conditions are also specified in RoleBinding, as often it is not possible to define all params in the Role itself, before binding. Final executable conditions, in RoleBinding context, are computed in the following way: - Executable conditions from RoleBinding and Role are matched by condition reference. - Params are merged FROM condition in Role into condition in RoleBinding. It is expected that Role defined “common” params and RoleBinding defines remaining ones.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListRolesRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Roles 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.
Requested page size. Server may return fewer Roles than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Role that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Role that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Roles 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Roles 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateRoleRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
Category points to the intended role use. It may restrict how RoleBindings
are created.
Name
Description
UNDEFINED
Undefined, not allowed.
PUBLIC
Role is intended for public access. Restricted members: allUsers, allAuthenticatedUsers. No RoleBinding scope restrictions.
INTERNAL
Role is for internal purposes, defined by a parent service. There are no restrictions to scope and members.
OWNER
Special owner role - reserved to “scope-admin” role in IAM. It is de facto reserved category for EdgeLQ core services only, but is also kind of USER type.
SERVICE
Role relevant for Service Management, check display name and/or description for more information.
AGENT
Role for various edge agents. Restricted to project scope and service account member types. Cannot be assigned to groups.
USER
Role relevant for users, provides an access to various actions on organization/project level. Typically should be given to users, but ServiceAccount is also possible. Can be assigned to group members.
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
Binding members Format of the string is one of: - “allUsers” (anyone) - “allAuthenticatedUsers” (anyone logged in from handling service point of view) - “user:admin.super@example.com” - “serviceAccount:device_agent@watchdog.serviceaccounts.iam.edgelq.com” - “group:nice.group@example.com” - “domain:example.com” (anyone with exact email domain)
optional executable conditions to be added to the role binding. They are matched with the executable conditions in a role grants by condition reference. If there is condition defined in RoleBinding, but not in any role grant, then executable condition is applied to all role grants.
owned_objects
repeated string
List of owned objects WITHIN role binding scope - for example if role binding is a child of project and owner_objects contain some device, member has all possible permissions for this device in project, regardless of method. In case ownership is for whole role binding scope, it will contain “-” string. This is computed based on a role with wildcard grants.
member_type
string
Member type, its prefix from member before ‘:’ rune, fo example “user”. If member has no ‘:’ (like allUsers), then it will contain same value.
Internal field used by IAM controller to note parent role binding from Parent Organization type. It is much different compared to “ancestry_path”, we just need direct parent. This is because it is simpler - controller for this inheritance does not need full ancestry path for loop detection. Groups are complicated and it is legal for two groups containing each other as members. But organization ancestry path does not allow loops, so we can afford simple field!
spec_generation
int64
Internal field used to synchronize role binding with role. This value increases when we spec in a role changes in a way requiring role binding resynchronization.
has_owned_objects
bool
Internal field indicating if role binding has owned objects. It is used for filtering, as its not possible to filter by len(owned_objects) > 0
disable_for_child_scopes
bool
If true, then this RoleBinding DOES NOT apply to child entities. TODO: For now IAM Server decides if this RB is not assignable, consider opening this.
RoleBinding.Parent Message
Provides information about inheritance of this role binding - if it was
created from another role binding.
Role bindings which have group as member have child for each service account and user in that group. All those role bindings have one common parent pointing at group role binding
member
string
Member of the parent role binding
CheckMyRoleBindingsRequest Message
Request message for method
[CheckMyRoleBindings][ntt.iam.v1.CheckMyRoleBindings]
Scope determines where roles should be looked from - its either system, service, project or organization scope. However, if it contains an organization or project, CheckMyRoles will perform check on all ancestry path (parent organizations).
Optional additional filter to apply on role bindings returned Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
custom_field_mask
.google.protobuf.FieldMask
Custom field mask to apply on role bindings. By default, is none is specified, following is used: [ “name”, “role”, “scope_params”, “executable_conditions”, “owned_objects” ].
CheckMyRoleBindingsResponse Message
Response message for method [CheckMyRoles][ntt.iam.v1.CheckMyRoles]
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListRoleBindingsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total RoleBindings 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.
Requested page size. Server may return fewer RoleBindings than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to RoleBinding that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to RoleBinding that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchRoleBindingsResponse Message
A response message of the WatchRoleBindings method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All RoleBindings 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (RoleBindings 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateRoleBindingRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteRoleBindingRequest Message
A request message of the DeleteRoleBinding method.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListRoleBindingsWithMembersRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total RoleBindings 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.
Name of ServiceAccount 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,55}[a-z0-9]
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListServiceAccountsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total ServiceAccounts 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.
WatchServiceAccountRequest Message
A request message of the WatchServiceAccount method.
Requested page size. Server may return fewer ServiceAccounts than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to ServiceAccount that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to ServiceAccount that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchServiceAccountsResponse Message
A response message of the WatchServiceAccounts method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All ServiceAccounts 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (ServiceAccounts 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateServiceAccountRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteServiceAccountRequest Message
A request message of the DeleteServiceAccount method.
Optional admin account key - must be skipped if admin_account already exists and has key already known by user. If provided, then new ServiceAccountKey will be created. If public key was provided in request, then server will use it. Otherwise it will generate private/public pair and provide both in response. If admin_key already exists and is still provided in request, AlreadyExists will be returned.
Optional Role admin_account will have in the service project. When service is eventually created, admin_account will have full ownership of the Service. However, it wont be able to access Service Project freely - by default minimal role is assigned, that allows to send usage metrics (for example). In some cases it may be necessary for admin_account to have larger access to the service project, for example for devices management.
Service account admin credentials are provided if admin_key was populated in the request object. It will have private key data if public key was not provided in the request admin_key. JSON representation of this object must be saved by the caller as ntt-credentials.json file - it will be required during actual regional application deployment. If user generated private/public pair themselves (and proved public in request object), before saving JSON user will need to populate private key string themselves in the final file. In case of lost credentials, user will need to send DeleteServiceAccountKey and CreateServiceAccountKey requests for admin ServiceAccount - and craft another credentials.
ServiceAccount Enumerations
Here is the list of ServiceAccount resource enumerations:
Agent indicates that ServiceAccount is associated with some single specific resource, like devices.edgelq.com/Device. Agent Service Accounts are automatically sharded and should ideally use dedicated server instances holding their shard. Agent type accounts are allowed to have only RoleBindings in their projects. They cannot have domain role bindings. They can still benefit from AllUsers/AllAuthenticatedUsers role bindings though.
Name of ServiceAccountKey When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
display_name
string
Display name
description
string
Optional. Description of the key
public_key_data
string
Public key contents
private_key_data
string
The private key of the pair. This field is only provided in CreateServiceAccountKey responses. Private keys are NOT stored on the server.
api_key
string
Api key is set if algorithm is equal to API_KEY and provided in CreateServiceAccountKey responses. They are not stored on the server, so caller is obliged to remember its value. If lost, its is necessary to create new key. Api key must be used in authorization header token when making request: - Authorization: “Bearer $API_KEY” Example for curl: $ curl -X GET -H “Authorization: Bearer $API_KEY” -s $URL
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListServiceAccountKeysRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total ServiceAccountKeys 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.
WatchServiceAccountKeyRequest Message
A request message of the WatchServiceAccountKey method.
Requested page size. Server may return fewer ServiceAccountKeys than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to ServiceAccountKey that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to ServiceAccountKey that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchServiceAccountKeysResponse Message
A response message of the WatchServiceAccountKeys method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All ServiceAccountKeys 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (ServiceAccountKeys 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteServiceAccountKeyRequest Message
A request message of the DeleteServiceAccountKey method.
Name of User When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListUsersRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Users 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.
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_size
int32
Requested page size. Server may return fewer Users than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to User that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to User that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Users 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Users 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateUserRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
New version of AttestationDomain or masked difference, depending on mask_changes instrumentation of issued [WatchAttestationDomainRequest] or [WatchAttestationDomainsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified AttestationDomain. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying AttestationDomain new index in resulting query view.
AttestationDomainChange.Removed Message
Removed is returned when AttestationDomain is deleted or leaves Query view
New version of Condition or masked difference, depending on mask_changes instrumentation of issued [WatchConditionRequest] or [WatchConditionsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Condition. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Condition new index in resulting query view.
ConditionChange.Removed Message
Removed is returned when Condition is deleted or leaves Query view
Reference to Condition which may also be parameterized
params
.google.protobuf.Struct
Parameters in string form. Parameters must match [declarations][ntt.iam.v1.Condition.parameter_declarations] TODO: Only used by deprecated CEL conditions.
GetPrincipalRequest Message
Request message for method [GetPrincipal][ntt.iam.v1.GetPrincipal]
New version of Group or masked difference, depending on mask_changes instrumentation of issued [WatchGroupRequest] or [WatchGroupsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Group. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Group new index in resulting query view.
GroupChange.Removed Message
Removed is returned when Group is deleted or leaves Query view
New version of GroupMember or masked difference, depending on mask_changes instrumentation of issued [WatchGroupMemberRequest] or [WatchGroupMembersRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified GroupMember. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying GroupMember new index in resulting query view.
GroupMemberChange.Removed Message
Removed is returned when GroupMember is deleted or leaves Query view
List of groups where invitee should join after accepting invitation
expiration_date
.google.protobuf.Timestamp
Expiration date
extras
map<string, string>
Extra custom fields to further customize invitation experience. Fields should be agreed between sender (usually UI) and documented in the template of email service provider.
New version of MemberAssignment or masked difference, depending on mask_changes instrumentation of issued [WatchMemberAssignmentRequest] or [WatchMemberAssignmentsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified MemberAssignment. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying MemberAssignment new index in resulting query view.
MemberAssignmentChange.Removed Message
Removed is returned when MemberAssignment is deleted or leaves Query view
List of users. May contain more than 1 item, if there are multiple users sharing same email. Array may be empty if member is for service account or group type, or if no user exists with specified email.
List of service accounts. It will be empty if member matches user or group type, or if no matching ServiceAccount was found. Length of this array is from 0 to 1.
List of groups. It will be empty if member matches user or service account type, or if no matching Group was found. Length of this array is from 0 to 1.
MembersMasks Message
MembersMasks determines what fields should be obtained for matching
members to GroupMembers.
New version of Organization or masked difference, depending on mask_changes instrumentation of issued [WatchOrganizationRequest] or [WatchOrganizationsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Organization. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Organization new index in resulting query view.
OrganizationChange.Removed Message
Removed is returned when Organization is deleted or leaves Query view
Integer specifying removed Organization index. Not populated in stateless watch type.
OrganizationInvitationChange Message
OrganizationInvitationChange is used by Watch notifications Responses to
describe change of single OrganizationInvitation One of Added, Modified,
Removed
New version of OrganizationInvitation or masked difference, depending on mask_changes instrumentation of issued [WatchOrganizationInvitationRequest] or [WatchOrganizationInvitationsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified OrganizationInvitation. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying OrganizationInvitation new index in resulting query view.
OrganizationInvitationChange.Removed Message
Removed is returned when OrganizationInvitation is deleted or leaves Query
view
New version of Permission or masked difference, depending on mask_changes instrumentation of issued [WatchPermissionRequest] or [WatchPermissionsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Permission. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Permission new index in resulting query view.
PermissionChange.Removed Message
Removed is returned when Permission is deleted or leaves Query view
New version of Project or masked difference, depending on mask_changes instrumentation of issued [WatchProjectRequest] or [WatchProjectsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Project. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Project new index in resulting query view.
ProjectChange.Removed Message
Removed is returned when Project is deleted or leaves Query view
New version of ProjectInvitation or masked difference, depending on mask_changes instrumentation of issued [WatchProjectInvitationRequest] or [WatchProjectInvitationsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified ProjectInvitation. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying ProjectInvitation new index in resulting query view.
ProjectInvitationChange.Removed Message
Removed is returned when ProjectInvitation is deleted or leaves Query view
New version of RoleBinding or masked difference, depending on mask_changes instrumentation of issued [WatchRoleBindingRequest] or [WatchRoleBindingsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified RoleBinding. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying RoleBinding new index in resulting query view.
RoleBindingChange.Removed Message
Removed is returned when RoleBinding is deleted or leaves Query view
New version of Role or masked difference, depending on mask_changes instrumentation of issued [WatchRoleRequest] or [WatchRolesRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Role. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Role new index in resulting query view.
RoleChange.Removed Message
Removed is returned when Role is deleted or leaves Query view
New version of ServiceAccount or masked difference, depending on mask_changes instrumentation of issued [WatchServiceAccountRequest] or [WatchServiceAccountsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified ServiceAccount. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying ServiceAccount new index in resulting query view.
ServiceAccountChange.Removed Message
Removed is returned when ServiceAccount is deleted or leaves Query view
New version of ServiceAccountKey or masked difference, depending on mask_changes instrumentation of issued [WatchServiceAccountKeyRequest] or [WatchServiceAccountKeysRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified ServiceAccountKey. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying ServiceAccountKey new index in resulting query view.
ServiceAccountKeyChange.Removed Message
Removed is returned when ServiceAccountKey is deleted or leaves Query view
Integer specifying removed ServiceAccountKey index. Not populated in stateless watch type.
ServiceBusinessTier Message
ServiceBusinessTier binds specific service with specific business tier.
It may be useful if two services use different tier in one organizational
entity (project or organization).
Entity tier value for given service. It may be also set to UNDEFINED, if this service is not supposed to be used at all for given entity. This way we can opt out from core edgelq services if needed.
ServiceErrors Message
ServiceErrors is generic container wrapping errors with services.
New version of User or masked difference, depending on mask_changes instrumentation of issued [WatchUserRequest] or [WatchUsersRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified User. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying User new index in resulting query view.
UserChange.Removed Message
Removed is returned when User is deleted or leaves Query view
BusinessTier indicates size of organizational entity (project or
organization). Size-type sizes are used in core edgelq services,
SKU-types can be used optionally by 3rd party services.
Name
Description
UNDEFINED
LARGE
MEDIUM
SMALL
XSMALL
SKU0
SKU1
SKU2
SKU3
SKU4
SKU5
SKU6
SKU7
SKU8
SKU9
SKU10
SKU11
SKU12
DigestAlg Enumeration
Name
Description
SHA1
SHA256
Invitation.State Enumeration
Invitation FSM States
Name
Description
STATE_UNSPECIFIED
PENDING
ACCEPTED
DECLINED
EXPIRED
ScopeParam.FromValue.Source Enumeration
Source indicates which dynamic object is used to extract value from.
Name
Description
UNDEFINED
PRINCIPAL_METADATA
Object from which value is taken is metadata. Valid for Service Accounts and user types.
PRINCIPAL_USER
Object from which value is taken is User principal. If principal executing an Action is not a User, then value will be empty.
PRINCIPAL_SVCACC
Object from which value is taken is ServiceAccount principal. If principal executing an Action is not a ServiceAccount, then value will be empty.
TSPI_EKBLOB is a TPM1.2 challenge format accepted by TrouSerS daemon’s Tspi_TPM_ActivateIdentity function. As far as I can tell, it’s not documented except in the code. Returned primitives are of type TPM12_EKBLOB (with TPM_EK_BLOB_ACTIVATE) and bytes. Reference implementation: github.com/google/go-attestation@v0.3.2/attest/activation.go:generateChallengeTPM12, which uses github.com/google/go-tspi@v0.3.0/verification/verification.go:GenerateChallengeEx
2.2 -
Understanding the iam.edgelq.com service APIv1alpha2, in proto package ntt.iam.v1alpha2.
Service iam.edgelq.com in version v1alpha2, proto package ntt.iam.v1alpha2
Here is the list of resources supported in IAM service APIv1alpha2:
Name of AttestationDomain 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]
display_name
string
Display name
insecure_skip_manufacturer_ekcert_verification
bool
If false (default), attestation verifier SHALL check CA certificate chain up to the TPM chip manufacturers CA (defined in manufacturer_ca_issuers). This step is necessary to prove that the attestation request comes from a genuine TPM device, and not a TPM emulator. If true, attestation verifier SHALL skip EKcert verification - !!INSECURE!! Without this check, any keys may come from a simulated TPM on the device. An attacker may therefore forge any key they want. Therefore, this option should only be changed for development purposes.
Attestees wanting to attest under this attestation domain SHALL fulfill requirements of at least one of attestation policies defined in this list. Policies are checked in the order they appear on this list.
Attestation policy may require atestees pubkey to be present on enrollment_list.
AttestationDomain.Policy Message
Policy defines a singular attestation policy, that should match a
homogenous class of device (i.e. hardware and firmware configuration) in
the fleet.
Name
Type
Description
manufacturer_root_ca_certs_pem
string
List of acceptable manufacturer’s root CAs certs (in PEM format). To obtain such a cert, run something like: tpm2_getekcertificate -o cert.binopenssl x509 -inform der -in cert.bin -noout -text Then manually download certificate specified in Authority Information Access (AIA). Repeat the above openssl command on the newly downloadedfile (change the value of -in argument). Continue this until you reach a certificate which does not have AIA. It’s the root certificate. Convert it to PEM like so: openssl x509 -inform der -in root.crt -out root.pem Still, we need to encode newlines: awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' root.pem Then paste the output here. Note: multiple PEM certificates may be included here by simple means of concatenation.
require_enrollment
bool
If true, the attestee’s pubkey SHALL be present on this AttestationDomain’s enrollment list, otherwise fail the attestation.
List of expected PCR values. All PCRs on this list SHALL match exactly the PCRs provided by the atestee, otherwise the attestation SHALL be failed. The verifier SHALL perform sanity checks: PCR index/digest pairs are unique and the size of the list is sane (TODO). They can be read from TPM by running something like tpm2_pcrread.
AttestationDomain.EnrolledKey Message
EnrolledKey defines an enrolled key.
Name
Type
Description
pubkey_pem
string
PEM encoded EK pubkey. It can be read from TPM by running something like tpm2_createek -G rsa -u ek.pub -c key.ctx -f pem.
comment
string
User’s comments for this entry
GetAttestationDomainRequest Message
A request message of the GetAttestationDomain method.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListAttestationDomainsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total AttestationDomains 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.
WatchAttestationDomainRequest Message
A request message of the WatchAttestationDomain method.
Requested page size. Server may return fewer AttestationDomains than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to AttestationDomain that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to AttestationDomain that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchAttestationDomainsResponse Message
A response message of the WatchAttestationDomains method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All AttestationDomains 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (AttestationDomains 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteAttestationDomainRequest Message
A request message of the DeleteAttestationDomain method.
This will be used to set “sub” claim for attestation token. This “sub” should be compared to “sub” of JWT access token during validation. “Sub” comparison ties both tokens together and protects against theft/reuse of one of them by another service account.
For Intel TPMs, Intel hosts certificates at a public URL derived from the Public key. Clients or servers can perform an HTTP GET to this URL, and use ParseEKCertificate on the response body.
ChallengeFormat defines the method of generating identity activation challenge by the Verifier (server). It should affect the interpretation ChallengeResponse fields cred_encrypted_by_ekpub and secret_encrypted_by_cred. Attestor (client) is responsible for chosing the right format depending on TPM version and the presence of TrouSerS daemon.
Binary contents of /sys/kernel/security/tpm0/binary_bios_measurements
VerifyRequest.ChallengeResponse.Quote Message
Name
Type
Description
quote
bytes
TPMS_ATTEST (TSS_VALIDATION.Data or TSS_VALIDATION.rgbData) This contains PCR selection information for which the signature was calculated and other required data, like nonce.
signature
bytes
TSS_VALIDATION.ValidationData or TSS_VALIDATION.rgbValidationData
VerifyResponse Message
Response message for method [Verify][ntt.iam.v1alpha2.Verify]
Condition Resource provides an extension to primary RBAC model, which allows
customizable (scriptable) access. Conditions can only be used to further
limit (or narrow) access compared to standard (or unconditional) RBAC.
Usage:
Condition is created with expression and parameter declarations.
Consider this a definition, which will be later “bound”.
When creating a [RoleBinding] pass [ConditionBinding] with reference to
[Condition] and bound parameters.
When checking for principal access (anonymous, user, service account), for
RoleBinding to grant permissions included in bound [Role], both RBAC and
Condition expression evaluation must grant access.
Name of Condition When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-zA-Z0-9_.-]{1,128}
display_name
string
Display Name
description
string
Description
expression
string
Condition expression in Google CEL, syntax, e.g. resource.name == "projects/xyz/instances/abc" Accessible parameters:
Parameter Key - must be unique within condition. Defined parameter variables are accessible in condition expression via parameters.\<key\>, e.g.parameters.projectId
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListConditionsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Conditions 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.
Requested page size. Server may return fewer Conditions than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Condition that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Condition that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Conditions 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Conditions 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateConditionRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
Allows grouping members like:
[ServiceAccounts][ntt.iam.v1alpha2.ServiceAccount],
[Users][ntt.iam.v1alpha2.User], or other [Groups][ntt.iam.v1alpha2.Group] by
managing [memberships][ntt.iam.v1alpha2.GroupMember].
Groups can then be used to simplify access management by referring to them
through via [email][ntt.iam.v1alpha2.Group.email] in
[RoleBindings][ntt.iam.v1alpha2.RoleBinding.member].
Name of Group 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]
display_name
string
Display Name
email
string
Unique email address for this [Group]. Generated based on its [name][ntt.iam.v1alpha2.Group.name] with following rules: 1. System group: {group_id}@groups.iam.edgelq.com 2. Organization group: {group_id}@{organization_id}.groups.iam.edgelq.com 3. Project group: {group_id}@{project_id}.groups.iam.edgelq.com This email can be used in [RoleBindings][ntt.iam.v1alpha2.RoleBinding.member] field. Note: Currently there is way to assign custom domain for [Organization] or [Project].
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListGroupsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Groups 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.
Requested page size. Server may return fewer Groups than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Group that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Group that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Groups 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Groups 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateGroupRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
Name of GroupMember 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]
member
string
Format of the string is one of: - “allUsers” (anyone) - “allAuthenticatedUsers” (anyone logged in) - “user:admin.super@example.com” - “serviceAccount:device_agent@watchdog.serviceaccounts.iam.edgelq.com” - “group:nice.group@example.com”
parent_member
string
Internal field used by the IAM controller to know member ID (email) of a group this member belongs to.
min_ancestry_members
repeated string
Internal field used the IAM controller to know common ancestors if this group member is actually a copy from another group, which can happen if group is member in another group. List contains member IDs of other groups. Last element is always pointing to the group which made an actual copy and is responsible for deletion when needed. If particular group member is copied multiple times (which also can happen if group is indirect member via multiple memberships) then this field contains list only of common ancestors. This field has purpose of indicating owner (last item in this list) and to break cycles (previous elements). List is always empty if this group member is DIRECT member of this group and controller cannot modify it.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListGroupMembersRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total GroupMembers 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.
Requested page size. Server may return fewer GroupMembers than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to GroupMember that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to GroupMember that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchGroupMembersResponse Message
A response message of the WatchGroupMembers method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All GroupMembers 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (GroupMembers 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateGroupMemberRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteGroupMemberRequest Message
A request message of the DeleteGroupMember method.
Organization represents higher-level organizational unit, like Company,
University or Division
Organizations supports managing hierarchies with
[Organization.parent_organization] field. All [Permission] grants through
[RoleBinding]s are propagated from organization ancestors to their
descendants.
Name patterns:
organizations/{organization}
This section covers the methods
and messages to interact
with Organization resource.
Organization Methods
Here is the list of Organization resource methods:
Name of Organization 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]
Business tier applicable for all allowed services. This value defines: * Default business tier for child projects (if not defined on creation) * Default business tier to this organization.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListOrganizationsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Organizations 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.
WatchOrganizationRequest Message
A request message of the WatchOrganization method.
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_size
int32
Requested page size. Server may return fewer Organizations than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Organization that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Organization that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchOrganizationsResponse Message
A response message of the WatchOrganizations method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Organizations 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Organizations 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateOrganizationRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteOrganizationRequest Message
A request message of the DeleteOrganization method.
A token identifying a page of results the server should return. Typically, this is the value of [ListOrganizationsResponse.next_page_token][ntt.iam.v1alpha2.ListOrganizationsResponse.next_page_token]
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A FieldMask used to filter response fields. When present, only requested fields will be present in each response item. Omitting field_mask results will cause response items to contain all present fields.
ListMyOrganizationsResponse Message
Response message for method
[ListMyOrganizations][ntt.iam.v1alpha2.ListMyOrganizations]
A token to retrieve previous page of results. Pass this value in the [ListOrganizationsRequest.page_token][ntt.iam.v1alpha2.ListOrganizationsRequest.page_token]
A token to retrieve next page of results. Pass this value in the [ListOrganizationsRequest.page_token][ntt.iam.v1alpha2.ListOrganizationsRequest.page_token]
Name of OrganizationInvitation 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]
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListOrganizationInvitationsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total OrganizationInvitations 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.
WatchOrganizationInvitationRequest Message
A request message of the WatchOrganizationInvitation method.
Parent name of ntt.iam.v1alpha2.OrganizationInvitation
page_size
int32
Requested page size. Server may return fewer OrganizationInvitations than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to OrganizationInvitation that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to OrganizationInvitation that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchOrganizationInvitationsResponse Message
A response message of the WatchOrganizationInvitations method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All OrganizationInvitations 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (OrganizationInvitations 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteOrganizationInvitationRequest Message
A request message of the DeleteOrganizationInvitation method.
Request message for method
[CheckPermissions][ntt.iam.v1alpha2.CheckPermissions]
Name
Type
Description
member
string
Acting principal, e.g. user or service account Format of the string is one of: - “allUsers” (anyone) - “allAuthenticatedUsers” (anyone logged in) - “user:admin.super@example.com” - “serviceAccount:device_agent@watchdog.serviceaccounts.iam.edgelq.com” - “group:nice.group@example.com” - “domain:example.com” (anyone with exact email domain)
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListPermissionsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Permissions 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.
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_size
int32
Requested page size. Server may return fewer Permissions than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Permission that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Permission that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchPermissionsResponse Message
A response message of the WatchPermissions method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Permissions 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Permissions 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdatePermissionRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
Name of Project 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]
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListProjectsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Projects 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.
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_size
int32
Requested page size. Server may return fewer Projects than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Project that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Project that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Projects 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Projects 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateProjectRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
A token identifying a page of results the server should return. Typically, this is the value of [ListProjectsResponse.next_page_token][ntt.iam.v1alpha2.ListProjectsResponse.next_page_token]
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A FieldMask used to filter response fields. When present, only requested fields will be present in each response item. Omitting field_mask results will cause response items to contain all present fields.
ListMyProjectsResponse Message
Response message for method [ListMyProjects][ntt.iam.v1alpha2.ListMyProjects]
Name of ProjectInvitation 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]
project_display_name
string
project display name (auto-generated). Present here as user doesn’t have yet permission to fetch related project.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListProjectInvitationsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total ProjectInvitations 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.
WatchProjectInvitationRequest Message
A request message of the WatchProjectInvitation method.
Requested page size. Server may return fewer ProjectInvitations than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to ProjectInvitation that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to ProjectInvitation that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchProjectInvitationsResponse Message
A response message of the WatchProjectInvitations method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All ProjectInvitations 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (ProjectInvitations 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteProjectInvitationRequest Message
A request message of the DeleteProjectInvitation method.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListRolesRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Roles 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.
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_size
int32
Requested page size. Server may return fewer Roles than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Role that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Role that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Roles 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Roles 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateRoleRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
RoleBinding in iam RBAC model is the way of granting access to a party (user,
service account, etc) to edgelq resources. Creating RoleBinding requires user
to answer 3 questions:
Who: with member field, e.g. “user:wile.e.coyote@customers.acme.com”
What: specify scope (or parent), e.g.: projects/acme/roleBindings/<uuid>
How: bind role and optional condition to grant access to resources within
above scope
RoleBindings are additive, meaning that creating a new RoleBinding may only
extend ability of given member to perform actions. In other words RoleBinding
doesn’t affect other RoleBindings and
[PermissionCheck][ntt.iam.v1alpha2.PermissionCheck] method needs to find
any RoleBinding granting permission
Name of RoleBinding 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: [\w.
Binding members Format of the string is one of: - “allUsers” (anyone) - “allAuthenticatedUsers” (anyone logged in) - “user:admin.super@example.com” - “serviceAccount:device_agent@watchdog.serviceaccounts.iam.edgelq.com” - “group:nice.group@example.com” - “domain:example.com” (anyone with exact email domain)
Role bindings which have group as member have child for each service account and user in that group. All those role bindings have one common parent pointing at group role binding
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListRoleBindingsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total RoleBindings 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.
Requested page size. Server may return fewer RoleBindings than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to RoleBinding that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to RoleBinding that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchRoleBindingsResponse Message
A response message of the WatchRoleBindings method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All RoleBindings 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (RoleBindings 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateRoleBindingRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteRoleBindingRequest Message
A request message of the DeleteRoleBinding method.
Name of ServiceAccount 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,55}[a-z0-9]
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListServiceAccountsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total ServiceAccounts 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.
WatchServiceAccountRequest Message
A request message of the WatchServiceAccount method.
Requested page size. Server may return fewer ServiceAccounts than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to ServiceAccount that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to ServiceAccount that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchServiceAccountsResponse Message
A response message of the WatchServiceAccounts method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All ServiceAccounts 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (ServiceAccounts 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateServiceAccountRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteServiceAccountRequest Message
A request message of the DeleteServiceAccount method.
Name of ServiceAccountKey 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]
display_name
string
Display name
public_key_data
string
Public key contents
private_key_data
string
The private key of the pair. This field is only provided in CreateServiceAccountKey responses. Private keys are NOT stored on the server.
api_key
string
Api key is set if algorithm is equal to API_KEY and provided in CreateServiceAccountKey responses. They are not stored on the server, so caller is obliged to remember its value. If lost, its is necessary to create new key. Api key must be used in authorization header token when making request: - Authorization: “Bearer $API_KEY” Example for curl: $ curl -X GET -H “Authorization: Bearer $API_KEY” -s $URL
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListServiceAccountKeysRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total ServiceAccountKeys 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.
WatchServiceAccountKeyRequest Message
A request message of the WatchServiceAccountKey method.
Requested page size. Server may return fewer ServiceAccountKeys than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to ServiceAccountKey that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to ServiceAccountKey that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchServiceAccountKeysResponse Message
A response message of the WatchServiceAccountKeys method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All ServiceAccountKeys 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (ServiceAccountKeys 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteServiceAccountKeyRequest Message
A request message of the DeleteServiceAccountKey method.
Name of User 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: [\w.@
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListUsersRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Users 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.
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_size
int32
Requested page size. Server may return fewer Users than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to User that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to User that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Users 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Users 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateUserRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
New version of AttestationDomain or masked difference, depending on mask_changes instrumentation of issued [WatchAttestationDomainRequest] or [WatchAttestationDomainsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified AttestationDomain. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying AttestationDomain new index in resulting query view.
AttestationDomainChange.Removed Message
Removed is returned when AttestationDomain is deleted or leaves Query view
New version of Condition or masked difference, depending on mask_changes instrumentation of issued [WatchConditionRequest] or [WatchConditionsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Condition. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Condition new index in resulting query view.
ConditionChange.Removed Message
Removed is returned when Condition is deleted or leaves Query view
New version of Group or masked difference, depending on mask_changes instrumentation of issued [WatchGroupRequest] or [WatchGroupsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Group. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Group new index in resulting query view.
GroupChange.Removed Message
Removed is returned when Group is deleted or leaves Query view
New version of GroupMember or masked difference, depending on mask_changes instrumentation of issued [WatchGroupMemberRequest] or [WatchGroupMembersRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified GroupMember. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying GroupMember new index in resulting query view.
GroupMemberChange.Removed Message
Removed is returned when GroupMember is deleted or leaves Query view
List of Roles to be granted on project when invitation is accepted
expiration_date
.google.protobuf.Timestamp
Expiration date
extras
map<string, string>
Extra custom fields to further customize invitation experience. Fields should be agreed between sender (usually UI) and documented in the template of email service provider.
New version of Organization or masked difference, depending on mask_changes instrumentation of issued [WatchOrganizationRequest] or [WatchOrganizationsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Organization. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Organization new index in resulting query view.
OrganizationChange.Removed Message
Removed is returned when Organization is deleted or leaves Query view
Integer specifying removed Organization index. Not populated in stateless watch type.
OrganizationInvitationChange Message
OrganizationInvitationChange is used by Watch notifications Responses to
describe change of single OrganizationInvitation One of Added, Modified,
Removed
New version of OrganizationInvitation or masked difference, depending on mask_changes instrumentation of issued [WatchOrganizationInvitationRequest] or [WatchOrganizationInvitationsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified OrganizationInvitation. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying OrganizationInvitation new index in resulting query view.
OrganizationInvitationChange.Removed Message
Removed is returned when OrganizationInvitation is deleted or leaves Query
view
New version of Permission or masked difference, depending on mask_changes instrumentation of issued [WatchPermissionRequest] or [WatchPermissionsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Permission. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Permission new index in resulting query view.
PermissionChange.Removed Message
Removed is returned when Permission is deleted or leaves Query view
New version of Project or masked difference, depending on mask_changes instrumentation of issued [WatchProjectRequest] or [WatchProjectsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Project. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Project new index in resulting query view.
ProjectChange.Removed Message
Removed is returned when Project is deleted or leaves Query view
New version of ProjectInvitation or masked difference, depending on mask_changes instrumentation of issued [WatchProjectInvitationRequest] or [WatchProjectInvitationsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified ProjectInvitation. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying ProjectInvitation new index in resulting query view.
ProjectInvitationChange.Removed Message
Removed is returned when ProjectInvitation is deleted or leaves Query view
New version of RoleBinding or masked difference, depending on mask_changes instrumentation of issued [WatchRoleBindingRequest] or [WatchRoleBindingsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified RoleBinding. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying RoleBinding new index in resulting query view.
RoleBindingChange.Removed Message
Removed is returned when RoleBinding is deleted or leaves Query view
New version of Role or masked difference, depending on mask_changes instrumentation of issued [WatchRoleRequest] or [WatchRolesRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Role. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Role new index in resulting query view.
RoleChange.Removed Message
Removed is returned when Role is deleted or leaves Query view
New version of ServiceAccount or masked difference, depending on mask_changes instrumentation of issued [WatchServiceAccountRequest] or [WatchServiceAccountsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified ServiceAccount. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying ServiceAccount new index in resulting query view.
ServiceAccountChange.Removed Message
Removed is returned when ServiceAccount is deleted or leaves Query view
New version of ServiceAccountKey or masked difference, depending on mask_changes instrumentation of issued [WatchServiceAccountKeyRequest] or [WatchServiceAccountKeysRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified ServiceAccountKey. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying ServiceAccountKey new index in resulting query view.
ServiceAccountKeyChange.Removed Message
Removed is returned when ServiceAccountKey is deleted or leaves Query view
Integer specifying removed ServiceAccountKey index. Not populated in stateless watch type.
ServiceBusinessTier Message
ServiceBusinessTier binds specific service with specific business tier.
It may be useful if two services use different tier in one organizational
entity (project or organization).
New version of User or masked difference, depending on mask_changes instrumentation of issued [WatchUserRequest] or [WatchUsersRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified User. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying User new index in resulting query view.
UserChange.Removed Message
Removed is returned when User is deleted or leaves Query view
TSPI_EKBLOB is a TPM1.2 challenge format accepted by TrouSerS daemon’s Tspi_TPM_ActivateIdentity function. As far as I can tell, it’s not documented except in the code. Returned primitives are of type TPM12_EKBLOB (with TPM_EK_BLOB_ACTIVATE) and bytes. Reference implementation: github.com/google/go-attestation@v0.3.2/attest/activation.go:generateChallengeTPM12, which uses github.com/google/go-tspi@v0.3.0/verification/verification.go:GenerateChallengeEx
3 - SPEKTRA Edge Audit Service API
Understanding the Audit service API.
SPEKTRA Edge audit service helps store audit logs to record all API activities
for all users and service accounts. Audit logs provide the ability to check
who made a specific operation and the actual changes made to the data
(for operations such as create/update). The audit log also records
the timestamp and the IP address of the user.
The audit logging is automatically enabled for all SPEKTRA Edge services
such as IAM, Devices, Applications, Proxies, Monitoring, Limits, Secrets,
etc. It is highly recommended to enable it for all 3rd party services too.
metadata (Source IP address of the request and user agent name)
request method (MethodName and API version)
authorization (List of Permissions that are granted for this operation
and list of permissions that were denied)
Service information (name and region to which the request is made)
resource details (resource name, field-mask for the operation, and
resource data before and after the API operation )
API request category
Create
Read
Delete
SpecUpdate
StateUpdate
MetadataUpdate
Custom Operations
Internal
Rejected
ClientError
ServerError
events related to the request
client request
server response
regions routing
etc.
Resource Change Logs
Resource change logs record the details of the events related to changes
made on a specific resource. A resource change log is always related to
an activity log. A single API request may modify multiple
resources and therefore there is a 1:N relation between
the activity log and Resource change log.
Activity logs and resource change logs can be correlated
using the Request ID field.
The contents of resource change logs include:
scope
request ID
timestamp
user data (user name or service account details)
Service Information (name and the region to which the request is made)
resource change details
resource name
type
value of resource before and after the operation
Transaction Details
Transaction ID
retry counter
Transaction States:
PRE_COMMITTED
COMMITTED
ROLLED_BACK
Retrieving logs
In this short quickstart guide we will show you how to retrieve both
activity logs and resource change logs using our CLI:
ActivityLog Resource - describes notification of
activity triggered by a request sent to an API service.
ActivityLog creation is triggered by an API service
when it receives either unary or stream request.
ActivityLog contains messages exchanged between client
and server within single API call and finally exit status.
ActivityLog is method oriented - service name + method name
(for example IAM/CreateRoleBinding) is a leading information.
ActivityLog can have N associated ResourceChangeLog objects,
if API call it describes made some changes in a data store.
You can combine ActivityLog and ResourceChangeLog by making
queries with request_id specified in a filter.
Name of ActivityLog. It contains scope + ID of the log. ID is a base64 encoded unique key that identifies tuple: scope request_id authentication.principal request_metadata.ip_address request_metadata.user_agent request_routing.via_region request_routing.dest_regions authorization.granted_permissions authorization.denied_permissions service.name service.region_id method.type method.version resource.name resource.difference.fields category labels Key is not to be decoded outside of service, but treated as opaque string
scope
string
Contains scope from name field without resource ID. Used for internal purpose for filtering (logs are using custom store). Example formats are: - organization/umbrella - projects/mars_exploration - services/devices.edgelq.com
request_id
uint64
Generated ID of the request. Same ID must be used in ResourceChangeLog objects associated with this request.
Server received exit code from another server (used for split & merge). In case it contains error, its likely final exit will contain this too.
ActivityLog.Method Message
Description of the executed method
Name
Type
Description
type
string
Type name of a method, for example “UpdateRoleBinding”.
version
string
Version in which method was executed.
ActivityLog.RequestMetadata Message
Additional information about request caller
Name
Type
Description
ip_address
string
Source IP from where request came
user_agent
string
Agent used by the request caller
ActivityLog.RequestRouting Message
Additional information regarding request routing. Request can be:
Received and executed locally
Received and redirected to another region
Received, then split across multiple-regions. Responses are merged before
sending back to client
Name
Type
Description
via_region
string
ID of a region which originally received request, if redirection or split & merge was required
dest_regions
repeated string
IDs of regions to which request was actually addressed.
ActivityLog.Resource Message
Description of the main resource activity refers to.
For standard, goten-generated actions it’s same as resource
assigned to the the method. For custom actions, in some cases, developer
may pick however different resource (it is customizable in proto audit
spec).
difference contains update information of the resource. Left empty if the request described by this activity log did not update the resource.
ActivityLog.Event.ClientMsgEvent Message
Describes client message event
Name
Type
Description
data
.google.protobuf.Any
Message contents
time
.google.protobuf.Timestamp
Time of a message
ActivityLog.Event.RegionalServerMsgEvent Message
Describes message received from server in specific region.
This type is used only for requests, which receiving server decided to
split across many regions. Each regional server sends own response and
executing server is responsible for merging all partial results into one.
This type does not show what was sent to the client.
TODO: No use case for now, just placeholder, no server implementation
Name
Type
Description
data
.google.protobuf.Any
Message contents
time
.google.protobuf.Timestamp
Time of a message
region_id
string
Region ID where message comes from.
ActivityLog.Event.ServerMsgEvent Message
Describes server message event
Name
Type
Description
data
.google.protobuf.Any
Message contents
time
.google.protobuf.Timestamp
Time of a message
ActivityLog.Event.RegionalExitEvent Message
Describes exit code received from server in specific region.
This type is used only for requests, which receiving server decided to
split across many regions. Each regional server sends own response and
executing server is responsible for merging all partial results into one.
IT does not contain status actually sent to the client.
TODO: No use case for now, just placeholder, no server implementation
Describes changes (in database) executed on the resource.
Name
Type
Description
fields
.google.protobuf.FieldMask
List of updated field paths (which are either marked as a state or spec fields). Proper, actual values are stored in “before” and “after” fields. Populated only for updating requests.
before
.google.protobuf.Any
State of the resource before update. Note that “before” object contains only values of fields present in “fields”. It does not contain whole resource as it was before the update.
after
.google.protobuf.Any
State of the resource after update. Note that “after” object contains only values of fields present in “fields”. It does not contain whole resource as it is after the update.
It returns activities for specified time range and within specified filter.
Activity logs are stored only in region which executed them and never
duplicated. Because of that its important to pay attention to region IDs in a
request object.
Basic supported filters are:
–filter ‘service.name=[SERVICE_NAME]’ (what is happening in this service)
–filter ‘service.name=[SERVICE_NAME] and method.type=[METHOD_NAME]’ (what
is happening for this API call)
–filter ‘authentication.principal=[PRINCIPAL_NAME]’ (what that person is
doing)
–filter ‘request_id=[REQUEST_ID]’ (I have request ID, what is actually
this?)
–filter ‘service.name=[SERVICE_NAME] and
resource.name=[FULL_RESOURCE_NAME]’ (can I see activities on this resource?)
Its also possible to filter logs by their region of activity, by using field
service.region_id in a filter field. It’s important to note that logs may be
present in multiple locations, if request was routed somewhere else or split
and merged across many regions. Those activity logs may have different
activity log names, but they will share same values in fields request_id
and request_routing.
Be aware, that server will append scope filter condition (and scope=…) to
the filter. Scope(s) will be extracted from fields parents in
ListActivityLogsRequest object. Note you can query for multiple at once,
both projects and organizations.
For all of the above filters you can replace filter condition compare (=)
with IN operator. You can therefore query for multiple services, methods or
users at once. Above filters are also preferred as we have optimization for
them.
Activity logs can be filtered by custom labels (field labels in
ActivityLog). Labels are defined per each API method, so you must specify
service.name and method.type conditions to be able to query by labels.
For example, suppose you have a CreateVM method, which creates resource
“VM”. Suppose there is a field “group” within resource body, which is
reference to other resource. If you want to make a query like “who was
creating VMs for that group”, then you need to create label “group” inside
resource body. Then you will be able to make a query with following
filter condition:
--filter 'service.name="vms.domain.com" and \
method.type=CreateVM and \
labels.group=mySpecialVMGroup'
Be aware, that Create/Update requests, which have resource object in their
own bodies, will automatically inherit resource labels. So, basically you
need to define “group” label in resource spec, not inside request. This is
useful, as both Create/Update methods will have this label. This also allows
code-gen to continue maintaining *derived.proto files.
Examples of usage (with cuttle - we are interested only in one region and
scope):
Checks connections to all devices within ssh-demo project starting
from 8th of September 12 UTC time
cuttle audit query activity-log --parents 'projects/ssh-demo'\
--filter 'service.name="devices.edgelq.com" and \
method.type="ConnectToDevice" and \
service.regionId="us-west"'\
--interval '{"startTime":"2020-09-08T12:00:00Z"}'\
-o json
Checks connections to device demo-device within ssh-demo project
starting from 8th of September 12 UTC time
cuttle audit query activity-log --parents 'projects/ssh-demo'\
--filter 'service.name="devices.edgelq.com" and \
method.type="ConnectToDevice" and \
service.regionId="us-west" and \
resource.name="projects/ssh-demo/devices/demo-device"'\
--interval '{"startTime":"2020-09-08T12:00:00Z"}'\
-o json
Checks what is happening within whole iam service for project demo
starting from 8th of September 12 UTC time
The time interval for which results should be returned. Only logs that contain data points in the specified interval are included in the response.
page_size
int32
Cap on a number of activity logs to be included in a response. Number of logs in an actual response can be higher, since logs are read in bulk with second precision - exceed logs above the limit will share same timestamp as the logs below the limit. Results will be adjusted to the “end time” taken from interval field (adjusted also by page_token if provided).
page_token
string
Token which identifies next page with further results. Token should be taken from [ListActivityLogsResponse.next_page_token][ntt.audit.v1.ListActivityLogsResponse.next_page_token].
One or more activity method logs that match the filter included in the request. Contains results from all queried regions. Its possible however that some logs may be missing, for this see execution_errors.
next_page_token
string
If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as pageToken in the next call to this method.
Query execution errors that may have caused the response data returned to be incomplete. Because logs are stored only locally (for each region), all activity log queries are split and merged by a receiving request server according to the queried regions. Its possible that some regions will fail when request is redirected to them, but others not. For each failed region, one execution error will be appended. In each ntt.rpc.Status message, fields code and message will contain error obtained from failed regional server, while field details will contain always one item and this item will be of type ErrorDetails.
ListActivityLogsResponse.ErrorDetails Message
ErrorDetails is used when one of the queried regions fails to produce
results. It is used in execution_errors field (see subfield
ntt.rpc.Status.details).
Activity log category.
Each activity log basically describes read or write action,
optionally describes other “operation” type.
Name
Description
Undefined
Undefined, should never be used
Operation
Describes all requests that involved execution of some special operation, for example, SSH connection could be put in this category. It’s for requests that cannot be classified clearly as a read or write.
Creation
Describes all requests that involved creation of a new resource.
Deletion
Describes all requests which involved deletion of an existing resource.
SpecUpdate
Describes all update requests that changed specification fields in an existing resource(s).
StateUpdate
Describes all update requests that changed state fields in an existing resource(s) (but not specification).
MetaUpdate
Describes all update requests that are neither of SpecUpdate or StateUpdate type. It is for non-significant updates like modification of metadata annotations.
Internal
Describes an internal update of the system (like controller creating role binding for each group member for each role assigned to group). It includes all CUD requests as long as they are result of an internal system balancing.
Rejected
Describes request that has been rejected and therefore no action has happened. This is result of lack of permission/authentication.
ClientError
Describes request that has failed due to client error (like validation error)
ServerError
Describes request that has failed due to server issue.
Read
Describes any read request (like BatchGet, Get, List, Watch).
Optional. A concise name for the audited object type that might be displayed in user interfaces. It should be a Title Cased Noun Phrase, without any article or other determiners.
description
string
Optional. A detailed description of the audited object type that might be used in documentation.
Required. A set of labels used to describe instances of this audited resource type. For example, for “RoleBinding” we can define name+member. This can allow us to make query like “who allowed user X to do those things?”
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
GetAuditedResourceDescriptorRequest Message
A request message of the GetAuditedResourceDescriptor method.
A token identifying a page of results the server should return. Typically, this is the value of ListAuditedResourceDescriptorsResponse.next_page_token.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListAuditedResourceDescriptorsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total AuditedResourceDescriptors 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.
WatchAuditedResourceDescriptorRequest Message
A request message of the WatchAuditedResourceDescriptor method.
Parent name of ntt.audit.v1.AuditedResourceDescriptor
page_size
int32
Requested page size. Server may return fewer AuditedResourceDescriptors than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to AuditedResourceDescriptor that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to AuditedResourceDescriptor that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchAuditedResourceDescriptorsResponse Message
A response message of the WatchAuditedResourceDescriptors method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All AuditedResourceDescriptors 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (AuditedResourceDescriptors 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteAuditedResourceDescriptorRequest Message
A request message of the DeleteAuditedResourceDescriptor method.
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
display_name
string
Optional. A concise name for the audited object type that might be displayed in user interfaces. It should be a Title Cased Noun Phrase, without any article or other determiners.
description
string
Optional. A detailed description of the audited method type that might be used in documentation.
A set of labels used to describe instances of this audited method type. For example, for “UpdateRoleBinding” we can define member label. This can allow us to make query like “who tried to give user X permissions to those things?”
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListMethodDescriptorsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total MethodDescriptors 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.
WatchMethodDescriptorRequest Message
A request message of the WatchMethodDescriptor method.
Requested page size. Server may return fewer MethodDescriptors than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to MethodDescriptor that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to MethodDescriptor that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchMethodDescriptorsResponse Message
A response message of the WatchMethodDescriptors method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All MethodDescriptors 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (MethodDescriptors 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteMethodDescriptorRequest Message
A request message of the DeleteMethodDescriptor method.
ResourceChangeLog Resource - describes notification
of resource change. This log is resource oriented -
it strictly is associated with single resource,
where service name, resource type and resource name
are the strongest attributes.
All resource changes are happening via API calls made
to API services. Therefore, each ResourceChangeLog
has associated ActivityLog. Relation is 1-N between
activity and resource change logs, as one API call
can modify multiple resources.
Name of ResourceChangeLog. It contains scope + ID of the log. ID is a base64 encoded unique key that identifies tuple: scope request_id authentication.principal service.name service.region_id resource.name resource.type resource.pre.labels resource.post.labels ID part should not be decoded, but treated as opaque string
scope
string
Contains scope from name field without resource ID. Used for internal purpose for filtering (logs are using custom store). Supported formats are: - organization/umbrella - projects/mars_exploration - services/devices.edgelq.com
request_id
uint64
Unique identifier of request - it must match the one in the associated activity log.
timestamp
.google.protobuf.Timestamp
Time of the change - equal to request timestamp (activity log)
It returns resource changes for specified time range, region, scope and
filter. Note that resource change logs are Resource oriented, primary
object is resource here. Audit monitors resources that have non-custom
store.
Note that filter field is mandatory and minimal filters are:
–filter ‘service.name=[SERVICE_NAME] and resource.type=[RESOURCE_NAME]’
(what is happening for this resource type)
–filter ‘request_id=[REQUEST_ID]’ (which resources were changed by this
request_id?)
Be aware that server will append scope filter condition (and scope IN …)
to an any of the above filters. All scopes are extracted from parents field
in ListResourceChangeLogsRequest body. This ensures that users can view only
scopes he/she is allowed to.
For all of the above filters you can replace filter condition compare (=)
with IN operator. You can therefore query for multiple services, methods or
users at once. Above filters are also preferred as we have optimization for
them.
Resource change logs can also be filtered by custom labels (field labels in
ResourceChangeLog - pre and post versions). Labels are custom per each API
resource - so you must specify service.name and resource.type conditions to
enable them. For example, suppose you have a VM resource which contains
“group” field, which is a reference to some other resource. If you create
label “group” in VM resource spec (in proto model) you can make a following
query:
--filter 'service.name=vms.domain.com and \
resource.type=VM and \
resource.post.labels.group=projects/P/vmgroups/myGroup'
Examples of usage (with cuttle, we are interested only in one region and
scope):
Checks activities within one hour for role binding resources
The time interval for which results should be returned. Only logs that contain data points in the specified interval are included in the response.
page_size
int32
Cap on a number of resource change logs to be included in a response. Number of logs in an actual response can be higher, since logs are read in bulk with second precision - exceed logs above the limit will share same timestamp as the logs below the limit. Results will be adjusted to the “end time” taken from interval field (adjusted also by page_token if provided).
page_token
string
Token which identifies next page with further results. Token should be taken from ListResourceChangeLogsResponse [ListResourceChangeLogsResponse.next_page_token][ntt.audit.v1.ListResourceChangeLogsResponse.next_page_token].
This request should not be used by regular users - only API services should
be able to submit resource change logs. Developers of services should use
logs exporter package offered along other Audit service packages instead of
developing own components.
One or more resource change logs that match the filter included in the request. Contains results from all queried regions. Its possible however that some logs may be missing, for this see execution_errors.
next_page_token
string
If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as pageToken in the next call to this method.
Query execution errors that may have caused the response data returned to be incomplete. Because logs are stored only locally (for each region), all resource change log queries are split and merged by a receiving request server according to the queried regions. Its possible that some regions will fail when request is redirected to them, but others not. For each failed region, one execution error will be appended. In each ntt.rpc.Status message, fields code and message will contain error obtained from failed regional server, while field details will contain always one item and this item will be of type ErrorDetails.
ErrorDetails is used when one of the queried regions fails to produce
results. It is used in execution_errors field (see subfield
ntt.rpc.Status.details).
Indicates that this change did not happen - it is just proposal of the change. Such a log should be followed by another ResourceChangeLog with value COMMITTED or ROLLED_BACK. If one transaction has been retried multiple times, then there may be multiple records with PRE_COMMITTED, last record should indicate final transaction state.
COMMITTED
Indicates change has been committed successfully.
ROLLED_BACK
Indicates that change did not happen. Log of this type should be treated as attempt of change.
Audit Service Shared Methods and Messages
Audit Service Shared Messages
Here is the list of Audit service shared messages:
AuditedResourceDescriptorChange is used by Watch notifications Responses to
describe change of single AuditedResourceDescriptor One of Added, Modified,
Removed
New version of AuditedResourceDescriptor or masked difference, depending on mask_changes instrumentation of issued [WatchAuditedResourceDescriptorRequest] or [WatchAuditedResourceDescriptorsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified AuditedResourceDescriptor. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying AuditedResourceDescriptor new index in resulting query view.
AuditedResourceDescriptorChange.Removed Message
Removed is returned when AuditedResourceDescriptor is deleted or leaves
Query view
New version of MethodDescriptor or masked difference, depending on mask_changes instrumentation of issued [WatchMethodDescriptorRequest] or [WatchMethodDescriptorsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified MethodDescriptor. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying MethodDescriptor new index in resulting query view.
MethodDescriptorChange.Removed Message
Removed is returned when MethodDescriptor is deleted or leaves Query view
Integer specifying removed MethodDescriptor index. Not populated in stateless watch type.
ObjectState Message
State of the object - can be resource, request or response.
DEPRECATED
Name
Type
Description
data
.google.protobuf.Any
Object data
labels
map<string, string>
Values for all of the labels listed in the associated audited object descriptor - they are extracted from protobuf object and used for filtering
ServiceData Message
Information about service processing a request
Name
Type
Description
name
string
Fully qualified service name executing a request
region_id
string
Region of the service handling this request.
TimeInterval Message
A time interval extending just after a start time through an end time.
If the start time is the same as the end time, then the interval
represents a single point in time.
Name
Type
Description
end_time
.google.protobuf.Timestamp
Optional - end of the time interval. If not provided, current time will be assumed.
start_time
.google.protobuf.Timestamp
Required. The beginning of the time interval. The start time must not be later than the end time.
3.2 -
Understanding the audit.edgelq.com service APIv1alpha2, in proto package ntt.audit.v1alpha2.
Service audit.edgelq.com in version v1alpha2, proto package ntt.audit.v1alpha2
Here is the list of resources supported in Audit service APIv1alpha2:
ActivityLog Resource - describes notification of
activity triggered by a request sent to an API service.
ActivityLog creation is triggered by an API service
when it receives either unary or stream request.
ActivityLog contains messages exchanged between client
and server within single API call and finally exit status.
ActivityLog is method oriented - service name + method name
(for example IAM/CreateRoleBinding) is a leading information.
ActivityLog can have N associated ResourceChangeLog objects,
if API call it describes made some changes in a data store.
You can combine ActivityLog and ResourceChangeLog by making
queries with request_id specified in a filter.
Name of ActivityLog. It contains scope + ID of the log. ID is a base64 encoded unique key that identifies tuple: scope request_id authentication.principal request_metadata.ip_address request_metadata.user_agent request_routing.via_region request_routing.dest_regions authorization.granted_permissions authorization.denied_permissions service.name service.region_id method.type method.version resource.name resource.difference.fields category labels Key is not to be decoded outside of service, but treated as opaque string
scope
string
Contains scope from name field without resource ID. Used for internal purpose for filtering (logs are using custom store). Example formats are: - organization/umbrella - projects/mars_exploration - <system>
request_id
uint64
Generated ID of the request. Same ID must be used in ResourceChangeLog objects associated with this request.
Server received exit code from another server (used for split & merge). In case it contains error, its likely final exit will contain this too.
ActivityLog.Method Message
Description of the executed method
Name
Type
Description
type
string
Type name of a method, for example “UpdateRoleBinding”.
version
string
Version in which method was executed.
ActivityLog.RequestMetadata Message
Additional information about request caller
Name
Type
Description
ip_address
string
Source IP from where request came
user_agent
string
Agent used by the request caller
ActivityLog.RequestRouting Message
Additional information regarding request routing. Request can be:
Received and executed locally
Received and redirected to another region
Received, then split across multiple-regions. Responses are merged before
sending back to client
Name
Type
Description
via_region
string
ID of a region which originally received request, if redirection or split & merge was required
dest_regions
repeated string
IDs of regions to which request was actually addressed.
ActivityLog.Resource Message
Description of the main resource activity refers to.
For standard, goten-generated actions it’s same as resource
assigned to the the method. For custom actions, in some cases, developer
may pick however different resource (it is customizable in proto audit
spec).
difference contains update information of the resource. Left empty if the request described by this activity log did not update the resource.
ActivityLog.Event.ClientMsgEvent Message
Describes client message event
Name
Type
Description
data
.google.protobuf.Any
Message contents
time
.google.protobuf.Timestamp
Time of a message
ActivityLog.Event.RegionalServerMsgEvent Message
Describes message received from server in specific region.
This type is used only for requests, which receiving server decided to
split across many regions. Each regional server sends own response and
executing server is responsible for merging all partial results into one.
This type does not show what was sent to the client.
TODO: No use case for now, just placeholder, no server implementation
Name
Type
Description
data
.google.protobuf.Any
Message contents
time
.google.protobuf.Timestamp
Time of a message
region_id
string
Region ID where message comes from.
ActivityLog.Event.ServerMsgEvent Message
Describes server message event
Name
Type
Description
data
.google.protobuf.Any
Message contents
time
.google.protobuf.Timestamp
Time of a message
ActivityLog.Event.RegionalExitEvent Message
Describes exit code received from server in specific region.
This type is used only for requests, which receiving server decided to
split across many regions. Each regional server sends own response and
executing server is responsible for merging all partial results into one.
IT does not contain status actually sent to the client.
TODO: No use case for now, just placeholder, no server implementation
Describes changes (in database) executed on the resource.
Name
Type
Description
fields
.google.protobuf.FieldMask
List of updated field paths (which are either marked as a state or spec fields). Proper, actual values are stored in “before” and “after” fields. Populated only for updating requests.
before
.google.protobuf.Any
State of the resource before update. Note that “before” object contains only values of fields present in “fields”. It does not contain whole resource as it was before the update.
after
.google.protobuf.Any
State of the resource after update. Note that “after” object contains only values of fields present in “fields”. It does not contain whole resource as it is after the update.
ListActivityLogsRequest Message
Request message for method
[ListActivityLogs][ntt.audit.v1alpha2.ListActivityLogs]
Returns activities for specified time range and within specified filter.
Activity logs are stored only in region which executed them and never
duplicated. Because of that its important to pay attention to region IDs in a
request object.
Basic supported filters are:
–filter ‘service.name=[SERVICE_NAME]’ (what is happening in this service)
–filter ‘service.name=[SERVICE_NAME] and method.type=[METHOD_NAME]’ (what
is happening for this API call)
–filter ‘authentication.principal=[PRINCIPAL_NAME]’ (what that person is
doing)
–filter ‘request_id=[REQUEST_ID]’ (I have request ID, what is actually
this?)
–filter ‘service.name=[SERVICE_NAME] and
resource.name=[FULL_RESOURCE_NAME]’ (can I see activities on this resource?)
Its also possible to filter logs by their region of activity - by using field
service.region_id in a filter field. Its important to note that logs may be
present in multiple locations, if request was routed somewhere else or split
& merged across many regions. Those activity logs may have different activity
log names, but they will share same values in fields request_id and
request_routing.
Be aware, that server will append scope filter condition (and scope=…) to
the filter. Scope(s) will be extracted from fields parents in
ListActivityLogsRequest object. Note you can query for multiple at once, both
projects and organizations.
For all of the above filters you can replace filter condition compare (=)
with IN operator. You can therefore query for multiple services, methods or
users at once. Above filters are also preferred as we have optimization for
them.
Activity logs can be filtered by custom labels (field labels in ActivityLog).
Labels are defined per each API method - so you must specify service.name and
method.type conditions to be able to query by labels.
For example, suppose you have a CreateVM method, which creates resource “VM”.
Suppose there is a field “group” within resource body, which is reference to
other resource. If you want to make a query like “who was creating VMs for
that group”, then you need to create label “group” inside resource body. Then
you will be able to make a query with following filter condition:
–filter ‘service.name=vms.domain.com and method.type=CreateVM and
labels.group=mySpecialVMGroup’.
Be aware, that Create/Update requests, which have resource object in their
own bodies, will automatically inherit resource labels. So, basically you
need to define “group” label in resource spec, not inside request. This is
useful, as both Create/Update methods will have this label. This also allows
code-gen to continue maintaining *derived.proto files.
Examples of usage (with cuttle - we are interested only in one region and
scope):
Checks connections to all devices within ssh-demo project starting from 8th
of September 12 UTC time
$ cuttle audit query activity-log –parents ‘project/ssh-demo’
–filter ‘service.name=“devices.edgelq.com” and
method.type=“ConnectToDevice” and service.regionId=“us-west”’
–interval ‘{“startTime”:“2020-09-08T12:00:00Z”}’ -o json
*Checks connections to device demo-device within ssh-demo project starting
from 8th of September 12 UTC time
$ cuttle audit query activity-log –parents ‘project/ssh-demo’
–filter ‘service.name=“devices.edgelq.com” and
method.type=“ConnectToDevice” and service.regionId=“us-west” and
resource.name=“projects/ssh-demo/devices/demo-device”’
–interval ‘{“startTime”:“2020-09-08T12:00:00Z”}’ -o json
Checks what is happening within whole iam service for project demo starting
from 8th of September 12 UTC time
The time interval for which results should be returned. Only logs that contain data points in the specified interval are included in the response.
page_size
int32
Cap on a number of activity logs to be included in a response. Number of logs in an actual response can be higher, since logs are read in bulk with second precision - exceed logs above the limit will share same timestamp as the logs below the limit. Results will be adjusted to the “end time” taken from interval field (adjusted also by page_token if provided).
page_token
string
Token which identifies next page with further results. Token should be taken from [ListActivityLogsResponse.next_page_token][ntt.audit.v1alpha2.ListActivityLogsResponse.next_page_token].
ListActivityLogsResponse Message
Response message for method
[ListActivityLogs][ntt.audit.v1alpha2.ListActivityLogs]
One or more activity method logs that match the filter included in the request. Contains results from all queried regions. Its possible however that some logs may be missing, for this see execution_errors.
next_page_token
string
If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as pageToken in the next call to this method.
Query execution errors that may have caused the response data returned to be incomplete. Because logs are stored only locally (for each region), all activity log queries are split and merged by a receiving request server according to the queried regions. Its possible that some regions will fail when request is redirected to them, but others not. For each failed region, one execution error will be appended. In each ntt.rpc.Status message, fields code and message will contain error obtained from failed regional server, while field details will contain always one item and this item will be of type ErrorDetails.
ListActivityLogsResponse.ErrorDetails Message
ErrorDetails is used when one of the queried regions fails to produce
results. It is used in execution_errors field (see subfield
ntt.rpc.Status.details).
Name
Type
Description
region_id
string
region id which failed to give results.
CreateActivityLogsRequest Message
Request message for method
[CreateActivityLogs][ntt.audit.v1alpha2.CreateActivityLogs]
Creates many activity logs at once - or appends existing, if some of the
activity logs already exist (their name is already known).
This request should not be used by regular users - only API services should
be able to submit activity logs. Developers of services should use logs
exporter package offered along other Audit service packages instead of
developing own components.
Activity log category.
Each activity log basically describes read or write action,
optionally describes other “operation” type.
Name
Description
Undefined
Undefined, should never be used
Operation
Describes all requests that involved execution of some special operation, for example, SSH connection could be put in this category. It’s for requests that cannot be classified clearly as a read or write.
Creation
Describes all requests that involved creation of a new resource.
Deletion
Describes all requests which involved deletion of an existing resource.
SpecUpdate
Describes all update requests that changed specification fields in an existing resource(s).
StateUpdate
Describes all update requests that changed state fields in an existing resource(s) (but not specification).
MetaUpdate
Describes all update requests that are neither of SpecUpdate or StateUpdate type. It is for non-significant updates like modification of metadata annotations.
Internal
Describes an internal update of the system (like controller creating role binding for each group member for each role assigned to group). It includes all CUD requests as long as they are result of an internal system balancing.
Rejected
Describes request that has been rejected and therefore no action has happened. This is result of lack of permission/authentication.
ClientError
Describes request that has failed due to client error (like validation error)
ServerError
Describes request that has failed due to server issue.
Read
Describes any read request (like BatchGet, Get, List, Watch).
Name of AuditedResourceDescriptor - contains service name and resource type name, separated by ‘/’ sign. Example name: “iam.edgelq.com/RoleBinding”
display_name
string
Optional. A concise name for the audited object type that might be displayed in user interfaces. It should be a Title Cased Noun Phrase, without any article or other determiners.
description
string
Optional. A detailed description of the audited object type that might be used in documentation.
Required. A set of labels used to describe instances of this audited resource type. For example, for “RoleBinding” we can define name+member. This can allow us to make query like “who allowed user X to do those things?”
A token identifying a page of results the server should return. Typically, this is the value of ListAuditedResourceDescriptorsResponse.next_page_token.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListAuditedResourceDescriptorsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total AuditedResourceDescriptors 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.
WatchAuditedResourceDescriptorRequest Message
A request message of the WatchAuditedResourceDescriptor method.
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_size
int32
Requested page size. Server may return fewer AuditedResourceDescriptors than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to AuditedResourceDescriptor that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to AuditedResourceDescriptor that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchAuditedResourceDescriptorsResponse Message
A response message of the WatchAuditedResourceDescriptors method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All AuditedResourceDescriptors 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (AuditedResourceDescriptors 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
MethodDescriptor Resource
MethodDescriptor Resource
Name patterns:
methodDescriptors/{method_descriptor}
This section covers the methods
and messages to interact
with MethodDescriptor resource.
MethodDescriptor Methods
Here is the list of MethodDescriptor resource methods:
Name of MethodDescriptor - contains service name and method type name, separated by ‘/’ sign. Example name: “iam.edgelq.com/CreateRoleBinding”
display_name
string
Optional. A concise name for the audited object type that might be displayed in user interfaces. It should be a Title Cased Noun Phrase, without any article or other determiners.
description
string
Optional. A detailed description of the audited method type that might be used in documentation.
A set of labels used to describe instances of this audited method type. For example, for “UpdateRoleBinding” we can define member label. This can allow us to make query like “who tried to give user X permissions to those things?”
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListMethodDescriptorsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total MethodDescriptors 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.
WatchMethodDescriptorRequest Message
A request message of the WatchMethodDescriptor method.
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_size
int32
Requested page size. Server may return fewer MethodDescriptors than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to MethodDescriptor that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to MethodDescriptor that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchMethodDescriptorsResponse Message
A response message of the WatchMethodDescriptors method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All MethodDescriptors 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (MethodDescriptors 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
ResourceChangeLog Resource
ResourceChangeLog Resource - describes notification
of resource change. This log is resource oriented -
it strictly is associated with single resource,
where service name, resource type and resource name
are the strongest attributes.
All resource changes are happening via API calls made
to API services. Therefore, each ResourceChangeLog
has associated ActivityLog. Relation is 1-N between
activity and resource change logs, as one API call
can modify multiple resources.
Name of ResourceChangeLog. It contains scope + ID of the log. ID is a base64 encoded unique key that identifies tuple: scope request_id authentication.principal service.name service.region_id resource.name resource.type resource.pre.labels resource.post.labels ID part should not be decoded, but treated as opaque string
scope
string
Contains scope from name field without resource ID. Used for internal purpose for filtering (logs are using custom store). Supported formats are: - organization/umbrella - projects/mars_exploration - <system>
request_id
uint64
Unique identifier of request - it must match the one in the associated activity log.
timestamp
.google.protobuf.Timestamp
Time of the change - equal to request timestamp (activity log)
Request message for method
[ListResourceChangeLogs][ntt.audit.v1alpha2.ListResourceChangeLogs]
Returns resource changes for specified time range, region, scope and filter.
Note that resource change logs are Resource oriented - primary object is
resource here. Audit monitors resources that have non-custom store.
Note that filter field is mandatory and minimal filters are:
–filter ‘service.name=[SERVICE_NAME] and resource.type=[RESOURCE_NAME]’
(what is happening for this resource type)
–filter ‘request_id=[REQUEST_ID]’ (which resources were changed by this
request_id?)
Be aware that server will append scope filter condition (and scope IN …) to
an any of the above filters. All scopes are extracted from parents field in
ListResourceChangeLogsRequest body. This ensures that users can view only
scopes he/she is allowed to.
For all of the above filters you can replace filter condition compare (=)
with IN operator. You can therefore query for multiple services, methods or
users at once. Above filters are also preferred as we have optimization for
them.
Resource change logs can also be filtered by custom labels (field labels in
ResourceChangeLog - pre and post versions). Labels are custom per each API
resource - so you must specify service.name and resource.type conditions to
enable them. For example, suppose you have a VM resource which contains
“group” field, which is a reference to some other resource. If you create
label “group” in VM resource spec (in proto model) you can make a following
query:
–filter ‘service.name=vms.domain.com and resource.type=VM and
resource.post.labels.group=projects/P/vmgroups/myGroup’.
Examples of usage (with cuttle - we are interested only in one region and
scope):
Checks activities within one hour for role binding resources
The time interval for which results should be returned. Only logs that contain data points in the specified interval are included in the response.
page_size
int32
Cap on a number of resource change logs to be included in a response. Number of logs in an actual response can be higher, since logs are read in bulk with second precision - exceed logs above the limit will share same timestamp as the logs below the limit. Results will be adjusted to the “end time” taken from interval field (adjusted also by page_token if provided).
page_token
string
Token which identifies next page with further results. Token should be taken from ListResourceChangeLogsResponse [ListResourceChangeLogsResponse.next_page_token][ntt.audit.v1alpha2.ListResourceChangeLogsResponse.next_page_token].
ListResourceChangeLogsResponse Message
Response message for method
[ListResourceChangeLogs][ntt.audit.v1alpha2.ListResourceChangeLogs]
One or more resource change logs that match the filter included in the request. Contains results from all queried regions. Its possible however that some logs may be missing, for this see execution_errors.
next_page_token
string
If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as pageToken in the next call to this method.
Query execution errors that may have caused the response data returned to be incomplete. Because logs are stored only locally (for each region), all resource change log queries are split and merged by a receiving request server according to the queried regions. Its possible that some regions will fail when request is redirected to them, but others not. For each failed region, one execution error will be appended. In each ntt.rpc.Status message, fields code and message will contain error obtained from failed regional server, while field details will contain always one item and this item will be of type ErrorDetails.
ErrorDetails is used when one of the queried regions fails to produce
results. It is used in execution_errors field (see subfield
ntt.rpc.Status.details).
Request message for method
[CreatePreCommittedResourceChangeLogs][ntt.audit.v1alpha2.CreatePreCommittedResourceChangeLogs]
Creates resource change log.
This request should not be used by regular users - only API services should
be able to submit resource change logs. Developers of services should use
logs exporter package offered along other Audit service packages instead of
developing own components.
Name
Type
Description
request_id
uint64
ID of the request - must be same as the one used in activity logs
Response message for method
[CreateResourceChangeLogs][ntt.audit.v1alpha2.CreateResourceChangeLogs]
Name
Type
Description
log_keys
repeated bytes
Resource change log keys - one key per each resource change, in same order
SetResourceChangeLogsCommitStateRequest Message
Request message for method
[SetResourceChangeLogsCommitState][ntt.audit.v1alpha2.SetResourceChangeLogsCommitState]
Sets transaction status of selected resource change logs.
This request should not be used by regular users - only API services should
be able to modify resource change logs. Developers of services should use
logs exporter package offered along other Audit service packages instead of
developing own components.
Name
Type
Description
log_keys
repeated bytes
list of resource change log keys.
timestamp
.google.protobuf.Timestamp
Time of the request - must be same as in CreatePreCommittedResourceChangeLogsRequest
Indicates that this change did not happen - it is just proposal of the change. Such a log should be followed by another ResourceChangeLog with value COMMITTED or ROLLED_BACK. If one transaction has been retried multiple times, then there may be multiple records with PRE_COMMITTED, last record should indicate final transaction state.
COMMITTED
Indicates change has been committed successfully.
ROLLED_BACK
Indicates that change did not happen. Log of this type should be treated as attempt of change.
Audit Service Shared Methods and Messages
Audit Service Shared Messages
Here is the list of Audit service shared messages:
AuditedResourceDescriptorChange is used by Watch notifications Responses to
describe change of single AuditedResourceDescriptor One of Added, Modified,
Removed
New version of AuditedResourceDescriptor or masked difference, depending on mask_changes instrumentation of issued [WatchAuditedResourceDescriptorRequest] or [WatchAuditedResourceDescriptorsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified AuditedResourceDescriptor. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying AuditedResourceDescriptor new index in resulting query view.
AuditedResourceDescriptorChange.Removed Message
Removed is returned when AuditedResourceDescriptor is deleted or leaves
Query view
New version of MethodDescriptor or masked difference, depending on mask_changes instrumentation of issued [WatchMethodDescriptorRequest] or [WatchMethodDescriptorsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified MethodDescriptor. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying MethodDescriptor new index in resulting query view.
MethodDescriptorChange.Removed Message
Removed is returned when MethodDescriptor is deleted or leaves Query view
Integer specifying removed MethodDescriptor index. Not populated in stateless watch type.
ObjectState Message
State of the object - can be resource, request or response.
DEPRECATED
Name
Type
Description
data
.google.protobuf.Any
Object data
labels
map<string, string>
Values for all of the labels listed in the associated audited object descriptor - they are extracted from protobuf object and used for filtering
ServiceData Message
Information about service processing a request
Name
Type
Description
name
string
Fully qualified service name executing a request
region_id
string
Region of the service handling this request.
TimeInterval Message
A time interval extending just after a start time through an end time.
If the start time is the same as the end time, then the interval
represents a single point in time.
Name
Type
Description
end_time
.google.protobuf.Timestamp
Optional - end of the time interval. If not provided, current time will be assumed.
start_time
.google.protobuf.Timestamp
Required. The beginning of the time interval. The start time must not be later than the end time.
4 - SPEKTRA Edge Limits Service API
Understanding the Limits service API.
The limits service is a core SPEKTRA Edge service that enables service
developers or product owners to enforce rules/quotas on the maximum
amount of resources that can exist within different scopes:
Limits are passed from top to bottom. First, the service administrator sets
the limits for the whole service. Once service limits are initialized, they
can be used to allocate resources to root organizations and projects.
Organizations can then pass limits further down to their child organizations
or projects.
Each Service is managing its quotas.
Limits/Usage could also be tied to the billing/licensing system.
Features/Capabilities of Limits service:
Ensures that limits in child projects/organizations do not exceed
those for their parents (organizations or system limits).
Ensures correctness and database transaction guarantees.
Enables passing down limits in various cases (like region to region
within a project, parent organization to child organization, etc).
Uses monitoring service to record historical changes in resource
consumption.
Ensures that limits can be passed only between parent/child
organization/project.
Enforces parent organization/service consent before modifying limits in
child entities.
Is designed to work in a multi-regional environment. When a limit is
assigned to a multi-regional project, then limits are split across
all regions. The system tracks each regional limit individually.
When an accepted limit plan is created or the limits are increased,
limits assigned to the assigner are reserved for
an assignee with an immediate effect. When
the accepted plan is deleted, or the limits are decreased, the limits
are returned to the assigner once they have been
cleaned up.
The system constantly syncs configuration from accepted limit plans into
plan assignments, in an asynchronous manner.
It also means that the organization/service
administrators can practically modify
plan assignments.
If an organization/service administrator
accepts any plan assignment request, they are making indirect modifications
to their accepted limit plan instances, but both ways use the same workflow.
Limits
A limit combines a project, resource type, region,
and two configurable values:
allowance
current usage
It makes sure that the number of resources in a given project/
region does not exceed the allowed value. It is important to
note that Limits are only for projects, final
assignees, which can create resources that count
into usage.
Each service in each region maintains its own set
of trackers for all present projects.
It is also important to note, that each limit is derived from
a limit plan assignment that contains
a given resource type. They are being created/modified/deleted
according to the configuration stored in
limit plan assignments. They cannot be
modified by administrators.
Limit Assignees
A limit assignee is an SPEKTRA Edge entity capable of receiving limits
from their parent. A limit assignee is typically an
organization or a project.
Service is a special type of assignee, it can assign
resources to itself without taking from parent entity limits.
Limits for the service should be decided by
service owners or developers. Services and organizations
are both the assignor and
the assignee, only projects are the final
assignees.
Limit Assigners
A limit assigner is an SPEKTRA Edge entity capable of passing down their
limits to their child entities. Because only services and
organizations may have child entities, sub-organizations
and projects) the assigner could be either an
organization (organization admin) or service
(service admin).
Limit Plans
A limit plan is a set of limits per resource type. It must be
associated with some SPEKTRA Edge services. Resources it contains
must be from that service.
Assignees may have many limit plans assigned at once,
but each must be from a different service.
Each service must define default limit plans, but
organizations can define them too, for their child entries.
Limit Plan Assignments
A limit plan assignment is a resource that binds a limit plan
with an assignee. It may also include extra limits
that increase default values predicted by the plan.
limit plan assignments are not modifiable. Changes should be requested
by the assignee or should be changed by
assigners (it is assumed that assigners
will respect any service agreement).
Limit plan Assignments for projects also contain regional
distribution of limits.
Limit Plan Assignment Requests
A limit plan Assignment Request is a formal request made by
an assignee that, once accepted by
the assigner, creates a new
plan assignments or modifies
an existing one. This resource is a formal API allowing
an assignee to request a change in their limits.
A limit plan assignment request can be used for:
Assigning/Upgrading/Downgrading plan
Extending/Decreasing individual limits for specific resources
Certain requests may be automatically accepted by the system.
Limit Pools
A limit pool is similar to limit as it also “limits”
the number of resources in existence. However, while Limit
keeps track of resources in a specific scope and ensures it does not
exceed the allocated value, the limit pool serves as a source to limits
(and other limit pools). Limit instances belonging to
projects, final assignees. Limit Pools belong
to services and organizations, which are passing limits down
to projects and sub-organizations.
Like limits, the individual limit pool are computed from
limit plan assignments belonging to
the service/organization. Whenever assignments
change, the limit pools are modified accordingly. They cannot be modified
by administrators.
Multi-Region Note
Plans define resource limits per each region. For example, when
the Service assigns itself a plan with 100K Devices from the
devices.edgelq.com service, it means that it will have LimitPool for
each region with a value of 100K for Devices.
When the Service expands to a new region, it will get new LimitPool resources
for all its resource types. Those new LimitPools will be brand new, and
existing LimitPools will not change.
When an Organization is assigned some plan, all resource limits from
a plan will be applied for each region in which the organization
is enabled. Therefore, LimitPool for a particular resource type will
be created for each organization region.
When an Organization expands to a new region, it will get new LimitPool
resources, and existing ones will not be touched.
LimitPools for Service and Organizations are always regional - regardless
of whether the resource type is regional itself or not.
There is a difference on a Project level though. For example, let’s take
two resource types:
Suppose we create a Project with a plan that predicts:
10 Distributions, 100 Pods (per Region)
If the Project is enabled for a single region, let’s say us-west2,
it will have limits:
10 Distributions, Region: us-west2
100 Pods, Region: us-west2
Parent Organization will have the following reservations on its limit pools:
Distributions in us-west2: 10 reserved quota
Pods in us-west2: 100 reserved quota
If the project expands to a new region, let’s say eastus2, then
the project will have the following limits:
10 Distributions, Region: us-west2
100 Pods, Region: us-west2
100 Pods, Region: eastus2
Parent Organization will have the following reservations on its limit pools:
Distributions in us-west2: 10 reserved quota
Distributions in eastus2: 10 reserved quota
Pods in us-west2: 100 reserved quota
Pods in eastus2: 100 reserved quota
Pods should be clear, but Distributions require clarification as, to why
a Limit of 10 requires sourcing two LimitPools from both enabled regions.
The main thing is, that “global” resources are putting pressure on
all regions where Project is enabled - typically, they are synced across
all regions. Distribution resources are working in all project regions.
One instance of Distribution, even if it is managed by us-west2 only, can
create pods in both regions. This is why they source from all limit pools
for all enabled regions.
Limits Management
Assignee and Assigner have a different API for them but note
that Organization is generally both an Assignee and Assigner
Assigner, because it can have child projects and organizations.
Assignee, because it has either parent organization, or if this
is root organization, assigners are services themselves.
For an Assignee (Project or Organization admin)
The organization is assigned plans based on allowed_services values,
plus it automatically gets plans for core SPEKTRA Edge services:
devices.edgelq.com and applications.edgelq.com (implicitly).
There is no need to do anything to have core SPEKTRA Edge plans assigned,
it should be enough to just create an Organization. Plans for particular
services are enabled when the Organization is adding a service to the
allowed_services list.
Projects are similar, they get assigned core plans automatically, and
extra service plans only when they enable services via the enabled_services
field. PlanAssignments are created automatically unless the parent entity
has no free limit pools.
To see PlanAssignments that were created for organization, see:
cuttle limits list plan-assignments --organization <orgId> -o json
For project:
cuttle limits list plan-assignments --project <projectId> -o json
If you want to see limit pools assigned (for organization):
cuttle limits list limit-pools --organization <orgId> -o json
For a project, we should check limits:
cuttle limits list limits --project <projectId> -o json
If there is a need to change limits for a specific plan, it is required
that either:
Parent Organization admin (or Service for root organizations assignees)
updates AcceptedPlan resource from which PlanAssignment sources information.
Assignee admin creates PlanAssignmentRequest, which then is accepted
by parent organization admin (or Service admin for root organizations)
Let’s assume that there is Parent Organization, which defined the following
custom plan for devices:
# --plan-level PROJECT for project assignees!cuttle limits create plan --organization <parentOrgId> devices-service-500-devices \
--service 'services/devices.edgelq.com'\
--plan-level ORGANIZATION \
--business-tier LARGE \
--resource-limits '{"resource": "services/devices.edgelq.com/resources/Device", "value": 500}'
For example, parent organization admin could then modify AcceptedPlan, apply
plan with 500 devices for each region.
Limits service creates automatically AcceptedPlans for all child projects
and organizations, depending on the services they enable, and business tiers.
If you are a service admin, you can see all AcceptedPlan instances created
for root organizations and projects using this service:
cuttle limits list accepted-plans --service '<myServiceId>'
Organization admin can see plans they accepted with:
cuttle limits list accepted-plans --organization '<myOrgId>'
To see overall state of limit pools, service admins should execute:
cuttle limits list limit-pools --service <myServiceId> -o json
Organization admins can see their limit pools with:
cuttle limits list limit-pools --organization <myOrgId> -o json
Assigners (Service or Organization admins) can define plan templates
on their own. Service admins should use fixtures, as described in
the Developer guide. Organization admins can potentially use just
default plans defined by a Service for their child entities, however,
limit values may not match exactly their needs. Instead, they are recommended
to define their plans, for example:
Of course, it is necessary to provide resource limits for all required
resource types. Moreover, the plan should be created for all plan-level
and business-tier combinations required.
This is how assigners can create plans on their own. When they create child
entities, let’s say a Project:
In the above case (Assigner is an Organization), Limits service will create
automatically AcceptedPlans for all core SPEKTRA Edge and enabled services,
where --plan-level is PROJECT, and --business-tier matches the one
specified in <Tier> argument.
Assigner admins can manipulate AcceptedPlans further in two ways:
By accepting PlanAssignmentRequests made by child entity admins
(if they initiate an action)
By directly modifying AcceptedPlan instances
For example, AcceptedPlan can be directly modified from the plan assigned
by default:
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 of AcceptedPlan When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-zA-Z0-9_.-]{1,128}
Metadata 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).
Final allowances per resource/region - computed from extensions and all regional plans.
applied_regions
repeated string
List of regions ID where plan was applied - it is being taken from service/organization/project list of regions. Limits service extends plans if it notices expansion to the new region.
applied_plan_spec_generation
int64
Default region plan generation number, set during each update and creation. It is used to notice if plan got changed and we need to trigger accepted plan update.
Assignee 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.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListAcceptedPlansRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total AcceptedPlans across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.
WatchAcceptedPlanRequest Message
A request message of the WatchAcceptedPlan method.
Requested page size. Server may return fewer AcceptedPlans than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to AcceptedPlan that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to AcceptedPlan that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchAcceptedPlansResponse Message
A response message of the WatchAcceptedPlans method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All AcceptedPlans will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (AcceptedPlans will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateAcceptedPlanRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteAcceptedPlanRequest Message
A request message of the DeleteAcceptedPlan method.
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 of Limit When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-zA-Z0-9-]{1,128}\/[a-zA-Z0-9-.]{1,128}\/[a-zA-Z]{1,128}
Metadata 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).
Region ID to which this limit applies. This may be different compared to default project region, because projects themselves can be multi-regional.
configured_limit
int64
Configured limit - it is always in sync with limits predicted by PlanAssignment instances.
active_limit
int64
Active limit - it is always equal to configured limit with exceptions: * If configured limit has just changed, then active limit will for a moment contain old value before synchronization. * If it turns out that usage increased in the very same moment when configured limit decreased, then active limit will hold old value indicating problem. It is important to note that, because projects may be multi-regional, limits are tracked by their FINAL region (See region field). State fields (active limit and usage) are synced asynchronously. From user perspective this field can be hidden if in line with configured limit.
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.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListLimitsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Limits across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.
Requested page size. Server may return fewer Limits than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Limit that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Limit that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Limits will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Limits will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateLimitRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
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 of LimitPool When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-zA-Z0-9-]{1,128}\/[a-zA-Z0-9-.]{1,128}\/[a-zA-Z]{1,128}
Metadata 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).
Region ID to which this pool applies. This may be different compared to default region for service/organization, because they may use multiple regions.
configured_size
int64
Configured size of pool according to PlanAssignment instances belonging to same scope (system or organization).
active_size
int64
Active pool size. It will be normally equal to configured size. However, if configured size goes down below reserved value, then active size will be equal to that “reserved”. It will also prevent parent LimitPool (if any) from getting limit value back.
reserved
int64
Configured OR Active Size of all child Limit and LimitPool instances - whichever is bigger.
LimitPool source that supplied reservation to this LimitPool. Any change in configured/active value in current LimitPool increases/decreases reserved field in source LimitPool.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListLimitPoolsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total LimitPools across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.
Requested page size. Server may return fewer LimitPools than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to LimitPool that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to LimitPool that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All LimitPools will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (LimitPools will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateLimitPoolRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
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 of Plan When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-zA-Z0-9_.-]{1,128}
Metadata 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).
Business tier - this only is used to determine default plan when project/organization is created. It is possible to set this value to UNDEFINED rendering this plan as non-default.
generation
int64
Spec generation, incremented for every change in resource_limits field.
Plan.LimitValue Message
LimitValue informs how many instances of resource for given type are
permitted.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListPlansRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Plans across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.
Requested page size. Server may return fewer Plans than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Plan that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Plan that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Plans will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Plans will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdatePlanRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
PlanLevel defines entity level for whom plan can be assigned
Name
Description
UNDEFINED
SERVICE
ORGANIZATION
PROJECT
PlanAssignment Resource
PlanAssignment binds plan (with optional customizations) with specific
entity (assignee - either system, organization or project).
Plan assignments (sum of them) are used to compute configured size of
limit pools (system and organizations) AND limits (projects).
They are not modifiable - limits are passed from system to projects,
so each PlanAssignment must be agreed by higher instance (parent organization
or system). System recognizes acceptance by existence of AcceptedPlan
instances - it synchronizes PlanAssignment instances with them.
Name of PlanAssignment When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-zA-Z0-9_.-]{1,128}
Metadata 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).
Final allowances per resource/region - computed from extensions and all regional plans.
applied_regions
repeated string
List of regions ID where plan was applied - it is being taken from service/organization/project list of regions. Limits service extends plans if it notices expansion to the new region.
applied_plan_spec_generation
int64
Default region plan generation number, set during each update and creation. It is used to notice if plan got changed and we need to trigger plan update.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListPlanAssignmentsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total PlanAssignments across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.
WatchPlanAssignmentRequest Message
A request message of the WatchPlanAssignment method.
Requested page size. Server may return fewer PlanAssignments than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to PlanAssignment that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to PlanAssignment that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchPlanAssignmentsResponse Message
A response message of the WatchPlanAssignments method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All PlanAssignments will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (PlanAssignments will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdatePlanAssignmentRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeletePlanAssignmentRequest Message
A request message of the DeletePlanAssignment method.
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 of PlanAssignmentRequest When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
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
List of all extensions over basic plan. Extensions without specified region will apply to all regions if value of field “region” in this request is also empty. However, if “region” is specified, then extensions defined here will be applicable for this region only.
region
string
Optional region ID for the plan - if not specified, assigned plan will apply to all regions (default plan for region), BUT it will not override plans for specific region in existing PlanAssignment.
PlanAssignmentRequest.RequestType.Extend Message
Extend request should be used in order to increase (optionally
decrease) limits from existing plan assignment. Note each addition
can be applied to one or all regions.
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.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListPlanAssignmentRequestsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total PlanAssignmentRequests across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.
WatchPlanAssignmentRequestRequest Message
A request message of the WatchPlanAssignmentRequest method.
Parent name of ntt.limits.v1.PlanAssignmentRequest
page_size
int32
Requested page size. Server may return fewer PlanAssignmentRequests than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to PlanAssignmentRequest that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to PlanAssignmentRequest that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchPlanAssignmentRequestsResponse Message
A response message of the WatchPlanAssignmentRequests method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All PlanAssignmentRequests will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (PlanAssignmentRequests will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeletePlanAssignmentRequestRequest Message
A request message of the DeletePlanAssignmentRequest method.
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]
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
New version of AcceptedPlan or masked difference, depending on mask_changes instrumentation of issued [WatchAcceptedPlanRequest] or [WatchAcceptedPlansRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified AcceptedPlan. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying AcceptedPlan new index in resulting query view.
AcceptedPlanChange.Removed Message
Removed is returned when AcceptedPlan is deleted or leaves Query view
New version of Limit or masked difference, depending on mask_changes instrumentation of issued [WatchLimitRequest] or [WatchLimitsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Limit. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Limit new index in resulting query view.
LimitChange.Removed Message
Removed is returned when Limit is deleted or leaves Query view
New version of LimitPool or masked difference, depending on mask_changes instrumentation of issued [WatchLimitPoolRequest] or [WatchLimitPoolsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified LimitPool. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying LimitPool new index in resulting query view.
LimitPoolChange.Removed Message
Removed is returned when LimitPool is deleted or leaves Query view
New version of PlanAssignment or masked difference, depending on mask_changes instrumentation of issued [WatchPlanAssignmentRequest] or [WatchPlanAssignmentsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified PlanAssignment. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying PlanAssignment new index in resulting query view.
PlanAssignmentChange.Removed Message
Removed is returned when PlanAssignment is deleted or leaves Query view
Integer specifying removed PlanAssignment index. Not populated in stateless watch type.
PlanAssignmentRequestChange Message
PlanAssignmentRequestChange is used by Watch notifications Responses to
describe change of single PlanAssignmentRequest One of Added, Modified,
Removed
New version of PlanAssignmentRequest or masked difference, depending on mask_changes instrumentation of issued [WatchPlanAssignmentRequestRequest] or [WatchPlanAssignmentRequestsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified PlanAssignmentRequest. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying PlanAssignmentRequest new index in resulting query view.
PlanAssignmentRequestChange.Removed Message
Removed is returned when PlanAssignmentRequest is deleted or leaves Query
view
New version of Plan or masked difference, depending on mask_changes instrumentation of issued [WatchPlanRequest] or [WatchPlansRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Plan. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Plan new index in resulting query view.
PlanChange.Removed Message
Removed is returned when Plan is deleted or leaves Query view
AcceptedPlan shows a plan accepted by assigner (system or organization)
for project, organization and system - with all additional information
like extensions or regional distributions.
It is in relation 1-1 with PlanAssignment, BUT:
PlanAssignment is read-only and represents information for Assignee.
Name pattern indicates to WHOM plan is assigned.
AcceptedPlan contains accepted configuration and represents information
for assigner. Name pattern indicates WHO ASSIGNED a plan. It is modifiable,
BUT modifications of accepted plans may result in increased usage of
allowed limit pools - Organization/System cannot accept plans to sub-entities
without limits (however, system is allowed to assign plan to itself without
limits, which makes system admin fully responsible).
Name 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}
Distribution of limits by regions. It does not need to be populated by user in Create/Update requests - system automatically distributes limits across regions equally. Returned AcceptedPlan instance from Create/Update will contain this field populated. If user wants to have some specific resource distributed in certain way, they can do it by partially populating this field too. System will distribute automatically only remaining numbers.
Assignee 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.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListAcceptedPlansRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total AcceptedPlans across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.
WatchAcceptedPlanRequest Message
A request message of the WatchAcceptedPlan method.
Requested page size. Server may return fewer AcceptedPlans than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to AcceptedPlan that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to AcceptedPlan that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchAcceptedPlansResponse Message
A response message of the WatchAcceptedPlans method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All AcceptedPlans will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (AcceptedPlans will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateAcceptedPlanRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteAcceptedPlanRequest Message
A request message of the DeleteAcceptedPlan method.
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.
Region ID to which this limit applies. This may be different compared to default project region, because projects themselves can be multi-regional.
configured_limit
int64
Configured limit - it is always in sync with limits predicted by PlanAssignment instances.
active_limit
int64
Active limit - it is always equal to configured limit with exceptions: * If configured limit has just changed, then active limit will for a moment contain old value before synchronization. * If it turns out that usage increased in the very same moment when configured limit decreased, then active limit will hold old value indicating problem. It is important to note that, because projects may be multi-regional, limits are tracked by their FINAL region (See region field). State fields (active limit and usage) are synced asynchronously. From user perspective this field can be hidden if in line with configured limit.
LimitPool source that gave birth to this Limit. Any change in configured/active value in current Limit increases/decreases reserved field in source LimitPool.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListLimitsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Limits across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.
Requested page size. Server may return fewer Limits than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Limit that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Limit that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Limits will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Limits will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateLimitRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
LimitPool represents a pool from which next LimitPool
or final Limit instances are allocated from. LimitPool
can either belong to a system (first pool, without parent) or
organization (which got pool from system or parent organization).
Size of child limit or limit pools must not exceed parent
limit pool.
LimitPool is in a way similar to Limit - it has scope and
associated resource but:
LimitPool is non-final object. It cannot be used to
allocate resources directly. It need child Limit first. So
field with values in LimitPool are configured size, active
size and reserved. Fields in Limit are configured limit,
active limit and usage - they need different interpretation.
LimitPool is not regional, because it may feed limits in
other regions. Limit has extra tracker in their final region
for state synchronization purpose.
Because LimitPool instances within one scope (system, organization)
are managed by primary region of that scope, changes in them
are done with only single transaction.
LimitPool instances cannot be created or deleted. They cannot be
also be modified (there are only some state fields controlled
by system). LimitPools are created/modified along with
PlanAssignment instances.
Configured size of pool according to PlanAssignment instances belonging to same scope (system or organization).
active_size
int64
Active pool size. It will be normally equal to configured size. However, if configured size goes down below reserved value, then active size will be equal to that “reserved”. It will also prevent parent LimitPool (if any) from getting limit value back.
reserved
int64
Configured OR Active Size of all child Limit and LimitPool instances - whichever is bigger.
LimitPool source that gave birth to this LimitPool. Any change in configured/active value in current LimitPool increases/decreases reserved field in source LimitPool.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListLimitPoolsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total LimitPools across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.
Requested page size. Server may return fewer LimitPools than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to LimitPool that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to LimitPool that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All LimitPools will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (LimitPools will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateLimitPoolRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
Plan is a bundle with set of limits for various resources.
Those resources should be mostly from service plan references,
but it can also include resources from imported services too.
Name patterns:
plans/{plan}
This section covers the methods
and messages to interact
with Plan resource.
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}
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListPlansRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Plans across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_size
int32
Requested page size. Server may return fewer Plans than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Plan that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Plan that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Plans will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Plans will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdatePlanRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
PlanLevel defines entity level for whom plan can be assigned
Name
Description
UNDEFINED
SYSTEM
ORGANIZATION
PROJECT
PlanAssignment Resource
PlanAssignment binds plan (with optional customizations) with specific
entity (assignee - either system, organization or project).
Plan assignments (sum of them) are used to compute configured size of
limit pools (system and organizations) AND limits (projects).
They are not modifiable - limits are passed from system to projects,
so each PlanAssignment must be agreed by higher instance (parent organization
or system). System recognizes acceptance by existence of AcceptedPlan
instances - it synchronizes PlanAssignment instances with them.
Name 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}
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListPlanAssignmentsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total PlanAssignments across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.
WatchPlanAssignmentRequest Message
A request message of the WatchPlanAssignment method.
Requested page size. Server may return fewer PlanAssignments than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to PlanAssignment that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to PlanAssignment that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchPlanAssignmentsResponse Message
A response message of the WatchPlanAssignments method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All PlanAssignments will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (PlanAssignments will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdatePlanAssignmentRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeletePlanAssignmentRequest Message
A request message of the DeletePlanAssignment method.
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 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]
Assign request requests for new PlanAssignment instance. If there
already is a plan for same service, then previous record is overwritten.
In other words, this request can also be used to upgrade/downgrade
existing plan.
Optional list of distributions across regions. This field can only be used for project plans only. It may be provided fully or partially by user - system will automatically distribute remaining limits equally across all regions.
PlanAssignmentRequest.RequestType.Extend Message
Extend request should be used in order to increase (optionally
decrease) limits from existing plan assignment.
Distributions of NEW (only!) limits across regions. It does not allow for redistribution of existing limits before. It is optional, but can be provided only for project plans. May be provided fully or partially, system will distribute remaining limits on its own.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListPlanAssignmentRequestsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total PlanAssignmentRequests across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.
WatchPlanAssignmentRequestRequest Message
A request message of the WatchPlanAssignmentRequest method.
Parent name of ntt.limits.v1alpha2.PlanAssignmentRequest
page_size
int32
Requested page size. Server may return fewer PlanAssignmentRequests than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to PlanAssignmentRequest that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to PlanAssignmentRequest that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchPlanAssignmentRequestsResponse Message
A response message of the WatchPlanAssignmentRequests method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All PlanAssignmentRequests will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (PlanAssignmentRequests will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeletePlanAssignmentRequestRequest Message
A request message of the DeletePlanAssignmentRequest method.
A token identifying a page of results the server should return. Typically, this is the value of [ListPlanAssignmentRequestsResponse.next_page_token][ntt.limits.v1alpha2.ListPlanAssignmentRequestsResponse.next_page_token]
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
New version of AcceptedPlan or masked difference, depending on mask_changes instrumentation of issued [WatchAcceptedPlanRequest] or [WatchAcceptedPlansRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified AcceptedPlan. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying AcceptedPlan new index in resulting query view.
AcceptedPlanChange.Removed Message
Removed is returned when AcceptedPlan is deleted or leaves Query view
New version of Limit or masked difference, depending on mask_changes instrumentation of issued [WatchLimitRequest] or [WatchLimitsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Limit. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Limit new index in resulting query view.
LimitChange.Removed Message
Removed is returned when Limit is deleted or leaves Query view
New version of LimitPool or masked difference, depending on mask_changes instrumentation of issued [WatchLimitPoolRequest] or [WatchLimitPoolsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified LimitPool. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying LimitPool new index in resulting query view.
LimitPoolChange.Removed Message
Removed is returned when LimitPool is deleted or leaves Query view
New version of PlanAssignment or masked difference, depending on mask_changes instrumentation of issued [WatchPlanAssignmentRequest] or [WatchPlanAssignmentsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified PlanAssignment. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying PlanAssignment new index in resulting query view.
PlanAssignmentChange.Removed Message
Removed is returned when PlanAssignment is deleted or leaves Query view
Integer specifying removed PlanAssignment index. Not populated in stateless watch type.
PlanAssignmentRequestChange Message
PlanAssignmentRequestChange is used by Watch notifications Responses to
describe change of single PlanAssignmentRequest One of Added, Modified,
Removed
New version of PlanAssignmentRequest or masked difference, depending on mask_changes instrumentation of issued [WatchPlanAssignmentRequestRequest] or [WatchPlanAssignmentRequestsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified PlanAssignmentRequest. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying PlanAssignmentRequest new index in resulting query view.
PlanAssignmentRequestChange.Removed Message
Removed is returned when PlanAssignmentRequest is deleted or leaves Query
view
New version of Plan or masked difference, depending on mask_changes instrumentation of issued [WatchPlanRequest] or [WatchPlansRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Plan. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Plan new index in resulting query view.
PlanChange.Removed Message
Removed is returned when Plan is deleted or leaves Query view
Dynamic metric configuration: all resource/metric descriptors (schemas)
are managed through an API.
Monitoring includes a background pipeline that helps reduce query times
for wide time intervals, such as a week, month, or year
Ability to configure pre-aggregated or paginated (sorted) db indexes via API.
Time series data compaction
Time series watch (subscribe)
Time series forwarding
Automatic alerting based on incoming time series
Multi-indexing: Provides faster response times than traditional time series
databases and supports multiple query patterns.
Metrics Definition
The Monitoring Service predefines a schema for time-series data and uses that
schema to populate data and execute queries.
The schema is defined in two stages, with the upper level definition being
the resource definition and the lower level definition being the metrics
definition.
The higher-level resource definitions are units of entities that generate
metrics and are defined as Monitored Resource Descriptors. For example,
an entity that generates metrics, such as an SPEKTRA Edge device or SEI agent,
exists as a resource. A resource definition contains the name of the resource
as well as additional information such as labels.
Resource definitions are defined at the service level and are usually
available only for reference by the user. Predefined resources can be viewed
with the following commands, example for devices service:
cuttle monitoring list monitored-resource-descriptors \
--service devices.edgelq.com
Lower-level metric definitions define individual values and are defined as
Metric Descriptor resources. For example, a metric definition could be the
CPU utilization of an SPEKTRA Edge device or the latency measured by the SEI
agent. In addition to the name of the metric, the metric definition defines
a label as additional information and a data type.
On top of that, metric descriptor defines indices (per resource type).
In Monitoring service, metric descriptors are designed to “know” resource
descriptors, therefore time series storage indices are defined on metric
descriptors level.
The following commands can be used to reference a Metric Descriptor in a project:
cuttle monitoring list metric-descriptors --project $PROJECT
Each metric has a defined data type and metric type.
Metric types include, for example, general GAUGE (e.g., CPU utilization),
cumulative CUMULATIVE (e.g., total network interface transfer volume), and
differential DELTA.
Data types include INT64 for general integer values, DOUBLE for real
numbers, and DISTRIBUTION for histograms.
Note that a list of labels defined for each resource and metric can be
obtained by adding the --view FULL option when executing the list command.
The labels can be used as filter conditions when executing the query described
below.
Please take a look at the following fixtures for the metric as well as the
monitored resource descriptors for your reference:
Some metric descriptor resources are automatically created in the Project scope
each time a Project resource is created. As the scope is Project, the resource
can be managed both by the system and ordinary users - to some extent.
By default, each project gets Applications/Devices metric descriptors defined
for pods and devices. Project may enable more optional services, which can
create additional metric descriptors.
Service-provided Metric Descriptors provide:
Defining labels (sometimes called keys)
Built-in indices
Determining value type, metric type and distribution options
Users of the projects can:
Define their own indices, as an addition to those built-in.
Customize storage options
TimeSerie
Time Series is identifiable by a unique set of:
project + region
metric type and labels
resource type and labels
Example of individual TimeSerie is number of packets in on a specific
interface on a specific virtual machine.
Time series data points are expected to arrive in order and from a single
client at once.
TimeSerie can be identified not only by project+region+metric+resource
fields, but also by key. There is 1-1 relation between a binary key
(encoded as base64 in this example above) and a string label set.
Project, region, metric.type and resource.type must always exist and
be specified.
Individual TimeSerie has list of points. Information about individual point
types can be obtained from fields metricKind, valueType and unit.
Note that those values may actually differ between queries: If user asks
for COUNT aggregation, valueType will be always INT64. If user is
interested in MEAN, it will be DOUBLE. Unit is fetched from
MetricDescriptor.
Metric Kinds
Gauge
The most common metric type - represents “in-moment” measurement, like
Used Memory or statistics over a small period, like: CPU Usage.
Cumulative
Monotonically increasing value, like interface packet count. May be reset
from time to time, but that should not affect the aggregated total sum.
Useful for billing purposes.
Delta
Delta Kind may correspond to changes in resource usage like added new Device
(+1) or removed Device (-1). Useful for quota control, request counting, or
any case where maintaining Cumulative value isn’t an option.
Values Types
INT64
Useful for Metrics that represent counters, like packet or request counts,
or Gauges like used memory.
DOUBLE
Floating point value - useful for Gauge values, like CPU Utilization, etc.
DISTRIBUTION
A histogram is useful for retaining more information about data-point
value distribution when performing multiple aggregation steps
(Align + Reduce), like request latency where we’re interested in
the 99th percentile, not just mean.
A phantom time series allows to ensure that time series
with specific value when responsible agent is down (or disconnected) and
doesn’t emit anything. Usually orchestrated by controllers to provide
device or agent down-detection.
You can also think of phantom time series as generators, as they emit specified
points each minute.
Running a query
Unlike other resources, TimeSerie obtains information through an operation
called Query.
Standard list queries
The following example queries the SEI agent (watchdog.edgelq.com/probe)
as a resource and the metrics as packet loss
(watchdog.edgelq.com/probe/session/delivery).
Standard list time series queries are those that contain:
Project
Filter (specifying metric.type)
Aggregation
Interval
--parent
All time series belong to some project, and it is necessary to specify
project from which we query time series. Each project has own dedicated
database indices, and is protected by authorization.
--filter
Describes filter conditions for the query combined with AND operator.
Filter is a string that should satisfy:
metric.type <EqualityOp> <MetricTypes> [AND <FilterPath> <Operator> <Values>].
Expressions within [] may be repeated many times (or not at all).
<EqualityOp> must be equal to = or IN
<MetricTypes> may be an array for IN operator, or just a quoted string for
single value.
<FilterPath> must be a valid path in TimeSerie object. It must be one of:
resource.type: Points to MonitoredResourceDescriptor. If user does not
provide it, system deduces possible values based on metric.type.
metric.labels.<Key>, where <Key> must be a valid label key present in
MetricDescriptor resource (Field labels). If user specified more than
one metric type, then labels must be present in all of them!
resource.labels.<Key>, where <Key> must be valid label key present in
MonitoredResourceDescriptor resource (Field labels). If user specified
multiple resource types, then label must be present for all of them! If
user did not specify resource type, label will must match whatever system
determines is actual resource type.
region: All time series belong not only to the project, but also to
specific regions. Project must be enabled in at least one region, but
may belong to the multiple regions. If region filter condition is not
specified, then query is redirected to all regions where project is
enabled. It is advisable to provide region in the filter if we know it.
This way query will be not broadcast to multiple regions, which saves
on latency.
<Operator> must be equal to =, !=, IN or NOT IN.
<Values> may be single string value (quoted) or an array of quoted strings
between [] characters.
--aggregation
You can specify an alignment interval (alignmentPeriod), an aligner
for each time series (perSeriesAligner), and a reducer across time series
(crossSeriesReducer).
The alignment interval specifies the granularity of data required.
The minimum granularity is 1 minute (60s or 1m), and the other available
granularities are:
3 minutes (3m)
5 minutes (5m)
15 minutes (15m)
30 minutes (30m)
1 hour (1h)
3 hours (3h)
6 hours (6h)
12 hours (12h)
1 day (1d)
Note that unaligned data cannot be acquired.
The alignment interval must be set appropriately for the value of
the period (--interval) value described below. Specifying a small
alignment interval with a large period value may cause the query to fail
due to the large amount of data to be processed.
The Aligner per Time Series defines the process used to merge data within
an alignment period. For example, if the alignment interval is 5 minutes
and the original data is stored every minute, there will be 5 data points
in one alignment period. In this case, the data representative of
that alignment period must be calculated, and the calculation method must be
specified according to the application.
Below is a list of typical aligners that are commonly used:
ALIGN_MIN, ALIGN_MAX, ALIGN_MEAN, ALIGN_STDDEV
use the minimum, maximum, average or standard deviation value within the period.
ALIGN_COUNT
use the number of data points in the period.
ALIGN_SUM
computes sum of values within specified alignment period.
ALIGN_SUMMARY
use the composite value of the histogram within the period.
(Distribution type only).
ALIGN_DELTA
extract difference between current value specified at current end timestamp
and previous value at previous end timestamp. This aligner works only
for CUMULATIVE and DELTA metric types (Field metric_type in MetricDescriptor must
be either of those values).
ALIGN_RATE
Works like ALIGN_DELTA, but also divides result by number of seconds within
period (alignment period).
Reducer is used to group multiple time series and combine them to produce
a single time series. This option is used in conjunction with
the groupByFields option, which specifies the criteria for grouping.
For example, to obtain a time series of the average CPU usage of all devices
in a specific project, specify resource.labels.project_id in the
groupByField option, then specify REDUCE_MEAN as the reducer.
## If the above example is used as a parameter.{... "crossSeriesReducer": "REDUCE_MEAN", "groupByFields": ["resource.labels.project_id"]}
Below is a list of typical reducers that are commonly used.
REDUCE_NONE
no grouping, no composite time series. Field groupByFields is not relevant.
REDUCE_COUNT
Computes number of merged time series. Note it is not a sum of number of points
within merged time series!. To have sum of data points, use ALIGN_COUNT combined
with REDUCE_SUM.
It is important to note, that specific reducers (MEAN, STDDEV, any PERCENTILE), are typically best
used with perSeriesAligner ALIGN_SUMMARY. This allows to eliminate imbalances between individual
time series, and displays proper mean/percentile. Rate/Delta values (ALIGN_DELTA and ALIGN_RATE) are
often used with REDUCE_SUM, similarly counters (ALIGN_COUNT) are best used with REDUCE_SUM as well.
See API Specifications
for details on available aligners and reducers and the conditions under
which they can be used.
--interval
Specify the time period for which time series data is to be retrieved.
Specify the start time and end time in RFC3339 format for startTime and
endTime. Please refer to “Data Storage Period” to set the available time
periods.
Pagination queries
Standard list time series queries are those that contain:
Project
Filter (specifying metric.type)
Pagination
Interval
One of the differences between regular queries and paginated, is that
latter have aggregation function built-in. Paginated views must be defined
within MetricDescriptors (more on it later), functions define aligner,
reducer, and sorting order.
Pagination queries are helping to traverse/iterate over large number of
individual time series.
Pagination view describes:
labels that separate individual time series into different pagination
rankings (filterable/promoted labels).
labels identifying individual time series to be sorted (paginated labels).
Labels that are neither of the above are reduced (time series are merged).
Function describes:
Aligner+reducer extracting double/integer value from each timestamp in each
individual time series (after merging those with reduced labels). Final
value will be used for sorting purposes.
Sorting direction
Time series across projects/regions will never be sorted together.
Function (aligner+reducer) must extract either double or integer value.
Mechanism is following: For specified pagination view, each TimeSerie is
sorted into specific ranking (project, region, metric and resource types are
minimal shared properties of individual ranking, plus filterable/promoted
labels). Within single ranking, function (aligner+reducer) extracts
double/integer value from each TimeSerie for each timestamp. Finally, for
each timestamp individually, sorted ranking of TimeSeries is created in
specified order.
For example, imagine we have metric.type equal to
devices.edgelq.com/device/disk/used. This metric describes number of bytes
used on a disk. Matching resource.type is devices.edgelq.com/device.
Imagine we have a project and region where we have 10000 devices, and each
has 3 partitions (name and mount). We can use paginated query to find out
top 20 devices for each partition, but within single project and region.
Query can look like the following example:
This query, in order to work, must have in MetricDescriptor defined pagination
view ByDevice and function Mean. We will describe this later on in
Indices Management.
For now, assume that:
View ByDevice is the one where partition (name + mount) labels are
separating TimeSeries into different rankings. Resource label device_id
is the one label we keep in each individual ranking.
Function Mean is using ALIGN_SUMMARY+REDUCE_MEAN in DESCENDING order.
Because we know there are 3 common partitions across all devices, we will
receive, for each timestamp (19:00:00, 20:00:00, 21:00:00, 22:00:00),
60 time series data points (3 partitions by 20 devices) belonging to
different TimeSerie objects.
Notes for caution:
Each partition has its own ranking of top devices. Therefore, for partition
“A” you may get 20 totally different devices compared to other partitions
“B” and “C”.
Each timestamp has its own ranking too. 20 devices for time T1 may be
different from timestamp T1+1, if one device within same partition took
over “one of the top 20 places”. As of now monitoring does not average
values across whole specified interval to make sure time series between
timestamps do not change. In the final response message, it is possible
to receive TimeSeries object with data points with timestamps like
(19:00:00, 20:00:00, 22:00:00) - note missing 21:00:00. It does not mean
data point does not exist, it only means that this TimeSeries for this
timestamp does not fit into top 20.
Parameters other than --pagination are same as for standard queries.
Watch command
It is also possible to receive time series as they appear in the service.
You need the cuttle version 2.5.0 or above to run the following
command.
Arguments are same as in standard queries, except --interval is not
supported. It is replaced by --starting-time. Starting time should not be
too far into te past (as of now, it can be one week old).
This is streaming long-running command. When some TimeSerie object is seen for
the first time, monitoring will retrieve all data points from starting time
(and including). It will also fetch full headers (metric & resource type and
labels, project, region, unit).
Here is an example initial time series retrieved by the command above, assuming
that current time is past 2025-01-01T12:05:00Z.
This time, fields project, region, unit, metric and resource are not
returned. Instead, caller should find matching TimeSerie object using key
value seen in the past. This mechanism ensures system does not need to fetch
again all TimeSerie metadata, saving on latency, bandwidth, resource
consumption.
Data point is unique for given key and interval.endTime fields.
Watch time-series call works using at-least-once principle. It is possible to:
Re-receive again full data headers for some TimeSerie object despite being
already seen.
Re-receive data points for given TimeSerie object (by key). In other words,
for some key field, in one moment you may receive data points for timestamps
(2025-01-01T12:00:15Z, 2025-01-01T12:00:20Z, 2025-01-01T12:00:25Z),
then (2025-01-01T12:00:20Z, 2025-01-01T12:00:25Z, 2025-01-01T12:00:30Z).
User should prefer last value received for given key and timestamp.
Those received-again data points/headers are possible due to:
Maintenance restarts of internal services.
Autoscaling events (which may cause also restarts).
Recoveries from abnormal situations.
It is also possible that edge devices will submit late data points causing
corrections of some received before values.
Finally, a TimeSerie object with unique key may be not exactly synchronized
with other TimeSerie regarding timestamps: It is possible to receive data point
with timestamp 2025-01-01T12:00:15Z for TimeSerie A, then
2025-01-01T12:00:05Z for TimeSerie B (earlier). Typically, timestamps for
all TimeSerie should grow equally, but if some edge agent goes offline, it is
possible for them to submit LATE data when it comes online. Watch time-series
may return multiple late data points for this given edge object.
If edge agent comes online way too late, system may refuse data points over
certain age though. As of now, maximum allowed age is one hour. Therefore, if
device comes online after more than 1 hour break, older data points will not
be accepted. TimeSeries received over watch (and actually also over List) will
have gap in timestamps.
Data retention period
Data can only be acquired for a limited time depending on the alignment
interval. For example, data with a resolution of 1 m (1 minute) can only
be acquired up to 14 days in the past. If you want data up to 90 days old,
you must use an alignment interval of 30 minutes.
This table represents retention periods:
Alignment Interval
Storage Period
1m
14 days
3m
28 days
5m
42 days
15m
62 days
30m
92 days
1h
184 days
3h
366 days
6h
732 days
12h
1098 days
1d
1464 days
By default, all time series have those alignment periods enabled. It is
however possible to opt-out from them using storage options in MetricDescriptor
instances. For example, if we only need up to 1h alignment period of
devices.edgelq.com/device/connected metric type in project your-project,
we can do that making an update:
This allows to significantly reduce number of data points to be created and
stored, lowering total costs (especially long term storage).
It is not possible to disable individual alignment periods “in the middle”.
Higher alignments require lower alignments.
Buckets
It is possible to restrict time series creation/queries to a specific subset
within the project scope.
For example, suppose we have a device agent, and we want to ensure it can
read/write only from/to specific owned time series. We can create
the following bucket:
The project can be specified in RoleBinding. When we assign the Role to
the Device, the device agent will be only able to create/query time series
for a specific bucket - and this bucket will guarantee that:
Device can read/submit TimeSeries only for devices.edgelq.com/device or
applications.edgelq.com/pod resource types.
Metric types are not restricted
All time series for resource descriptors will have to specify
a “project_id” label equal to the specified project, “region_id” equal
to the specified region, and “device_id” equal to the specified device.
When querying, the filter will have to specify all those fields.
Buckets ensure also correctness even if the client is submitting binary
time series keys (A key in TimeSerie is provided, which allows to skip metric
and resource types and labels).
Provided example above is for information - Service devices.edgelq.com
already provides Buckets for all Devices!
Alert management
Monitoring service can observe specified time series to spot issues and trigger
alerts.
Policies and conditions
Top monitoring resource is AlertingPolicy. It is characterized by:
Project and region scope.
Can hold multiple alerting conditions.
Can be enabled/disabled - in disabled state none of the conditions are
evaluated.
$ cuttle monitoring list alerting-policies --project your-project -o json
Once you have alerting policy, you can create a condition. Condition has 3
spec components:
Time series query (filter and aggregation, without interval): Informs what
time-series are observed. Note that presence of aggregation means that one
condition can observe multiple time series objects.
Threshold: Informs when to trigger an Alert (based on time-series data).
Duration: Informs for how long data needs to exceed threshold before alert
is raised (or silenced).
Be aware, that alerting condition must belong to some policy, which is region
scoped. Therefore, a condition will have implicitly added region filter
condition. If you want to have same condition across multiple regions, you will
need to copy it as many times as you have regions in a project.
Suppose that we want to trigger an alert if avg CPU utilization on ANY device
exceeds 90% for at least 15 consecutive minutes, using granularity of 5 minutes.
Assume that time series are reported within range from 0.0 to 1.0. We can do
that with cuttle:
Note that in query we specify filter and aggregation fields. In other words,
pagination queries are not possible for alerting.
When alerting condition is created, monitoring checks non-aggregated and
pre-aggregated indices. It is worth mentioning here that alerting conditions
utilize watch time-series queries internally. Therefore,
labels in aggregation.groupByFields are taken into account when looking
at partitionLabelSets.
Number of TimeSeries objects monitored by a service for a single condition
depends on cardinality of labels in aggregation.groupByFields. Also, at any
given time, there can be as many firing alerts as many are unique TimeSeries
objects within fields defined by aggregation.groupByFields. Each Alert
instance is associated with:
Specific TimeSeries object according to aggregation.groupByFields.
Time range (starting and ending time).
Alerts for same TimeSeries will not overlap time-wise.
Duration field in condition specification has two meanings:
It indicates how long TimeSerie value should exceed threshold before alert
is raised.
It also tells how long TimeSerie value should be equal or below threshold
before firing alert is silenced.
Duration should be multiplication of aggregation.alignmentPeriod.
Non-firing alerts are deleted after 3 months as of now (garbage collected).
As of now this is not configurable.
Notifications
In order to enable notifications about alerts, it is necessary to create
NotificationChannel resource. It can be done using cuttle. As of now, there
are 3 type of notifications:
Refer to specifications of specified resources for more details what fields
are available.
Note that this is described as full message. Many fields are hidden to
reduce notification size. It is possible to define what field paths should
be included in each message using notificationMask field:
It should be used if there is a maximum size webhook can accept. By default
there is no limit.
Time series forwarding
TimeSeries objects can be queried or received in real-time manner using watch.
However, it is also possible to forward them to the external systems.
We can do that using two resources:
TimeSeriesForwarderSink: Provides target where time series can be stored
in protobuf format (with optional compression).
TimeSeriesCollectionRule: Provides persistent query that executes in the
service background. It can (should) be attached to sink resource.
Collection rules do not have to be in the same project as sink. Admins
may create one sink in major project and connect collection rules from minor
ones.
Creating sink requires providing some external endpoint. As of now, only
azure event hub is supported. Endpoint to azure event hub must contain
auth key, therefore it is necessary to create secret resource first:
Monitoring service detects automatically on start number of partitions.
With sink, you can create collection rules. They are very similar to
watch queries. You need to provide filter and aggregation.
Thenew argument is only sink.
Remember that fields filter, aggregation and sink cannot be changed.
You will need to recreate rule.
Under the hood, watch queries are executed by the system to forward time
series to the sink.
With described example setup, azure event hub should be receiving protobuf
objects of type ntt.monitoring.v4.BulkTimeSeries. If compression is used,
remember to decompress azure event bytes first, before attempting to
unmarshal BulkTimeSeries. Example simple Go code to parse events:
If data is not being delivered, it is worth to check:
Status of the sink: cuttle monitoring get time-series-forwarder-sink projects/your-project/timeSeriesForwarderSinks/name --field-mask status -o json
Verify if collection rules by using watch query (use filter and aggregation from collection rule): cuttle monitoring watch time-serie --parent 'projects/your-project' --filter '...' --aggregation '...' -o json
Verify collection rule is connected to the sink (Check field sink in TimeSeriesCollectionRule).
If sink status does not indicate error, and watch query is delivering data, and collection rule is attached to the
sink, it indicates system issue.
Advanced: Index definitions
Indices are important for two reasons:
For efficient queries (ListTimeSeries)
For reasonable storage usage (writes)
It is required to balance between them - more indices will require more writes
and larger storage.
It is necessary to understand process of writing:
First, Monitoring service receives raw unaligned points via CreateTimeSeries
Next, Monitoring service merges raw data points within individual series
(1 minute, 3 minute, 5 minute etc.).
Time-aligned data points are saved in time series storage, PER each
non-aggregated index defined in MetricDescriptor.
Monitoring detects separately paginated and pre-aggregated indices.
Based on their specification, it processes further time-aligned data points,
merging and sorting. Computed data points are stored separately for those
indices.
The common characteristic for all indices are partitions. Single partition
stores data points of TimeSerie objects with different keys in timestamp
increasing order. TimeSerie object identified by key may be stored in one
or more partitions, depending on index specification.
Efficient queries require that partition we read from does not store too much
data points (from different TimeSerie) in a single timestamp. This rule is
common for all index types.
Each partition at least specifies following fields of TimeSerie: project,
region, metric.type and resource.type. It means TimeSerie across
regions, projects and metric types will not be mixed with others. Index
specification may contain more metric/resource label keys optionally.
For simplicity, when examining time series indices, we will assume that there
is only one region ID used by an example project.
Non-aggregated indices
Non-aggregated indices use partitions to group TimeSerie objects, but nothing
more. Data points are aligned according to the AP period (one minute, 3
minutes…, etc.). To ensure efficiency, high cardinality labels should be
part of partition key.
For example, lets take the following MonitoredResourceDescriptor:
- name: projects/your-project/metricDescriptors/devices.edgelq.com/device/disk/usedtype: devices.edgelq.com/device/disk/useddisplayName: Disk usage in bytesmetricKind: GAUGEvalueType: INT64unit: Bylabels:
- key: mount_pointdescription: Mount PointvalueType: STRING - key: partition_namedescription: Parition NamevalueType: STRING
We may have a fleet of devices, each characterized by a unique device_id and
small set of partitions. If we have large fleet of similar devices we can
assume that:
Resource label keys device_id, device_display_name and device_serial_number
are high cardinality. If we have 20K devices, then we will have 20K label values
for each of these. However, it can be safely assumed that for specific device_id
we will have one value of device_display_name and device_serial_number.
Metric label keys mount_point and partition_name will typically have low
cardinality, as devices within specific project/region should be similar.
But within single device_id, we should be even more confident that number of
partitions will not go into large values.
Based on the knowledge above, we may define the following non-aggregated indices:
In the result we will have, for this metric descriptor (which has project,
region, metric and resource type scope), as many partitions as number of
devices multiplied by 2. We will have two indices:
device-nonaggregated:DeviceScope: With partitions separated by resource
label key device_id.
device-nonaggregated:SerialNumberScope: With partitions separated by resource
label key device_serial_number.
Note that each TimeSerie data point will be saved twice.
In terms of query efficiency, we satisfy the requirement that single partition
should not have too many data points for single timestamp. It is because single
partition will be guaranteed to contain data from only one device. If number of
disk partitions (labels mount_point and partition_name) on single device
is low (like 3 at most), single partition for single timestamp will contain 3
data points.
Above query specifies resource.labels.device_id in the filter condition, but not
resource.labels.device_serial_number. In that case, monitoring will use
device-nonaggregated:DeviceScope index to retrieve data. If unique number of
metric.labels.mount_point label is 3, we will receive 3 separate TimeSerie objects
for specified interval. We will read little number of points from the partition
belonging to device.
Note that param aggregation may specify crossSeriesReducers and groupByFields
fields for non-aggregated indices. Non-aggregated only means that data stored is in
non-aggregated (across time series) format. Aggregation can be executed on-fly,
during query execution.
Monitoring service will return InvalidArgument error, indicating that filter
does not match any of the defined indices.
If query contained BOTH resource.labels.device_serial_number and
resource.labels.device_id, monitoring will pick one of those indices,
but not both. Index is picked on case-by-case basis, after computing what
is more optimal.
This query will also fail due to lack of index that could match it. When
monitoring receives a list query, it takes into account only filter field
when matching against partitionLabelSets. Presence of resource.labels.device_id
in aggregation.groupByFields does not change this calculation. Monitoring
service is not scanning all partitions within project in search of unique device
IDs. Single queries are required to read from limited number of partitions.
Scanning potentially tens of thousands of partitions may also be non-practical.
If we had 3 disk partitions and 10K devices, we would receive 30K TimeSerie
objects - and if interval is one day (while alignment period is 5 minutes), query
would return 288 data points per each TimeSerie, totalling 8640000. Response
(uncompressed) may take hundreds of Megabytes. It is heavy for the system
and receiving client. If number of devices grow even more, it will scale worse
and worse.
Potentially, we can enable this query by adding non-aggregated index like this:
Index device-nonaggregated:ProjectScope would create one big partition though,
which goes against the rule that single partition must contain limited number of
data points for each timestamp. While monitoring does not prevent from creating
bad indices (it cannot know in advance cardinality of labels), subsequent queries
may start being rejected with timeout/out of resources errors.
Non-aggregated indices also are used for watch queries. However,
we have more relaxed requirements regarding indices, as labels provided via
aggregation.groupByFields are also used against partitionLabelSets. In other
words, following query would be supported:
While resource.labels.device_id is not provided via filter, it is provided via
group by. It is not supported for regular queries, but works well for watch. The
reason lies within internal implementation details. Plus, watch time series
is capable of chunking large responses into more - it is designed to run longer,
in streaming fashion.
Finally, it is worth to reduce number of indices when they are not needed.
Non-aggregated indices are not re-using underlying storage, they are full
replicas. In case of devices.edgelq.com/device/disk/used, we were able to
notice that caller always provides device_id, rendering other index using
serial number redundant.
Recommendations
Ensure that partitionLabelSets contain all high cardinality labels.
Reduce not needed partitionLabelSets.
If you dont want to use high cardinality labels in filter field, look
at pre-aggregated or paginated indices to see if they provide solution
for a problem.
Pre-aggregated indices
Pre aggregated indices are next evolution from non-aggregated ones. Like the
latter, pre-aggregated indices are used by regular and watch queries: User
must specify parent project, filter and aggregation. However, while non-aggregated
indices store original TimeSerie objects as reported by time series writers,
pre-aggregated merge those aligned-only time-series with each other
to create new ones - so they are one step after non-aggregated.
Pre-aggregated means that aggregation happens at the storage level. Because
storage already contains this data, it makes retrieval relatively cheap. Even
if query requires merging tens of thousands of TimeSerie with each other,
monitoring has a little work at the query time.
Let’s come back to known devices.edgelq.com/device monitored resource
descriptor, as we will use it in these examples. Now, let’s define following
metric descriptor:
Each device sends “1” when it is online. When it is offline, data points are
populated with “0” value. Because connected metric is direct single property
of device, it does not need any additional labels.
However, we may also want to know connectivity history of devices across project
and region in general. In other words, we would like to execute query like this:
Execution of this query is done in two steps. First, for each individual
TimeSerie (which matches single device), we get fraction of 5 minutes interval
when device was online (see alignment period and per series aligner). For
example, if a device was online for 4 minutes during a 5 minute interval
(within larger specified interval in a query), ALIGN_MEAN will produce
value 0.8: (1 + 1 + 1 + 1 + 0) / 5 = 0.8. It assumes we have one data
point per minute. Each 5-minutes interval is computed individually, until
we fetch whole period specified by interval argument.
After extracting aligned value for each individual time-series and timestamp,
we look at the cross series reducer. REDUCE_SUM means we will add up all
values sharing same timestamp with each other. If a result for some timestamp
is 5635.7 it means that, within 5-minute interval ending at that timestamp,
on average 5635.7 of devices were online. If there were 10K devices in total,
maximum result we can ever have for single timestamp is 10000.
Knowing average number of online devices across time may be useful. In that
case, we can define the following pre-aggregated index:
In comparison with non-aggregated indices, pre-aggregated have additional
properties:
filterAndGroupLabelSets - they contain preserved list of metric and
resource label keys. They may, but dont have to, be used in filter
or aggregation.groupByFields parameters. But, label keys that are not
specified in these sets, must not be used in in filter or
aggregation.groupByFields parameters (except those mentioned in
partitionLabelSets).
supportedAggregations - this is an array of aligners/reducers combinations
we want to support in our queries.
Property partitionLabelSets works in similar way as in non-aggregated
indices: In filter field, time-series queries must specify all labels
required by at least one set in partitionLabelSets. And in case of watch
queries, it is also sufficient to provide partition labels via
aggregation.groupByFields.
Number of actual pre-aggregated indices is a cartesian product of 3 arrays:
partitionLabelSets, filterAndGroupLabelSets and supportedAggregations.
In the presented example, all the arrays have length of just one, therefore
we will have only one pre-aggregated index.
If you go back to the example query above, where groupByFields set is empty
and filter provides only metric/resource type, you can see that it matches
pre-aggregated index. Partition label set ProjectScope does not require ANY
extra labels in the filter. Then, AllReduced set forbids all other labels
to be used, but we don’t. Finally, aligner and reducer are specified in
supported list, so we can use it.
Created indices
Based on each preAggregatedIndices group, monitoring generates number of
indices based on:
number of sets in partitionLabelSets
number of sets in filterAndGroupLabelSets
number of stored aligner functions (computed based on supportedAggregations)
In the example, we will have one index:
device-aggregated:ProjectScope/AllReduced/ALIGN_MEAN
Monitoring always multiples number of label sets when generating indices, but
supported aggregations are attempted to be simplified. Monitoring may:
pick different aligners than indicated by perSeriesAligners.
merge multiple supportedAggregations into same aligner, as long as they
belong to same partitionLabelSets and filterAndGroupLabelSets.
It is important to note that each final aligner represents separate index
data. To find out what final aligners (storage aligners) were determined by
monitoring, users can make the following query:
$ cuttle monitoring list metric-descriptors --project $PROJECT --view NAME \
--field-mask indices.builtIn.preAggregatedIndices.supportedAggregations.storageAligners \
--field-mask indices.userDefined.preAggregatedIndices.supportedAggregations.storageAligners \
-o json
If there are two different supportedAggregations functions sharing some
storageAligners, monitoring will reuse same data to save on index data.
Recommendations and storage estimations
When we define pre-aggregated indices, it is important to make sure resulting
partitions will not be very large: We still should guarantee that number of
data points for given timestamp and partition will be limited. This is driven
by cardinality of labels in each set from filterAndGroupLabelSets. It is
strongly advised against putting high cardinality labels there (like device ID).
Most device metric labels are fine: like disk partition name. Within single
project and region we can safely assume number of unique disk partitions is
limited. The maximum cardinality is decided ultimately by the widest set in
partitionLabelSets (least amount of labels) and the largest set in
filterAndGroupLabelSets (more labels decrease performance).
The particular case described above is very easy: Our AllReduced has empty
list of keys, therefore total cardinality is exactly 1. Pre-aggregated index
using this group is guaranteed to produce at most 1 data point per each
timestamp, making it very efficient. Furthermore, looking at
partitionLabelSets, we can say that for single project/region we will have
just one TimeSerie object describing this pre-aggregated connectivity metric
history.
In summary:
partitionLabelSets may be empty, or contain any low/high cardinality labels.
filterAndGroupLabelSets should not contain high cardinality labels
Removing unnecessary partition/filterable sets is recommended
Paginated indices
Pre-aggregated queries allow us to retrieve new TimeSerie objects that are based
on thousands other ones (by aggregation). However, it does not allow to traverse
those thousands of TimeSerie objects in a cheap way.
As a general rule, requests asking for thousands of TimeSerie objects are not
good. If we have that many of them, there are two ways to manage:
Make aggregated query that computes small number of TimeSerie based on them.
Ensure that TimeSerie objects are sorted, then retrieve TOP N / OFFSET K
results.
Paginated indices address the second case.
Let’s define an example: We want to monitor CPU usage across very large fleet
of devices. Specifically, we want to keep an eye on devices with the highest CPU.
This is an example of MetricDescriptor:
- name: projects/your-project/metricDescriptors/devices.edgelq.com/device/cpu/utilizationtype: devices.edgelq.com/device/cpu/utilizationdisplayName: CPU utilization in percentagemetricKind: GAUGEvalueType: DOUBLEunit: "%"labels:
- key: cpu_numberdescription: CPU NumbervalueType: STRING - key: statedescription: CPU state one of user, system, idle, nice, iowait, irq, softirq and stealvalueType: STRINGindices:
builtIn:
paginationIndices:
- name: "usage-ranking"resourceTypes: [ devices.edgelq.com/device ]partitionLabelSets:
- name: "ProjectScope"resourceKeys: [ ]
metricKeys: [ ]
views:
- name: "ByDevice"filterableMetricKeys: [ state ]filterableResourceKeys: [ ]
paginatedMetricKeys: [ ]
paginatedResourceKeys: [ device_id ]functions:
- name: "Mean"aligner: ALIGN_SUMMARYreducer: REDUCE_MEANsorting: DESCENDING
This metric introduces 2 labels:
cpu number, which allows us to monitor CPU usage per core in each device. It is
likely some fixed string like “1”, “2”, “3”, etc.
state, which is a fixed enum set.
Of these 2 labels, we can safely assume that both of them are low cardinality.
The only high cardinality label that remains is device ID.
As non and pre aggregated indices, paginated indices also have partitionLabelSets.
They work in the same manner:
Time-series queries must specify all labels required by at least one set in
partitionLabelSets
If we can be certain that some labels will be always used in a filter, it is highly
recommended to put them in partition label sets.
In this example case, we would like to retrieve top devices with the highest CPU,
so we cant tell device ID in the filter. Since we may want to make queries with
filterspecifying only metric type and region, it is best to have single empty
set in partitionLabelSets. This way no labels are required to be specified.
The new important properties of paginated indices are:
views: View is very important for deciding which labels may be used in a
filter field, and which labels are “paginated”. Filterable labels are defining
separate sorted rankings. Paginated labels are linked to double/integer
values that are sorted according to a defined functions. Note that each view
is combined with each set in partitionLabelSets. Therefore, one index may
contain multiple rankings in linear memory layout. It is important to ensure
that filterable label keys are not high cardinality labels. Paginated
labels are the ones that can be of high cardinality.
functions: They combine aligner and reducer to extract double/integer
values for sorting purposes. Aligner specifies what to extract from individual
time series before they are (optionally) merged with each other. In the case
we presented, ALIGN_SUMMARY tells we will merge distribution values.
Reducer then extracts final value from merged TimeSerie object. In our case,
it means we will extract AVERAGE value from final distributions.
Monitoring merges time series according to the label keys that are not present
in either partitionLabelSets and views. Let’s examine current example in
this light.
Paginated indices are generated based on cartesian product of partitionLabelSets,
views and functions. Since we have one item in each, we will have one index
that combines partition set ProjectScope and view ByDevice. Now, imagine we
have 10K devices, each with 4 CPU cores and 8 CPU states. Therefore, we have 320K
TimeSerie objects for each individual timestamp. We will be processing each
timestamp separately.
Since labels in ProjectScope are empty, we will put all 320K TimeSerie objects
in one partition. Next, we take a look into view ByDevice. We have one filterable
metric label: state. Since we have established there are 8 states, 320K TimeSerie
objects are grouped into 8 different rankings: Each ranking now has 40K TimeSerie
objects. We will iterate each separately. Inside a ranking, we iterate all TimeSerie
and apply aligner on each of them. Aligner tells us to extract Distribution of
CPU measurements per each core. Therefore, we have now 40K Distributions, each has
a pair of labels: resource device ID and metric CPU number. Monitoring looks at
paginatedResourceKeys and notices we should have only one resource label: device ID.
It takes 40K distributions, then merges those that share same device ID. Metric
label CPU number is effectively reduced (eliminated). Since we have 4 CPU numbers,
we will be left with final 10K Distributions - each assigned to specific device.
Since the value of reducer is REDUCE_MEAN, we will extract average value from each
of distribution. Finally, we will have 10K pairs: device ID + average CPU value across
cores. This array is sorted in descending order.
Process above is executed by each sorting ranking. Therefore, for each timestamp
and each of 8 CPU states, we will extract 10K device + AVG CPU pairs. Rankings within
same partitionLabelSets are stored in the same index, but in sorted manner.
Sorting neutralizes cardinality issues of all paginated labels.
While CPU number may be useful label, it was decided that in this ranking we will
drop it to reduce number of rankings in general. If labels are indeed not needed,
it is recommended to reduce them.
View/function names used in queries must be pre-defined in metric descriptor:
cuttle monitoring query time-serie --parent projects/your-project \
--filter 'metric.type="devices.edgelq.com/device/cpu/utilization" AND \
resource.type="devices.edgelq.com/device" AND \
region="us-west2" and metric.labels.state IN ["user","system"]'\
--pagination '{"alignmentPeriod": "3600s", \
"view": "ByDevice", \
"function": "Mean",
"limit": 20,
"offset": 0}'\
--interval '{"startTime": "2023-07-12T19:00:00Z", \
"endTime": "2023-07-12T22:00:00Z"}' -o json
You may have noticed that this CPU ranking may hide devices which have very high
CPU usage on a single core - and low on remaining. For example, if we have 3 CPUs
with 5% load, and 1 CPU with 95% load, average will be 27.5%.
To address this issue, we may add another function:
Aligner ALIGN_MEAN will extract average CPU usage per each core within each
alignment period. Reducer REDUCE_MAX then picks CPU core that was the highest.
If CPU 0/1/2 had average CPU usage 5%, and CPU 3 had 95%, final value will be
not 27.5%, but 95%.
It is worth checking what functions are needed by users though - each function
requires additional computation/storage resources when writing.
Produced indices
Paginated indices group produces as many indices, as large is cartesian product of
partitionLabelSets, views and functions. In this example, we will have one
index: usage-ranking:ProjectScope/ByDevice/Mean.
Summary recommendations
partitionLabelSets may be empty, or contain any low/high cardinality labels.
views.filterableMetricKeys and views.filterableResourceKeys should not
contain high cardinality labels.
views.paginatedMetricKeys and views.paginatedResourceKeys are designed to
handle high cardinality labels.
Removing unnecessary partition/views/functions sets is recommended to reduce
compute/storage.
Advanced: Index lifecycle management
Each index has 3 lifecycle states:
ACTIVE: Writes are active, reads are possible
SUSPENDED: Writes are active, but reads are possible only up to the timestamp
when index entered this state.
CLOSED: Writes are not active, reads are possible only up to the timestamp
when index entered this state.
By default, index is in ACTIVE state. From this state, it can be moved into
SUSPENDED or CLOSED state. From SUSPENDED state, index can come back to ACTIVE
state or CLOSED state. CLOSED state is terminal - index only exists to provide
historical data up to the time when index was closed.
Potentially index can be completely removed from MetricDescriptor resource. In
that case, it is forgotten and associated data will eventually expire.
Be aware, that time series are computed/written continuously with time. Adding
new index does not cause old data to be recomputed. Nor deleting/closing index
will delete old data. When monitoring gets a query, it analyzes requested
interval to find the best index for each sub-period within.
It is highly recommended to move index into SUSPENDED state before CLOSED. This
way we can test if anyone was actually using this index. While it is possible to
use Audit service (sample reads) to analyze usage, or check monitoring index usage,
it is advisable to err on safety side.
Non aggregated indices can be closed by changing partition label set status
individually:
Index is considered CLOSED, if at least one of the inputs is in CLOSED state.
If not, then index is SUSPENDED if at least one of the inputs is in
SUSPENDED state.
Apart from lifecycle, it is important to categorize each index into 2 groups:
built-in: Indices are defined by service developers and cannot be modified
by project admins.
user-defined: Indices are defined by project administrators. They should
include indices that are useful for individual project perspective.
Both groups are reflected in MetricDescriptor schema:
Name of Alert 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}
describes in terms of time series when alert began and ended (resolved). uses Time Series derived timestamps, rather than real-time. use meta.create_time to get creation date.
needs_notification
bool
This alert needs to be notified
notification_created
bool
Notification resource is generated for this alert
lifecycle_completed
bool
Alert has ended and any needed notifications are processed
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListAlertsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Alerts 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.
Requested page size. Server may return fewer Alerts than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Alert that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Alert that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Alerts 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Alerts 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateAlertRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
Name of AlertingCondition 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]
Either specify single threshold or combine threshold, which allows to pair each metric value to their specific thresholds, e.g. distinguish mean (loss, latency, jitter) in single query
Compare function specifies if observed value must be GreaterThan (GT) or LesserThan (LT) threshold value in order to trigger an alert. Example: for metric latency {compare: GT, value: 150} will trigger if actual latency is above 150ms.
Combine describes how sub-conditions for each metric concerning single resource label set (determined by aggregation.groupByFields) must compose in order to trigger an alert. TODO: add support for AND
GetAlertingConditionRequest Message
A request message of the GetAlertingCondition method.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListAlertingConditionsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total AlertingConditions 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.
WatchAlertingConditionRequest Message
A request message of the WatchAlertingCondition method.
Parent name of ntt.monitoring.v3.AlertingCondition
page_size
int32
Requested page size. Server may return fewer AlertingConditions than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to AlertingCondition that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to AlertingCondition that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchAlertingConditionsResponse Message
A response message of the WatchAlertingConditions method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All AlertingConditions 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (AlertingConditions 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteAlertingConditionRequest Message
A request message of the DeleteAlertingCondition method.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
Name of AlertingPolicy 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]
documentation mime type. Only "text/markdown" is supported.
AlertingPolicy.Spec Message
Name
Type
Description
enabled
bool
Whether policy is enabled and will evaluate any conditions Note: If any existing fired alerts are present, they will not be resolved automatically TODO: consider if they should?
Condition Combiner when deciding if ANY (OR) or ALL (AND) conditions for given subset of resource labels must fire in order to trigger an alert TODO: Add support to AND
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListAlertingPoliciesRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total AlertingPolicies 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.
WatchAlertingPolicyRequest Message
A request message of the WatchAlertingPolicy method.
Requested page size. Server may return fewer AlertingPolicies than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to AlertingPolicy that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to AlertingPolicy that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchAlertingPoliciesResponse Message
A response message of the WatchAlertingPolicies method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All AlertingPolicies 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (AlertingPolicies 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateAlertingPolicyRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteAlertingPolicyRequest Message
A request message of the DeleteAlertingPolicy method.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
Defines a metric type and its schema. Once a metric descriptor is created,
deleting or altering it stops data collection and makes the metric type’s
existing data unusable.
The resource name of the metric descriptor. 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: [\w./-]{4,128}
type
string
The metric type, including its DNS name prefix. The type is not URL-encoded. All user-defined metric types have the DNS name custom.googleapis.com or external.googleapis.com. Metric types should use a natural hierarchical grouping. For example: “custom.googleapis.com/invoice/paid/amount” “external.googleapis.com/prometheus/up” “appengine.googleapis.com/http/server/response_latencies”
resource_types
repeated string
associated resource_types (also used to infer defaults) examples, devices.edgelq.com/Device, watchdog.edgelq.com/Agent if not set, defaults to “global” resource type.
The set of labels that can be used to describe a specific instance of this metric type. For example, the appengine.googleapis.com/http/server/response_latencies metric type has a label for the HTTP response code, response_code, so you can look at latencies for successful responses or just for responses that failed.
Whether the measurement is an integer, a floating-point number, etc. Some combinations of metric_kind and value_type might not be supported.
unit
string
The unit in which the metric value is reported. It is only applicable if the value_type is INT64, DOUBLE, or DISTRIBUTION. The supported units are a subset of The Unified Code for Units of Measure standard: Basic units (UNIT) * bit bit * By byte * s second * min minute * h hour * d day Prefixes (PREFIX) * k kilo (103) * M mega (106) * G giga (109) * T tera (1012) * P peta (1015) * E exa (1018) * Z zetta (1021) * Y yotta (1024) * m milli (10**-3) * u micro (10**-6) * n nano (10**-9) * p pico (10**-12) * f femto (10**-15) * a atto (10**-18) * z zepto (10**-21) * y yocto (10**-24) * Ki kibi (210) * Mi mebi (220) * Gi gibi (230) * Ti tebi (240) Grammar The grammar also includes these connectors: * / division (as an infix operator, e.g. 1/s). * . multiplication (as an infix operator, e.g. GBy.d) The grammar for a unit is as follows: Expression = Component { “.” Component } { “/” Component } ; Component = ( [ PREFIX ] UNIT
description
string
A detailed description of the metric, which can be used in documentation.
display_name
string
A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example “Request count”. This field is optional but it is recommended to be set for any metrics associated with user-visible concepts, such as Quota.
Promoted Label Key Sets allow defining multiple indexing rules for underlying backend enabling query optimizations. Metric promoted label sets are combined with MonitoredResource promoted label sets and result in PromotedKeySet.
Indexing allows tweaking storage usage by tweaking amount of “duplicate” data with different promotion criteria. It’s important consideration for balancing time series query performance and storage cost.
Requested page size. Server may return fewer MetricDescriptors than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to MetricDescriptor that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to MetricDescriptor that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchMetricDescriptorsResponse Message
A response message of the WatchMetricDescriptors method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All MetricDescriptors 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (MetricDescriptors 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.
The metric descriptor on which to execute the request. The format is "projects/{project_id_or_number}/metricDescriptors/{metric_id}". An example value of {metric_id} is "compute.googleapis.com/instance/disk/read_bytes_count".
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteMetricDescriptorRequest Message
Request message for method
[DeleteMetricDescriptor][ntt.monitoring.v3.DeleteMetricDescriptor]
The metric descriptor on which to execute the request. The format is "projects/{project_id_or_number}/metricDescriptors/{metric_id}". An example of {metric_id} is: "custom.googleapis.com/my_test_metric".
ListMetricDescriptorsRequest Message
Request message for method
[ListMetricDescriptors][ntt.monitoring.v3.ListMetricDescriptors]
If this field is empty, all custom and system-defined metric descriptors are returned. Otherwise, the filter specifies which metric descriptors are to be returned. For example, the following filter matches all custom metrics: metric.type = starts_with(“custom.googleapis.com/”)
page_size
int32
A positive number that is the maximum number of results to return.
If this field is not empty then it must contain the nextPageToken value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.
If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as pageToken in the next call to this method.
Current offset from the first page (0 if no page tokens were given or paging info was not requested). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total MetricDescriptors across all pages or 0, if there are no items or paging info was not requested.
MetricDescriptor Enumerations
Here is the list of MetricDescriptor resource enumerations:
The kind of measurement. It describes how the data is reported.
Name
Description
METRIC_KIND_UNSPECIFIED
Do not use this default value.
GAUGE
An instantaneous measurement of a value.
DELTA
The change in a value during a time interval.
CUMULATIVE
A value accumulated over a time interval. Cumulative measurements in a time series should have the same start time and increasing end times, until an event resets the cumulative value to zero and sets a new start time for the following points.
MetricDescriptor.ValueType Enumeration
The value type of a metric.
Name
Description
VALUE_TYPE_UNSPECIFIED
Do not use this default value.
BOOL
The value is a boolean. This value type can be used only if the metric kind is GAUGE.
INT64
The value is a signed 64-bit integer.
DOUBLE
The value is a double precision floating point number.
STRING
The value is a text string. This value type can be used only if the metric kind is GAUGE.
DISTRIBUTION
The value is a [Distribution][google.api.Distribution].
MONEY
The value is money.
MonitoredResourceDescriptor Resource
An object that describes the schema of a
[MonitoredResource][google.api.MonitoredResource] object using a type name
and a set of labels. For example, the monitored resource descriptor for
Google Compute Engine VM instances has a type of
"gce_instance" and specifies the use of the labels "instance_id" and
"zone" to identify particular VM instances.
Different APIs can support different monitored resource types. APIs generally
provide a list method that returns the monitored resource descriptors used
by the API.
Optional. The resource name of the monitored resource descriptor: "projects/{project_id}/monitoredResourceDescriptors/{type}" where {type} is the value of the type field in this object and {project_id} is a project ID that provides API-specific context for accessing the type. APIs that do not use project information can use the resource name format "monitoredResourceDescriptors/{type}". NOTE: currently only "monitoredResourceDescriptors/{type}" form is supported.
type
string
Required. The monitored resource type. For example, the type "cloudsql_database" represents databases in Google Cloud SQL. The maximum length of this value is 256 characters.
display_name
string
Optional. A concise name for the monitored resource type that might be displayed in user interfaces. It should be a Title Cased Noun Phrase, without any article or other determiners. For example, "Google Cloud SQL Database".
description
string
Optional. A detailed description of the monitored resource type that might be used in documentation.
Required. A set of labels used to describe instances of this monitored resource type. For example, an individual Google Cloud SQL database is identified by values for the labels "database_id" and "zone".
Promoted Label Key Sets allow defining multiple indexing rules for underlying backend enabling query optimizations. Metric promoted label sets are combined with MonitoredResource promoted label sets and result in PromotedKeySet.
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_size
int32
Requested page size. Server may return fewer MonitoredResourceDescriptors than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to MonitoredResourceDescriptor that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to MonitoredResourceDescriptor that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchMonitoredResourceDescriptorsResponse Message
A response message of the WatchMonitoredResourceDescriptors method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All MonitoredResourceDescriptors 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (MonitoredResourceDescriptors 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteMonitoredResourceDescriptorRequest Message
A request message of the DeleteMonitoredResourceDescriptor method.
The monitored resource descriptor to get. The format is "monitoredResourceDescriptors/{resource_type}". The {resource_type} is a predefined type, such as cloudsql_database.
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
An optional filter describing the descriptors to be returned. The filter can reference the descriptor’s type and labels. For example, the following filter returns only Google Compute Engine descriptors that have an id label: resource.type = starts_with(“gce_”) AND resource.label:id
page_size
int32
A positive number that is the maximum number of results to return.
If this field is not empty then it must contain the nextPageToken value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as pageToken in the next call to this method.
Current offset from the first page (0 if no page tokens were given or paging info was not requested). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total MonitoresResourceDescriptors across all pages or 0, if there are no items or paging info was not requested.
Name of Notification 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}
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListNotificationsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Notifications 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.
WatchNotificationRequest Message
A request message of the WatchNotification method.
Requested page size. Server may return fewer Notifications than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Notification that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Notification that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchNotificationsResponse Message
A response message of the WatchNotifications method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Notifications 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Notifications 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateNotificationRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteNotificationRequest Message
A request message of the DeleteNotification method.
Name of NotificationChannel 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]
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListNotificationChannelsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total NotificationChannels 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.
WatchNotificationChannelRequest Message
A request message of the WatchNotificationChannel method.
Parent name of ntt.monitoring.v3.NotificationChannel
page_size
int32
Requested page size. Server may return fewer NotificationChannels than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to NotificationChannel that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to NotificationChannel that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchNotificationChannelsResponse Message
A response message of the WatchNotificationChannels method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All NotificationChannels 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (NotificationChannels 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteNotificationChannelRequest Message
A request message of the DeleteNotificationChannel method.
Name of PhantomTimeSeries Name must contain base64 encoded string of TimeSeries key
key
bytes
TimeSerie key identifies unique TimeSeries tuple: <project, metric.type, metric.labels, resource.type, resource.labels> Kind/ValueType are not present in key Key is not to be decoded outside of service, but treated as opaque string
The associated monitored resource. Custom metrics can use only certain monitored resource types in their time series data. This field cannot be updated, can be only set during creation.
The metric kind of the time series. When listing time series, this metric kind might be different from the metric kind of the associated metric if this time series is an alignment or reduction of other time series. When creating a time series, this field is optional. If present, it must be the same as the metric kind of the associated metric. If the associated metric’s descriptor must be auto-created, then this field specifies the metric kind of the new descriptor and must be either GAUGE (the default) or CUMULATIVE.
The value type of the time series. When listing time series, this value type might be different from the value type of the associated metric if this time series is an alignment or reduction of other time series. When creating a time series, this field is optional. If present, it must be the same as the type of the data in the points field.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListPhantomTimeSeriesRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total PhantomTimeSeries 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.
WatchPhantomTimeSerieRequest Message
A request message of the WatchPhantomTimeSerie method.
Requested page size. Server may return fewer PhantomTimeSeries than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to PhantomTimeSerie that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to PhantomTimeSerie that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchPhantomTimeSeriesResponse Message
A response message of the WatchPhantomTimeSeries method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All PhantomTimeSeries 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (PhantomTimeSeries 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeletePhantomTimeSerieRequest Message
A request message of the DeletePhantomTimeSerie method.
Name of Project 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]
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListProjectsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Projects 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.
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_size
int32
Requested page size. Server may return fewer Projects than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Project that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Project that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Projects 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Projects 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateProjectRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
Name of RecoveryStoreShardingInfo 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 token identifying a page of results the server should return. Typically, this is the value of ListRecoveryStoreShardingInfosResponse.next_page_token.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListRecoveryStoreShardingInfosRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total RecoveryStoreShardingInfos 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.
WatchRecoveryStoreShardingInfoRequest Message
A request message of the WatchRecoveryStoreShardingInfo method.
Parent name of ntt.monitoring.v3.RecoveryStoreShardingInfo
page_size
int32
Requested page size. Server may return fewer RecoveryStoreShardingInfos than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to RecoveryStoreShardingInfo that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to RecoveryStoreShardingInfo that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchRecoveryStoreShardingInfosResponse Message
A response message of the WatchRecoveryStoreShardingInfos method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All RecoveryStoreShardingInfos 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (RecoveryStoreShardingInfos 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteRecoveryStoreShardingInfoRequest Message
A request message of the DeleteRecoveryStoreShardingInfo method.
Name of ntt.monitoring.v3.RecoveryStoreShardingInfo
TimeSerie Resource
A collection of data points that describes the time-varying values
of a metric. A time series is identified by a combination of a
fully-specified monitored resource and a fully-specified metric.
This type is used for both listing and creating time series.
TimeSerie key identifies unique TimeSeries tuple: <project, region, metric.type, metric.labels, resource.type, resource.labels> Kind/ValueType are not present in key Key is not to be decoded outside of service, but treated as opaque string Specific key is valid and understood only in single region only. If time serie is created by merging from multiple regions, key must be ignore.
The metric kind of the time series. When listing time series, this metric kind might be different from the metric kind of the associated metric if this time series is an alignment or reduction of other time series. When creating a time series, this field is optional. If present, it must be the same as the metric kind of the associated metric. If the associated metric’s descriptor must be auto-created, then this field specifies the metric kind of the new descriptor and must be either GAUGE (the default) or CUMULATIVE.
The value type of the time series. When listing time series, this value type might be different from the value type of the associated metric if this time series is an alignment or reduction of other time series. When creating a time series, this field is optional. If present, it must be the same as the type of the data in the points field.
The data points of this time series. When listing time series, points are returned in reverse time order. When creating a time series, this field must contain exactly one point and the point’s type must be the same as the value type of the associated metric. If the associated metric’s descriptor must be auto-created, then the value type of the descriptor is determined by the point’s type, which must be BOOL, INT64, DOUBLE, or DISTRIBUTION.
ListTimeSeriesRequest Message
Request message for method [ListTimeSeries][ntt.monitoring.v3.ListTimeSeries]
A monitoring filter that specifies which time series should be returned. The filter must specify a single metric type, and can additionally specify metric labels and other information. For example: metric.type = “compute.googleapis.com/instance/cpu/usage_time” AND metric.label.instance_name = “my-instance-name”
The time interval for which results should be returned. Only time series that contain data points in the specified interval are included in the response.
Picks paginated time series according to pre-defined (in metric descriptor) view and function. Cannot be used with aggregation, because pagination view and function determines time series transformation and sorting.
Specifies which information is returned about the time series.
field_mask
.google.protobuf.FieldMask
view list mask. Optimize network usage and limit returned header fields to a required subset. example fields in field mask: - “key”: for later caching, - “resource.labels.project_id”, “resource.labels.instance_name”, etc - specific labels only - “resource”, “metric”: all resource labels, reduced_labels and type NOTE: points are added implicitly
points_cap
int32
A positive number that is the maximum number of Points to return. If points_cap is empty or more than 100,000 results, the effective points_cap is 100,000 results. If view is set to HEADERS, this is the maximum number of TimeSeries returned.
continuation_token
string
If this field is not empty then it must contain the continuation_token value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.
ListTimeSeriesResponse Message
Response message for method
[ListTimeSeries][ntt.monitoring.v3.ListTimeSeries]
One or more time series that match the filter included in the request.
continuation_token
string
If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as continuation_token in the next call to this method.
Special time series with total amount of records available for pagination by given time series key. Metric/Resource labels will contain “common” values shared by all ranked time series. ValueType will be always INT64 and metricKind GAUGE. In a sense, this time series is execution of ListTimeSeries with Aggregation = {groupByFields: [<viewPaginatedLabels>], REDUCER: REDUCE_COUNT} This field is only populated for paginated queries (pagination in ListTimeSeries is specified).
ListTimeSeriesResponse.ErrorDetails Message
ErrorDetails is used when one of the queried regions fails to produce
results. It is used in execution_errors field (see subfield
ntt.rpc.Status.details).
Name
Type
Description
region_id
string
region id which failed to give results.
CreateTimeSeriesRequest Message
Request message for method
[CreateTimeSeries][ntt.monitoring.v3.CreateTimeSeries]
The new data to be added to a list of time series. Adds at most one data point to each of several time series. The new data point must be more recent than any other point in its time series. Each TimeSeries value must fully specify a unique time series by supplying all label values for the metric and the monitored resource.
CreateTimeSeriesResponse Message
Response message for method
[CreateTimeSeries][ntt.monitoring.v3.CreateTimeSeries]
Name
Type
Description
time_serie_keys
map<uint32s, bytes>
Time Serie keys indexed by Create position - present only when given TimeSerie didn’t use Key field
Describes how to combine multiple time series to provide different views of
the data. Aggregation consists of an alignment step on individual time
series (alignment_period and per_series_aligner) followed by an optional
reduction step of the data across the aligned time series
(cross_series_reducer and group_by_fields). For more details, see
Aggregation.
Name
Type
Description
alignment_period
.google.protobuf.Duration
The alignment period for per-[time series][ntt.monitoring.v3.TimeSeries] alignment. If present, alignmentPeriod must be at least 60 seconds. After per-time series alignment, each time series will contain data points only on the period boundaries. If perSeriesAligner is not specified or equals ALIGN_NONE, then this field is ignored. If perSeriesAligner is specified and does not equal ALIGN_NONE, then this field must be defined; otherwise an error is returned.
The approach to be used to align individual time series. Not all alignment functions may be applied to all time series, depending on the metric type and value type of the original time series. Alignment may change the metric type or the value type of the time series. Time series data must be aligned in order to perform cross-time series reduction. If crossSeriesReducer is specified, then perSeriesAligner must be specified and not equal ALIGN_NONE and alignmentPeriod must be specified; otherwise, an error is returned.
The approach to be used to combine time series. Not all reducer functions may be applied to all time series, depending on the metric type and the value type of the original time series. Reduction may change the metric type of value type of the time series. Time series data must be aligned in order to perform cross-time series reduction. If crossSeriesReducer is specified, then perSeriesAligner must be specified and not equal ALIGN_NONE and alignmentPeriod must be specified; otherwise, an error is returned.
group_by_fields
repeated string
The set of fields to preserve when crossSeriesReducer is specified. The groupByFields determine how the time series are partitioned into subsets prior to applying the aggregation function. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The crossSeriesReducer is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains resource.type. Fields not specified in groupByFields are aggregated away. If groupByFields is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If crossSeriesReducer is not defined, this field is ignored.
AlertChange Message
AlertChange is used by Watch notifications Responses to describe change of
single Alert One of Added, Modified, Removed
New version of Alert or masked difference, depending on mask_changes instrumentation of issued [WatchAlertRequest] or [WatchAlertsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Alert. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Alert new index in resulting query view.
AlertChange.Removed Message
Removed is returned when Alert is deleted or leaves Query view
New version of AlertingCondition or masked difference, depending on mask_changes instrumentation of issued [WatchAlertingConditionRequest] or [WatchAlertingConditionsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified AlertingCondition. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying AlertingCondition new index in resulting query view.
AlertingConditionChange.Removed Message
Removed is returned when AlertingCondition is deleted or leaves Query view
New version of AlertingPolicy or masked difference, depending on mask_changes instrumentation of issued [WatchAlertingPolicyRequest] or [WatchAlertingPoliciesRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified AlertingPolicy. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying AlertingPolicy new index in resulting query view.
AlertingPolicyChange.Removed Message
Removed is returned when AlertingPolicy is deleted or leaves Query view
The time series, including the Metric, MonitoredResource, and Points (including timestamp and value) that resulted in the error. This field provides all of the context that would be needed to retry the operation.
Distribution contains summary statistics for a population of values and,
optionally, a histogram representing the distribution of those values across
a specified set of histogram buckets.
The summary statistics are the count, mean, sum of the squared deviation from
the mean, the minimum, and the maximum of the set of population of values.
The histogram is based on a sequence of buckets and gives a count of values
that fall into each bucket. The boundaries of the buckets are given either
explicitly or by specifying parameters for a method of computing them
(buckets of fixed width or buckets of exponentially increasing width).
Although it is not forbidden, it is generally a bad idea to include
non-finite values (infinities or NaNs) in the population of values, as this
will render the mean and sum_of_squared_deviation fields meaningless.
Name
Type
Description
count
int64
The number of values in the population. Must be non-negative.
mean
double
The arithmetic mean of the values in the population. If count is zero then this field must be zero.
sum_of_squared_deviation
double
The sum of squared deviations from the mean of the values in the population. For values x_i this is: Sum[i=1..n]((x_i - mean)^2) Knuth, “The Art of Computer Programming”, Vol. 2, page 323, 3rd edition describes Welford’s method for accumulating this sum in one pass. If count is zero then this field must be zero.
If bucket_options is given, then the sum of the values in bucket_counts must equal the value in count. If bucket_options is not given, no bucket_counts fields may be given. Bucket counts are given in order under the numbering scheme described above (the underflow bucket has number 0; the finite buckets, if any, have numbers 1 through N-2; the overflow bucket has number N-1). The size of bucket_counts must be no greater than N as defined in bucket_options. Any suffix of trailing zero bucket_count fields may be omitted.
Distribution.BucketOptions Message
A Distribution may optionally contain a histogram of the values in the
population. The histogram is given in bucket_counts as counts of values
that fall into one of a sequence of non-overlapping buckets. The sequence
of buckets is described by bucket_options.
A bucket specifies an inclusive lower bound and exclusive upper bound for
the values that are counted for that bucket. The upper bound of a bucket
is strictly greater than the lower bound.
The sequence of N buckets for a Distribution consists of an underflow
bucket (number 0), zero or more finite buckets (number 1 through N - 2) and
an overflow bucket (number N - 1). The buckets are contiguous: the lower
bound of bucket i (i > 0) is the same as the upper bound of bucket i - 1.
The buckets span the whole range of finite values: lower bound of the
underflow bucket is -infinity and the upper bound of the overflow bucket is
+infinity. The finite buckets are so-called because both bounds are
finite.
BucketOptions describes bucket boundaries in one of three ways. Two
describe the boundaries by giving parameters for a formula to generate
boundaries and one gives the bucket boundaries explicitly.
If bucket_boundaries is not given, then no bucket_counts may be given.
Centroid means. Must be the same length as bucket counts. Each mean, count represents a weighed centroid.
Distribution.BucketOptions.Explicit Message
A set of buckets with arbitrary widths.
Defines size(bounds) + 1 (= N) buckets with these boundaries for
bucket i:
Upper bound (0 <= i < N-1): bounds[i]
Lower bound (1 <= i < N); bounds[i - 1]
There must be at least one element in bounds. If bounds has only one
element, there are no finite buckets, and that single element is the
common boundary of the overflow and underflow buckets.
Name
Type
Description
bounds
repeated double
The values must be monotonically increasing.
Distribution.BucketOptions.Exponential Message
Specify a sequence of buckets that have a width that is proportional to
the value of the lower bound. Each bucket represents a constant relative
uncertainty on a specific value in the bucket.
Defines num_finite_buckets + 2 (= N) buckets with these boundaries for
bucket i:
Upper bound (0 <= i < N-1): scale * (growth_factor ^ i).
Lower bound (1 <= i < N): scale * (growth_factor ^ (i - 1)).
Name
Type
Description
num_finite_buckets
int32
Must be greater than 0.
growth_factor
double
Must be greater than 1.
scale
double
Must be greater than 0.
Distribution.BucketOptions.Linear Message
Specify a sequence of buckets that all have the same width (except
overflow and underflow). Each bucket represents a constant absolute
uncertainty on the specific value in the bucket.
Defines num_finite_buckets + 2 (= N) buckets with these boundaries for
bucket i:
Upper bound (0 <= i < N-1): offset + (width * i).
Lower bound (1 <= i < N): offset + (width * (i - 1)).
The type of data that can be assigned to the label.
description
string
A human-readable description for the label.
default_value
string
Default value for string label - this value is used in two cases: 1. to populate missing labels while creating TimeSeries 2. to populate missing remaining kvs while querying TimeSeries - usually applies to old data
disabled
bool
disabled flag communicates that this label is ignored by the backend. It’s used for backward compatibility.
LabelKeySet Message
LabelKeySet is used for defining PromotedLabelKeySets on Metric descriptors
Name
Type
Description
label_keys
repeated string
write_only
bool
if set, index will not be considered for queries, but will be written to. useful for transition periods.
Metric Message
A specific metric, identified by specifying values for all of the
labels of a [MetricDescriptor][google.api.MetricDescriptor].
Name
Type
Description
type
string
An existing metric type, see [google.api.MetricDescriptor][google.api.MetricDescriptor]. For example, custom.googleapis.com/invoice/paid/amount.
labels
map<string, string>
The set of label values that uniquely identify this metric. All labels listed in the MetricDescriptor must be assigned values.
reduced_labels
repeated string
reduced labels in aggregations
MetricDescriptorChange Message
MetricDescriptorChange is used by Watch notifications Responses to describe
change of single MetricDescriptor One of Added, Modified, Removed
New version of MetricDescriptor or masked difference, depending on mask_changes instrumentation of issued [WatchMetricDescriptorRequest] or [WatchMetricDescriptorsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified MetricDescriptor. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying MetricDescriptor new index in resulting query view.
MetricDescriptorChange.Removed Message
Removed is returned when MetricDescriptor is deleted or leaves Query view
Integer specifying removed MetricDescriptor index. Not populated in stateless watch type.
MetricSelector Message
Metric selects metric.type and list of labels used to
build query, like:
metric.type IN ("type0", "type1", ...) AND
metric.labels.<key0> IN (label0_0, label0_1, ...) AND
metric.labels.<key1> IN (label1_0, label1_1, ...) AND ...
label key, e.g. “project_id”, “target_id”, etc Note the missing “metric.labels.” prefix.
MonitoredResource Message
An object representing a resource that can be used for monitoring, logging,
billing, or other purposes. Examples include virtual machine instances,
databases, and storage devices such as disks. The type field identifies a
[MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object
that describes the resource’s schema. Information in the labels field
identifies the actual resource and its attributes according to the schema.
For example, a particular Compute Engine VM instance could be represented by
the following object, because the
[MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] for
"gce_instance" has labels
"instance_id" and "zone":
Required. The monitored resource type. This field must match the type field of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object. For example, the type of a Compute Engine VM instance is gce_instance.
labels
map<string, string>
Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Compute Engine VM instances use the labels "project_id", "instance_id", and "zone".
reduced_labels
repeated string
reduced labels in aggregations
MonitoredResourceDescriptorChange Message
MonitoredResourceDescriptorChange is used by Watch notifications Responses to
describe change of single MonitoredResourceDescriptor One of Added, Modified,
Removed
New version of MonitoredResourceDescriptor or masked difference, depending on mask_changes instrumentation of issued [WatchMonitoredResourceDescriptorRequest] or [WatchMonitoredResourceDescriptorsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified MonitoredResourceDescriptor. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying MonitoredResourceDescriptor new index in resulting query view.
MonitoredResourceDescriptorChange.Removed Message
Removed is returned when MonitoredResourceDescriptor is deleted or leaves
Query view
Integer specifying removed MonitoredResourceDescriptor index. Not populated in stateless watch type.
MonitoredResourceSelector Message
MonitoredResourceSelector selects resource.type and list of labels used to
build query, like:
resource.type IN ("type0", "type1", ...) AND
resource.labels.<key0> IN (label0_0, label0_1, ...) AND
resource.labels.<key1> IN (label1_0, label1_1, ...) AND ...
Note: Only one resource.type per query is currently allowed
New version of Notification or masked difference, depending on mask_changes instrumentation of issued [WatchNotificationRequest] or [WatchNotificationsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Notification. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Notification new index in resulting query view.
NotificationChange.Removed Message
Removed is returned when Notification is deleted or leaves Query view
New version of NotificationChannel or masked difference, depending on mask_changes instrumentation of issued [WatchNotificationChannelRequest] or [WatchNotificationChannelsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified NotificationChannel. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying NotificationChannel new index in resulting query view.
NotificationChannelChange.Removed Message
Removed is returned when NotificationChannel is deleted or leaves Query
view
New version of PhantomTimeSerie or masked difference, depending on mask_changes instrumentation of issued [WatchPhantomTimeSerieRequest] or [WatchPhantomTimeSeriesRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified PhantomTimeSerie. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying PhantomTimeSerie new index in resulting query view.
PhantomTimeSerieChange.Removed Message
Removed is returned when PhantomTimeSerie is deleted or leaves Query view
The time interval to which the data point applies. For GAUGE metrics, only the end time of the interval is used. For DELTA metrics, the start and end time should specify a non-zero interval, with subsequent points specifying contiguous and non-overlapping intervals. For CUMULATIVE metrics, the start and end time should specify a non-zero interval, with subsequent points specifying the same start time and increasing end times, until an event resets the cumulative value to zero and sets a new start time for the following points.
New version of Project or masked difference, depending on mask_changes instrumentation of issued [WatchProjectRequest] or [WatchProjectsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Project. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Project new index in resulting query view.
ProjectChange.Removed Message
Removed is returned when Project is deleted or leaves Query view
Integer specifying removed Project index. Not populated in stateless watch type.
RecoveryStoreShardingInfoChange Message
RecoveryStoreShardingInfoChange is used by Watch notifications Responses to
describe change of single RecoveryStoreShardingInfo One of Added, Modified,
Removed
New version of RecoveryStoreShardingInfo or masked difference, depending on mask_changes instrumentation of issued [WatchRecoveryStoreShardingInfoRequest] or [WatchRecoveryStoreShardingInfosRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified RecoveryStoreShardingInfo. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying RecoveryStoreShardingInfo new index in resulting query view.
RecoveryStoreShardingInfoChange.Removed Message
Removed is returned when RecoveryStoreShardingInfo is deleted or leaves
Query view
Integer specifying removed RecoveryStoreShardingInfo index. Not populated in stateless watch type.
Strings Message
Represents wrapped list of strings.
Name
Type
Description
values
repeated string
TimeInterval Message
A time interval extending just after a start time through an end time.
If the start time is the same as the end time, then the interval
represents a single point in time.
Name
Type
Description
end_time
.google.protobuf.Timestamp
Required. The end of the time interval.
start_time
.google.protobuf.Timestamp
Optional. The beginning of the time interval. The default value for the start time is the end time. The start time must not be later than the end time.
TimeRange Message
Time Range represents time between two points in time. Any of those can
be missing, which means it’s open-ended.
The Aligner describes how to bring the data points in a single
time series into temporal alignment.
Name
Description
ALIGN_NONE
No alignment. Raw data is returned. Not valid if cross-time series reduction is requested. The value type of the result is the same as the value type of the input.
ALIGN_DELTA
Align and convert to delta metric type. This alignment is valid for cumulative metrics and delta metrics. Aligning an existing delta metric to a delta metric requires that the alignment period be increased. The value type of the result is the same as the value type of the input. One can think of this aligner as a rate but without time units; that is, the output is conceptually (second_point - first_point).
ALIGN_RATE
Align and convert to a rate. This alignment is valid for cumulative metrics and delta metrics with numeric values. The output is a gauge metric with value type [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]. One can think of this aligner as conceptually providing the slope of the line that passes through the value at the start and end of the window. In other words, this is conceptually ((y1 - y0)/(t1 - t0)), and the output unit is one that has a “/time” dimension. If, by rate, you are looking for percentage change, see the ALIGN_PERCENT_CHANGE aligner option.
ALIGN_INTERPOLATE
Align by interpolating between adjacent points around the period boundary. This alignment is valid for gauge metrics with numeric values. The value type of the result is the same as the value type of the input.
ALIGN_NEXT_OLDER
Align by shifting the oldest data point before the period boundary to the boundary. This alignment is valid for gauge metrics. The value type of the result is the same as the value type of the input.
ALIGN_MIN
Align time series via aggregation. The resulting data point in the alignment period is the minimum of all data points in the period. This alignment is valid for gauge and delta metrics with numeric values. The value type of the result is the same as the value type of the input.
ALIGN_MAX
Align time series via aggregation. The resulting data point in the alignment period is the maximum of all data points in the period. This alignment is valid for gauge and delta metrics with numeric values. The value type of the result is the same as the value type of the input.
ALIGN_MEAN
Align time series via aggregation. The resulting data point in the alignment period is the average or arithmetic mean of all data points in the period. This alignment is valid for gauge and delta metrics with numeric values. The value type of the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
ALIGN_COUNT
Align time series via aggregation. The resulting data point in the alignment period is the count of all data points in the period. This alignment is valid for gauge and delta metrics with numeric or Boolean values. The value type of the output is [INT64][google.api.MetricDescriptor.ValueType.INT64].
ALIGN_SUM
Align time series via aggregation. The resulting data point in the alignment period is the sum of all data points in the period. This alignment is valid for gauge and delta metrics with numeric and distribution values. The value type of the output is the same as the value type of the input.
ALIGN_STDDEV
Align time series via aggregation. The resulting data point in the alignment period is the standard deviation of all data points in the period. This alignment is valid for gauge and delta metrics with numeric values. The value type of the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
ALIGN_COUNT_TRUE
Align time series via aggregation. The resulting data point in the alignment period is the count of True-valued data points in the period. This alignment is valid for gauge metrics with Boolean values. The value type of the output is [INT64][google.api.MetricDescriptor.ValueType.INT64].
ALIGN_COUNT_FALSE
Align time series via aggregation. The resulting data point in the alignment period is the count of False-valued data points in the period. This alignment is valid for gauge metrics with Boolean values. The value type of the output is [INT64][google.api.MetricDescriptor.ValueType.INT64].
ALIGN_FRACTION_TRUE
Align time series via aggregation. The resulting data point in the alignment period is the fraction of True-valued data points in the period. This alignment is valid for gauge metrics with Boolean values. The output value is in the range [0, 1] and has value type [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
ALIGN_PERCENTILE_99
Align time series via aggregation. The resulting data point in the alignment period is the 99th percentile of all data points in the period. This alignment is valid for gauge and delta metrics with distribution values. The output is a gauge metric with value type [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
ALIGN_PERCENTILE_95
Align time series via aggregation. The resulting data point in the alignment period is the 95th percentile of all data points in the period. This alignment is valid for gauge and delta metrics with distribution values. The output is a gauge metric with value type [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
ALIGN_PERCENTILE_50
Align time series via aggregation. The resulting data point in the alignment period is the 50th percentile of all data points in the period. This alignment is valid for gauge and delta metrics with distribution values. The output is a gauge metric with value type [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
ALIGN_PERCENTILE_05
Align time series via aggregation. The resulting data point in the alignment period is the 5th percentile of all data points in the period. This alignment is valid for gauge and delta metrics with distribution values. The output is a gauge metric with value type [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
ALIGN_PERCENT_CHANGE
Align and convert to a percentage change. This alignment is valid for gauge and delta metrics with numeric values. This alignment conceptually computes the equivalent of “((current - previous)/previous)*100” where previous value is determined based on the alignmentPeriod. In the event that previous is 0 the calculated value is infinity with the exception that if both (current - previous) and previous are 0 the calculated value is 0. A 10 minute moving mean is computed at each point of the time window prior to the above calculation to smooth the metric and prevent false positives from very short lived spikes. Only applicable for data that is >= 0. Any values < 0 are treated as no data. While delta metrics are accepted by this alignment special care should be taken that the values for the metric will always be positive. The output is a gauge metric with value type [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
ALIGN_SUMMARY
Outputs Distribution without bucketing with stats like: Min, Max, Count, Mean, SumOfSquaredDeviations valid only for LONG, DOUBLE and DISTRIBUTION value types
ALIGN_TDIGEST_SUMMARY
TDigest Summary allows for calculation (and further aggregation) of percentiles
Aggregation.Reducer Enumeration
A Reducer describes how to aggregate data points from multiple
time series into a single time series.
Name
Description
REDUCE_NONE
No cross-time series reduction. The output of the aligner is returned.
REDUCE_MEAN
Reduce by computing the mean across time series for each alignment period. This reducer is valid for delta and gauge metrics with numeric or distribution values. The value type of the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
REDUCE_MIN
Reduce by computing the minimum across time series for each alignment period. This reducer is valid for delta and gauge metrics with numeric values. The value type of the output is the same as the value type of the input.
REDUCE_MAX
Reduce by computing the maximum across time series for each alignment period. This reducer is valid for delta and gauge metrics with numeric values. The value type of the output is the same as the value type of the input.
REDUCE_SUM
Reduce by computing the sum across time series for each alignment period. This reducer is valid for delta and gauge metrics with numeric and distribution values. The value type of the output is the same as the value type of the input.
REDUCE_STDDEV
Reduce by computing the standard deviation across time series for each alignment period. This reducer is valid for delta and gauge metrics with numeric or distribution values. The value type of the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
REDUCE_COUNT
Reduce by computing the count of data points across time series for each alignment period. This reducer is valid for delta and gauge metrics of numeric, Boolean, distribution, and string value type. The value type of the output is [INT64][google.api.MetricDescriptor.ValueType.INT64].
REDUCE_COUNT_TRUE
Reduce by computing the count of True-valued data points across time series for each alignment period. This reducer is valid for delta and gauge metrics of Boolean value type. The value type of the output is [INT64][google.api.MetricDescriptor.ValueType.INT64].
REDUCE_COUNT_FALSE
Reduce by computing the count of False-valued data points across time series for each alignment period. This reducer is valid for delta and gauge metrics of Boolean value type. The value type of the output is [INT64][google.api.MetricDescriptor.ValueType.INT64].
REDUCE_FRACTION_TRUE
Reduce by computing the fraction of True-valued data points across time series for each alignment period. This reducer is valid for delta and gauge metrics of Boolean value type. The output value is in the range [0, 1] and has value type [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
REDUCE_PERCENTILE_99
Reduce by computing 99th percentile of data points across time series for each alignment period. This reducer is valid for gauge and delta metrics of numeric and distribution type. The value of the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]
REDUCE_PERCENTILE_95
Reduce by computing 95th percentile of data points across time series for each alignment period. This reducer is valid for gauge and delta metrics of numeric and distribution type. The value of the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]
REDUCE_PERCENTILE_50
Reduce by computing 50th percentile of data points across time series for each alignment period. This reducer is valid for gauge and delta metrics of numeric and distribution type. The value of the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]
REDUCE_PERCENTILE_05
Reduce by computing 5th percentile of data points across time series for each alignment period. This reducer is valid for gauge and delta metrics of numeric and distribution type. The value of the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]
REDUCE_SUMMARY
Reduce with Distribution with stats like: Min, Max, Count, Mean, SumOfSquaredDeviations, histogram. This reducer is valid for gauge and delta metrics of numeric and distribution type. The value of the output is [DISTRIBUTION][google.api.MetricDescriptor.ValueType.DISTRIBUTION]
LabelDescriptor.ValueType Enumeration
Value types that can be used as label values.
Name
Description
STRING
A variable-length string. This is the default.
BOOL
Boolean; true or false.
INT64
A 64-bit signed integer.
TimeSeriesView Enumeration
Controls which fields are returned by ListTimeSeries.
Name
Description
FULL
Returns the identity of the metric(s), the time series, and the time series data.
HEADERS
Returns the identity of the metric and the time series resource, but not the time series data.
5.3 -
Understanding the monitoring.edgelq.com service APIv4, in proto package ntt.monitoring.v4.
Service monitoring.edgelq.com in version v4, proto package ntt.monitoring.v4
Here is the list of resources supported in Monitoring service APIv4:
Name of Alert When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-zA-Z0-9_.:-]{1,128}
Metadata 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).
TimeSerie labels that violated condition. If Alert is for AlertingCondition using combine threshold, metric.type will be equal to primary metric indicated.
describes in terms of time series when alert began and ended (resolved). uses Time Series derived timestamps, rather than real-time. use meta.create_time to get creation date.
needs_notification
bool
This alert needs to be notified
notification_created
bool
Notification resource is generated for this alert
lifecycle_completed
bool
Alert has ended and any needed notifications are processed
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListAlertsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Alerts 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.
Requested page size. Server may return fewer Alerts than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Alert that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Alert that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Alerts 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Alerts 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateAlertRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
Name of AlertingCondition When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
Either specify single threshold or combine threshold, which allows to pair each metric value to their specific thresholds, e.g. distinguish mean (loss, latency, jitter) in single query. If combine threshold is used, alert will be triggered only when all thresholds are violated. Example use case: * Trigger alert when CPU utilization > … and uptime > … (so we dont alert during startup unnecessarily). Time series sharing same fields except metric.type are merged (originally determined by aggregation.groupByFields).
Generated, filter-able selector, extracted from filter value. It will contain all extracted conditions for ‘==’ and ‘IN’ operators. It will exclude conditions for operators ‘!=’ and ‘NOT IN’. This allows filtering AlertingConditions by filter conditions.
If metric.type uses CombineThreshold and multiple metrics, it can provide extra per metric aggregation override. This cannot be specified for “main” metric.type. But be aware, AP and GroupByFields must be exactly same as in “aggregation” field.
Compare function specifies if observed value must be GreaterThan (GT) or LesserThan (LT) threshold value in order to trigger an alert. Example: for metric latency {compare: GT, value: 150} will trigger if actual latency is above 150ms.
Per Metric threshold. If multiple metrics are selected each metric may specify a different threshold
main_metric_type
string
Primary metric.type for this condition. Although Alerts generated across multiple metric.type are possible, Alert instance has single “info.time_serie.metric.type” field path value.
per_metric_type_kv
map<string, bytes>
Internal per metric identifiers in binary key
GetAlertingConditionRequest Message
A request message of the GetAlertingCondition method.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListAlertingConditionsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total AlertingConditions 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.
WatchAlertingConditionRequest Message
A request message of the WatchAlertingCondition method.
Parent name of ntt.monitoring.v4.AlertingCondition
page_size
int32
Requested page size. Server may return fewer AlertingConditions than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to AlertingCondition that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to AlertingCondition that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchAlertingConditionsResponse Message
A response message of the WatchAlertingConditions method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All AlertingConditions 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (AlertingConditions 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteAlertingConditionRequest Message
A request message of the DeleteAlertingCondition method.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
Name of AlertingPolicy When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
documentation mime type. Only "text/markdown" is supported.
AlertingPolicy.Spec Message
Name
Type
Description
enabled
bool
Whether policy is enabled and will evaluate any conditions Note: If any existing fired alerts are present, they will not be resolved automatically TODO: consider if they should?
Condition Combiner when deciding if ANY (OR) or ALL (AND) conditions for given subset of resource labels must fire in order to trigger an alert TODO: Add support to AND
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListAlertingPoliciesRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total AlertingPolicies 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.
WatchAlertingPolicyRequest Message
A request message of the WatchAlertingPolicy method.
Requested page size. Server may return fewer AlertingPolicies than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to AlertingPolicy that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to AlertingPolicy that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchAlertingPoliciesResponse Message
A response message of the WatchAlertingPolicies method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All AlertingPolicies 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (AlertingPolicies 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateAlertingPolicyRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteAlertingPolicyRequest Message
A request message of the DeleteAlertingPolicy method.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
Name of Bucket 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: [\w./-]{2,128}
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
All combinations of key-values (in integer forms) - one of them must be passed by every TimeSerie object for given bucket. Its computed by server side and for internal use.
Bucket.ResolvedValues Message
ResolvedValues contains binary representation of types and labels and
possible values. Due to limitations in some db backends (looking at
firestore), we use int64 instead of uint64.
Name
Type
Description
key
int64
values
repeated int64
Bucket.ResolvedKeysWithValues Message
ResolvedKeysWithValues binds multiple keys with possible values.
RequiredTypedLabels describes required label values for specified
metric and resource types. All time series in Create operation
must contain at least one allowed type and then labels must match
all the labels. For list queries, filter must contain at least one
type and all labels must be present in condition containing all
or subset of allowed label values.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListBucketsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Buckets 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.
Requested page size. Server may return fewer Buckets than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Bucket that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Bucket that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Buckets 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Buckets 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateBucketRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
Defines a metric type and its schema. Once a metric descriptor is created,
deleting or altering it stops data collection and makes the metric type’s
existing data unusable.
Name of MetricDescriptor 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: [\w./-]{4,128}
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
type
string
The metric type, including its DNS name prefix. The type is not URL-encoded. All user-defined metric types have the DNS name custom.googleapis.com or external.googleapis.com. Metric types should use a natural hierarchical grouping. For example: “custom.googleapis.com/invoice/paid/amount” “external.googleapis.com/prometheus/up” “appengine.googleapis.com/http/server/response_latencies”
resource_types
repeated string
associated resource_types (also used to infer defaults) examples, devices.edgelq.com/Device, watchdog.edgelq.com/Agent. DEPRECATED, use “indices”.
The set of labels that can be used to describe a specific instance of this metric type. For example, the appengine.googleapis.com/http/server/response_latencies metric type has a label for the HTTP response code, response_code, so you can look at latencies for successful responses or just for responses that failed.
Whether the measurement is an integer, a floating-point number, etc. Some combinations of metric_kind and value_type might not be supported.
unit
string
The unit in which the metric value is reported. It is only applicable if the value_type is INT64, DOUBLE, or DISTRIBUTION. The supported units are a subset of The Unified Code for Units of Measure standard: Basic units (UNIT) * bit bit * By byte * s second * min minute * h hour * d day Prefixes (PREFIX) * k kilo (103) * M mega (106) * G giga (109) * T tera (1012) * P peta (1015) * E exa (1018) * Z zetta (1021) * Y yotta (1024) * m milli (10**-3) * u micro (10**-6) * n nano (10**-9) * p pico (10**-12) * f femto (10**-15) * a atto (10**-18) * z zepto (10**-21) * y yocto (10**-24) * Ki kibi (210) * Mi mebi (220) * Gi gibi (230) * Ti tebi (240) Grammar The grammar also includes these connectors: * / division (as an infix operator, e.g. 1/s). * . multiplication (as an infix operator, e.g. GBy.d) The grammar for a unit is as follows: Expression = Component { “.” Component } { “/” Component } ; Component = ( [ PREFIX ] UNIT
description
string
A detailed description of the metric, which can be used in documentation.
display_name
string
A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example “Request count”. This field is optional but it is recommended to be set for any metrics associated with user-visible concepts, such as Quota.
Promoted Label Key Sets allow defining multiple indexing rules for underlying backend enabling query optimizations. Metric promoted label sets are combined with MonitoredResource promoted label sets and result in PromotedKeySet. DEPRECATED, use “indices” instead.
DEPRECATED: use “indices”. This field must not be used if client migrated to ResourceBindings. Whenever index_spec is set, it will override resource_descriptor_bindings. This is for migration purpose, future indices must be managed by ResourceBindings.
Defines indexing rules for underlying backend enabling query optimizations. It’s important consideration for balancing time series query performance and storage cost. Number of non-disabled indices per resource type is 64. Indices are generated from index families. Final index is a combination of metric & resource promoted label set, and pre-aggregation spec (if any). For example, index family with 2 promoted sets for resource, 3 promoted sets for metric, 2 pre-aggregations would create 12 indices. If no pre-aggregations were defined, it would be 6 indices. Metric and resource label sets must never be empty: At least one empty label set must be present.
Generated indices data in binary format, for internal use only. They are compiled when MetricDescriptor is saved and used by monitoring server, db-controller or controller when necessary. One MetricDescriptor instance will have different value of this field in each region!
MetricDescriptor.MetricDescriptorMetadata Message
Additional annotations that can be used to guide the usage of a metric.
Automatically migrated from older specs. It should not be modified by users, it can only be archived once new indices are populated (update closingStatus fields to CLOSED).
MetricDescriptor.StorageConfig Message
Backend storage config
Name
Type
Description
store_raw_points
bool
whether to store raw points
max_ap
.google.protobuf.Duration
Maximum AlignmentPeriod produced. If max_ap is 0, then it is treated as no maximum. Monitoring will be producing time series for all alignment periods. If max_ap is 1 minute, it means only the smallest alignment period is produced.
Closing status should be set when indices used by this group is no longer desirable.
MetricDescriptor.Indices.PaginationView Message
PaginationView is used by PaginationIndices. It indicates which labels
in metric/resource descriptor are kept for filter purpose, and which
are “ranked” by.
Name
Type
Description
name
string
Identifier of the group, used as part of index name and during update validations.
filterable_metric_keys
repeated string
List of metric keys that can optionally be used in filter.
filterable_resource_keys
repeated string
List of resource keys that can optionally be used in filter.
paginated_metric_keys
repeated string
List of metric keys that will be part of “paginated” key (for ranking purpose). Provided labels cannot be used for filtering.
paginated_resource_keys
repeated string
List of resource keys that will be part of “paginated” key (for ranking purpose). Provided labels cannot be used for filtering.
This field is automatically computed and cannot be set by users. It displays list of aligners used by underlying storage. May not exactly match to requested aligners. TODO: Support output_only annotation for sub-array items
MetricDescriptor.Indices.SortingFunction Message
SortingFunction is a function used for paginable indices.
PreAggregatedIndices is a generator of pre-aggregated indices.
One pre-aggregated index is generated per combination of
resource type, partition label set, filter/group label set,
and unique storage aligner (computed from supported aggregations).
All partition label sets. Each is generating index per mentioned resource type, filter/group label set and aligner. Index, to be used, requires specifying all labels mentioned in partition.
All label sets containing labels that can be used in filter/groupBy fields (other than partition). Index, to be used, must not contain any label in filter/groupBy not present in the filter/group labels set.
NonAggregatedIndices is a generator of non-aggregated indices.
One non-aggregated index is generated per combination of
resource type by partition label set.
All partition label sets. Each is generating index per mentioned resource type. Index, to be used, requires specifying all labels mentioned in partition.
PaginationIndices are special pre-aggregated indices.
To access this index, it is necessary to include in the filter
some partition label set. Paginable labels MUST not be used in filter,
and have no effect in groupBy (always included).
All partition label sets. Each is generating index per mentioned resource type. Index, to be used, requires specifying all labels mentioned in partition. Each partition set is matched with each view when generating final views.
resource.type in string version, but integer is also encoded in every other item for convenience.
aggs_encoder
repeated bytes
List of aggregation encoders, used by streaming job when computing pre-aggregated values. Last item contains most recent version of aggregation. Previous entries will be closed after some time and removed.
List of pre-aggregated indices with per-storage-aligner information. These type of indices are more complex due to presence of aligners with their own liveness status.
Requested page size. Server may return fewer MetricDescriptors than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to MetricDescriptor that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to MetricDescriptor that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchMetricDescriptorsResponse Message
A response message of the WatchMetricDescriptors method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All MetricDescriptors 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (MetricDescriptors 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteMetricDescriptorRequest Message
Request message for method
[DeleteMetricDescriptor][ntt.monitoring.v4.DeleteMetricDescriptor]
A token identifying a page of results the server should return. Typically, this is the value of [ListMetricDescriptorsResponse.next_page_token][ntt.monitoring.v4.ListMetricDescriptorsResponse.next_page_token]
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve previous page of results. Pass this value in the [ListMetricDescriptorsRequest.page_token][ntt.monitoring.v4.ListMetricDescriptorsRequest.page_token]
A token to retrieve next page of results. Pass this value in the [ListMetricDescriptorsRequest.page_token][ntt.monitoring.v4.ListMetricDescriptorsRequest.page_token]
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total MetricDescriptors 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.
MetricDescriptor Enumerations
Here is the list of MetricDescriptor resource enumerations:
The kind of measurement. It describes how the data is reported.
Name
Description
METRIC_KIND_UNSPECIFIED
Do not use this default value.
GAUGE
An instantaneous measurement of a value.
DELTA
The change in a value during a time interval.
CUMULATIVE
A value accumulated over a time interval. Cumulative measurements in a time series should have the same start time and increasing end times, until an event resets the cumulative value to zero and sets a new start time for the following points.
MetricDescriptor.ValueType Enumeration
The value type of a metric.
Name
Description
VALUE_TYPE_UNSPECIFIED
Do not use this default value.
BOOL
The value is a boolean. This value type can be used only if the metric kind is GAUGE.
INT64
The value is a signed 64-bit integer.
DOUBLE
The value is a double precision floating point number.
DISTRIBUTION
The value is a [Distribution][google.api.Distribution].
MetricDescriptor.Indices.CloseStatus Enumeration
CloseStatus indicates if index group part is closed.
When part of the index closes, all indices it is part of are closed.
Older data is still available for reading until group is completely
removed.
Name
Description
UNDEFINED
Index is active for read and write
SUSPENDED
index is closed for reading from time when it was suspended. Data prior to suspension is available for reads. Writes are executed normally. SUSPENDED status can be lifted and index will behave like nothing ever happened. Reading will be possible for any time range from creation time.
CLOSED
Index is no longer writing, but data prior to the closed status is available for reads. This helps to maintain older indices still available for reading, even if newer better indices were created.
An object that describes the schema of a
[MonitoredResource][google.api.MonitoredResource] object using a type name
and a set of labels. For example, the monitored resource descriptor for
Google Compute Engine VM instances has a type of
"gce_instance" and specifies the use of the labels "instance_id" and
"zone" to identify particular VM instances.
Different APIs can support different monitored resource types. APIs generally
provide a list method that returns the monitored resource descriptors used
by the API.
Name of MonitoredResourceDescriptor 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: [\w./-]{2,128}
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
type
string
Required. The monitored resource type. For example, the type "cloudsql_database" represents databases in Google Cloud SQL. The maximum length of this value is 256 characters.
display_name
string
Optional. A concise name for the monitored resource type that might be displayed in user interfaces. It should be a Title Cased Noun Phrase, without any article or other determiners. For example, "Google Cloud SQL Database".
description
string
Optional. A detailed description of the monitored resource type that might be used in documentation.
Required. A set of labels used to describe instances of this monitored resource type. For example, an individual Google Cloud SQL database is identified by values for the labels "database_id" and "zone".
Promoted Label Key Sets allow defining multiple indexing rules for underlying backend enabling query optimizations. Metric promoted label sets are combined with MonitoredResource promoted label sets and result in PromotedKeySet. If they are not specified, it will be necessary to specify indices in MetricDescriptor. Otherwise they serve as default value if MetricDescriptor does not describe them.
Parent name of ntt.monitoring.v4.MonitoredResourceDescriptor
page_size
int32
Requested page size. Server may return fewer MonitoredResourceDescriptors than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to MonitoredResourceDescriptor that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to MonitoredResourceDescriptor that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchMonitoredResourceDescriptorsResponse Message
A response message of the WatchMonitoredResourceDescriptors method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All MonitoredResourceDescriptors 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (MonitoredResourceDescriptors 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteMonitoredResourceDescriptorRequest Message
A request message of the DeleteMonitoredResourceDescriptor method.
A token identifying a page of results the server should return. Typically, this is the value of [ListMonitoredResourceDescriptorsResponse.next_page_token][ntt.monitoring.v4.ListMonitoredResourceDescriptorsResponse.next_page_token]
An optional filter describing the descriptors to be returned. The filter can reference the descriptor’s type and labels. For example, the following filter returns only Google Compute Engine descriptors that have an id label: resource.type = starts_with(“gce_”) AND resource.label:id
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve previous page of results. Pass this value in the [ListMonitoredResourceDescriptorsRequest.page_token][ntt.monitoring.v4.ListMonitoredResourceDescriptorsRequest.page_token]
A token to retrieve next page of results. Pass this value in the [ListMonitoredResourceDescriptorsRequest.page_token][ntt.monitoring.v4.ListMonitoredResourceDescriptorsRequest.page_token]
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total MonitoredResourceDescriptors 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.
Name of Notification When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-zA-Z0-9_.:-]{1,128}
Metadata 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).
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListNotificationsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Notifications 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.
WatchNotificationRequest Message
A request message of the WatchNotification method.
Requested page size. Server may return fewer Notifications than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Notification that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Notification that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchNotificationsResponse Message
A response message of the WatchNotifications method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Notifications 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Notifications 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateNotificationRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteNotificationRequest Message
A request message of the DeleteNotification method.
Name of NotificationChannel When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
Notification mask contains list of fields to include in the message. Notification consists of following fields: * “project” -> See monitoring.edgelq.com/Project protobuf spec for subfields * “organization” -> See iam.edgelq.com/Project protobuf spec for subfields * “alertingPolicy” -> See monitoring.edgelq.com/AlertingPolicy protobuf spec for subfields * “notification” -> See monitoring.edgelq.com/Notification protobuf spec for subfields * “events” -> Array of events, each item has subfields: * “alertingCondition” -> See monitoring.edgelq.com/AlertingCondition protobuf spec for subfields * “metricDescriptor” -> See monitoring.edgelq.com/MetricDescriptor protobuf spec for subfields * “monitoredResourceDescriptor” -> See monitoring.edgelq.com/MonitoredResourceDescriptor protobuf spec for subfields * “alerts” -> Array of monitoring.edgelq.com/Alert instances, see protobuf spec for subfields. If notification_mask is not specified, following default is applied: * “project.name” * “project.title” * “organization.name” * “organization.title” * “events.alertingCondition.name” * “events.alertingCondition.displayName” * “events.alertingCondition.spec” * “events.metricDescriptor.name” * “events.metricDescriptor.displayName” * “events.metricDescriptor.type” * “events.metricDescriptor.labels” * “events.metricDescriptor.metricKind” * “events.metricDescriptor.valueType” * “events.metricDescriptor.unit” * “events.alerts.name” * “events.alerts.displayName” * “events.alerts.info.timeSerie.key” * “events.alerts.info.timeSerie.metric” * “events.alerts.info.timeSerie.monitoredResource” * “events.alerts.info.observedValues” * “events.alerts.state”
max_message_size_mb
double
default is 0 means all the alerts in a notification are sent in single request. Breaking into multiple messages may be significantly slower than sending a single message. For example, to use 250KB chunks, set 0.25 MB
NotificationChannel.Spec.Webhook.Header Message
Header
Name
Type
Description
key
string
value
string
NotificationChannel.State.Error Message
Error of NotificationChannel
Name
Type
Description
time
.google.protobuf.Timestamp
message
string
GetNotificationChannelRequest Message
A request message of the GetNotificationChannel method.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListNotificationChannelsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total NotificationChannels 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.
WatchNotificationChannelRequest Message
A request message of the WatchNotificationChannel method.
Parent name of ntt.monitoring.v4.NotificationChannel
page_size
int32
Requested page size. Server may return fewer NotificationChannels than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to NotificationChannel that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to NotificationChannel that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchNotificationChannelsResponse Message
A response message of the WatchNotificationChannels method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All NotificationChannels 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (NotificationChannels 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteNotificationChannelRequest Message
A request message of the DeleteNotificationChannel method.
Name of PhantomTimeSerie 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: [\w+/=]{1,256}
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
key
bytes
TimeSerie key identifies unique TimeSeries tuple: <project, metric.type, metric.labels, resource.type, resource.labels> Kind/ValueType are not present in key Key is not to be decoded outside of service, but treated as opaque string
The associated monitored resource. Custom metrics can use only certain monitored resource types in their time series data. This field cannot be updated, can be only set during creation.
The metric kind of the time series. When listing time series, this metric kind might be different from the metric kind of the associated metric if this time series is an alignment or reduction of other time series. When creating a time series, this field is optional. If present, it must be the same as the metric kind of the associated metric. If the associated metric’s descriptor must be auto-created, then this field specifies the metric kind of the new descriptor and must be either GAUGE (the default) or CUMULATIVE.
The value type of the time series. When listing time series, this value type might be different from the value type of the associated metric if this time series is an alignment or reduction of other time series. When creating a time series, this field is optional. If present, it must be the same as the type of the data in the points field.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListPhantomTimeSeriesRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total PhantomTimeSeries 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.
WatchPhantomTimeSerieRequest Message
A request message of the WatchPhantomTimeSerie method.
Requested page size. Server may return fewer PhantomTimeSeries than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to PhantomTimeSerie that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to PhantomTimeSerie that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchPhantomTimeSeriesResponse Message
A response message of the WatchPhantomTimeSeries method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All PhantomTimeSeries 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (PhantomTimeSeries 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeletePhantomTimeSerieRequest Message
A request message of the DeletePhantomTimeSerie method.
Name of Project When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListProjectsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Projects 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.
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_size
int32
Requested page size. Server may return fewer Projects than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Project that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Project that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Projects 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Projects 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateProjectRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
Name of RecoveryStoreShardingInfo When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-zA-Z0-9_.-]{1,128}
Metadata 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).
A token identifying a page of results the server should return. Typically, this is the value of ListRecoveryStoreShardingInfosResponse.next_page_token.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListRecoveryStoreShardingInfosRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total RecoveryStoreShardingInfos 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.
WatchRecoveryStoreShardingInfoRequest Message
A request message of the WatchRecoveryStoreShardingInfo method.
Parent name of ntt.monitoring.v4.RecoveryStoreShardingInfo
page_size
int32
Requested page size. Server may return fewer RecoveryStoreShardingInfos than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to RecoveryStoreShardingInfo that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to RecoveryStoreShardingInfo that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchRecoveryStoreShardingInfosResponse Message
A response message of the WatchRecoveryStoreShardingInfos method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All RecoveryStoreShardingInfos 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (RecoveryStoreShardingInfos 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteRecoveryStoreShardingInfoRequest Message
A request message of the DeleteRecoveryStoreShardingInfo method.
TimeSerie key identifies unique TimeSeries tuple: <project, region, metric.type, metric.labels, resource.type, resource.labels, unit> Kind/ValueType are not present in key Key is not to be decoded outside of service, but treated as opaque string Specific key is valid and understood only in single region only. If time serie is created by merging from multiple regions, key must be ignore.
project
string
Internal use - for bulk reporting of TimeSeries
region
string
Region ID associated with time serie.
unit
string
Unit taken from MetricDescriptor (metric.type field). It does not need to be populated during creation (it is derived). It may be modified by certain queries (COUNT will switch unit to “1”, ALIGN_RATE will append “/s”.
The metric kind of the time series. When listing time series, this metric kind might be different from the metric kind of the associated metric if this time series is an alignment or reduction of other time series. When creating a time series, this field is optional. If present, it must be the same as the metric kind of the associated metric. If the associated metric’s descriptor must be auto-created, then this field specifies the metric kind of the new descriptor and must be either GAUGE (the default) or CUMULATIVE.
The value type of the time series. When listing time series, this value type might be different from the value type of the associated metric if this time series is an alignment or reduction of other time series. When creating a time series, this field is optional. If present, it must be the same as the type of the data in the points field.
The data points of this time series. When listing time series, points are returned in reverse time order. When creating a time series, this field must contain exactly one point and the point’s type must be the same as the value type of the associated metric. If the associated metric’s descriptor must be auto-created, then the value type of the descriptor is determined by the point’s type, which must be BOOL, INT64, DOUBLE, or DISTRIBUTION.
ListTimeSeriesRequest Message
Request message for method [ListTimeSeries][ntt.monitoring.v4.ListTimeSeries]
Name
Type
Description
parent
string
The project on which to execute the request. The format is “projects/{project_id}”, or “projects/{project_id}/regions/{region_id}/buckets/{bucket_id}”
A monitoring filter that specifies which time series should be returned. The filter must specify a single metric type, and can additionally specify metric labels and other information. For example: metric.type = “compute.googleapis.com/instance/cpu/usage_time” AND metric.label.instance_name = “my-instance-name”
The time interval for which results should be returned. Only time series that contain data points in the specified interval are included in the response.
Instructs how to transform individual time series (aligner) and combine them together (reducer, group by fields). Cannot be used with pagination, as pagination exactly defines aggregation. Query will be rejected if it touches too many time series.
Picks paginated time series according to pre-defined (in metric descriptor) view and function. Cannot be used with aggregation, because pagination view and function determines time series transformation and sorting.
Specifies which information is returned about the time series.
field_mask
.google.protobuf.FieldMask
view list mask. Optimize network usage and limit returned header fields to a required subset. example fields in field mask: - “key”: for later caching, - “resource.labels.project_id”, “resource.labels.instance_name”, etc - specific labels only - “resource”, “metric”: all resource labels, reduced_labels and type NOTE: points are added implicitly
points_cap
int32
A positive number that is the maximum number of Points to return. If points_cap is empty or more than 100,000 results, the effective points_cap is 100,000 results. If view is set to HEADERS, this is the maximum number of TimeSeries returned.
continuation_token
string
If this field is not empty then it must contain the continuation_token value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.
ListTimeSeriesResponse Message
Response message for method
[ListTimeSeries][ntt.monitoring.v4.ListTimeSeries]
Query execution errors that may have caused the time series data returned to be incomplete.
continuation_token
string
If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as continuation_token in the next call to this method.
Special time series with total amount of records available for pagination by given time series key. Metric/Resource labels will contain “common” values shared by all ranked time series. ValueType will be always INT64 and metricKind GAUGE. In a sense, this time series is execution of ListTimeSeries with Aggregation = {groupByFields: [<viewPaginatedLabels>], REDUCER: REDUCE_COUNT} This field is only populated for paginated queries (pagination in ListTimeSeries is specified).
ListTimeSeriesResponse.ErrorDetails Message
ErrorDetails is used when one of the queried regions fails to produce
results. It is used in execution_errors field (see subfield
ntt.rpc.Status.details).
Name
Type
Description
region_id
string
region id which failed to give results.
QueryProjectTimeSeriesStatsRequest Message
Response message for method
[QueryProjectTimeSeriesStats][ntt.monitoring.v4.QueryProjectTimeSeriesStats]
The time interval for which results should be returned.
page_size
int32
A positive number that is the maximum number of results to return. If page_size is empty or more than 100,000 results, the effective page_size is 100,000 results.
page_token
string
If this field is not empty then it must contain the nextPageToken value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.
If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as pageToken in the next call to this method.
ErrorDetails is used when one of the queried regions fails to produce
results. It is used in execution_errors field (see subfield
ntt.rpc.Status.details).
Name
Type
Description
region_id
string
region id which failed to give results.
QueryServiceTimeSeriesStatsRequest Message
Response message for method
[QueryServiceTimeSeriesStats][ntt.monitoring.v4.QueryServiceTimeSeriesStats]
The time interval for which results should be returned.
page_size
int32
A positive number that is the maximum number of results to return. If page_size is empty or more than 100,000 results, the effective page_size is 100,000 results.
page_token
string
If this field is not empty then it must contain the nextPageToken value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.
user_project_ids
repeated string
Optional list of user projects for which we want to get stats. If provided, statistics will be grouped by them.
If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as pageToken in the next call to this method.
ErrorDetails is used when one of the queried regions fails to produce
results. It is used in execution_errors field (see subfield
ntt.rpc.Status.details).
Name
Type
Description
region_id
string
region id which failed to give results.
CreateTimeSeriesRequest Message
Request message for method
[CreateTimeSeries][ntt.monitoring.v4.CreateTimeSeries]
Name
Type
Description
parent
string
The project on which to execute the request. The format is “projects/{project_id}”, or “projects/{project_id}/regions/{region_id}/buckets/{bucket_id}”
The new data to be added to a list of time series. Adds at most one data point to each of several time series. The new data point must be more recent than any other point in its time series. Each TimeSeries value must fully specify a unique time series by supplying all label values for the metric and the monitored resource.
CreateTimeSeriesResponse Message
Response message for method
[CreateTimeSeries][ntt.monitoring.v4.CreateTimeSeries]
Name
Type
Description
time_serie_keys
map<uint32s, bytes>
Time Serie keys indexed by Create position - present only when given TimeSerie didn’t use Key field
A monitoring filter that specifies which time series should be returned. The filter must specify a single metric type, and can additionally specify metric labels and other information. For example: metric.type = “compute.googleapis.com/instance/cpu/usage_time” AND metric.label.instance_name = “my-instance-name”
Instructs how to transform individual time series (aligner) and combine them together (reducer, group by fields).
snapshot_interval_to_fetch
.google.protobuf.Duration
Amount of past data to fetch when new time series key appears (not present in current session). For example: If client lost previous watch session for 15 minutes, they can set this field value to 15 minutes duration + 1 extra AlignmentPeriod value just in case. Initial time series in response will contain extra past data. Once specific TimeSeries key was already observed, further values will be coming only from realtime watch. This field has lower priority than starting_time!
starting_time
.google.protobuf.Timestamp
For every new unique time series key monitoring will try to fetch past data from given starting time. This is useful for recovery purposes, if client has lost previous watch session. Once snapshot is retrieved for given key, further data will contain live updates. This field takes priority over snapshot_interval_to_fetch.
TimeSeriesCollectionRule Resource is a persistent WatchTimeSeries
session registered on the server side. It collects time series according
to the specified filter/aggregation, and within a project where rule is.
Sink resource can be from different project.
Name of TimeSeriesCollectionRule When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
Optional sink where data is automatically forwarder. It can be nil, if intention for this collection rule is to aid in pulling via time series watch feature (TODO: Not implemented, rule without sink has no effect).
GetTimeSeriesCollectionRuleRequest Message
A request message of the GetTimeSeriesCollectionRule method.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListTimeSeriesCollectionRulesRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total TimeSeriesCollectionRules 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.
WatchTimeSeriesCollectionRuleRequest Message
A request message of the WatchTimeSeriesCollectionRule method.
Parent name of ntt.monitoring.v4.TimeSeriesCollectionRule
page_size
int32
Requested page size. Server may return fewer TimeSeriesCollectionRules than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to TimeSeriesCollectionRule that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to TimeSeriesCollectionRule that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchTimeSeriesCollectionRulesResponse Message
A response message of the WatchTimeSeriesCollectionRules method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All TimeSeriesCollectionRules 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (TimeSeriesCollectionRules 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteTimeSeriesCollectionRuleRequest Message
A request message of the DeleteTimeSeriesCollectionRule method.
Name of ntt.monitoring.v4.TimeSeriesCollectionRule
TimeSeriesForwarderSink Resource
TimeSeriesForwarderSink Resource describes destination of TimeSeries data.
Sink can be connected to TimeSeriesCollectionRule.
TimeSeriesForwarderSink does not need to be in the same project as collection
rule. Each item published on the sink will be a protobuf message of
ntt.monitoring.v4.BulkTimeSeries.
Name of TimeSeriesForwarderSink When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
Endpoint must contain secret value for authentication purposes, therefore it is packed as a Secret resource. Secret resource itself must contain following data field: { “data”: { “EndpointString”: “Endpoint=sb://<name>.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=<SECRET>;EntityPath=<topicName>” } } Replace <> elements with appropiate values.
GetTimeSeriesForwarderSinkRequest Message
A request message of the GetTimeSeriesForwarderSink method.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListTimeSeriesForwarderSinksRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total TimeSeriesForwarderSinks 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.
WatchTimeSeriesForwarderSinkRequest Message
A request message of the WatchTimeSeriesForwarderSink method.
Parent name of ntt.monitoring.v4.TimeSeriesForwarderSink
page_size
int32
Requested page size. Server may return fewer TimeSeriesForwarderSinks than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to TimeSeriesForwarderSink that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to TimeSeriesForwarderSink that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchTimeSeriesForwarderSinksResponse Message
A response message of the WatchTimeSeriesForwarderSinks method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All TimeSeriesForwarderSinks 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (TimeSeriesForwarderSinks 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteTimeSeriesForwarderSinkRequest Message
A request message of the DeleteTimeSeriesForwarderSink method.
Describes how to combine multiple time series to provide different views of
the data. Aggregation consists of an alignment step on individual time
series (alignment_period and per_series_aligner) followed by an optional
reduction step of the data across the aligned time series
(cross_series_reducer and group_by_fields). For more details, see
Aggregation.
Name
Type
Description
alignment_period
.google.protobuf.Duration
The alignment period for per-[time series][ntt.monitoring.v3.TimeSeries] alignment. If present, alignmentPeriod must be at least 60 seconds. After per-time series alignment, each time series will contain data points only on the period boundaries. If perSeriesAligner is not specified or equals ALIGN_NONE, then this field is ignored. If perSeriesAligner is specified and does not equal ALIGN_NONE, then this field must be defined; otherwise an error is returned.
The approach to be used to align individual time series. Not all alignment functions may be applied to all time series, depending on the metric type and value type of the original time series. Alignment may change the metric type or the value type of the time series. Time series data must be aligned in order to perform cross-time series reduction. If crossSeriesReducer is specified, then perSeriesAligner must be specified and not equal ALIGN_NONE and alignmentPeriod must be specified; otherwise, an error is returned.
The approach to be used to combine time series. Not all reducer functions may be applied to all time series, depending on the metric type and the value type of the original time series. Reduction may change the metric type of value type of the time series. Time series data must be aligned in order to perform cross-time series reduction. If crossSeriesReducer is specified, then perSeriesAligner must be specified and not equal ALIGN_NONE and alignmentPeriod must be specified; otherwise, an error is returned.
group_by_fields
repeated string
The set of fields to preserve when crossSeriesReducer is specified. The groupByFields determine how the time series are partitioned into subsets prior to applying the aggregation function. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The crossSeriesReducer is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains resource.type. Fields not specified in groupByFields are aggregated away. If groupByFields is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If crossSeriesReducer is not defined, this field is ignored.
AlertChange Message
AlertChange is used by Watch notifications Responses to describe change of
single Alert One of Added, Modified, Removed
New version of Alert or masked difference, depending on mask_changes instrumentation of issued [WatchAlertRequest] or [WatchAlertsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Alert. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Alert new index in resulting query view.
AlertChange.Removed Message
Removed is returned when Alert is deleted or leaves Query view
New version of AlertingCondition or masked difference, depending on mask_changes instrumentation of issued [WatchAlertingConditionRequest] or [WatchAlertingConditionsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified AlertingCondition. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying AlertingCondition new index in resulting query view.
AlertingConditionChange.Removed Message
Removed is returned when AlertingCondition is deleted or leaves Query view
New version of AlertingPolicy or masked difference, depending on mask_changes instrumentation of issued [WatchAlertingPolicyRequest] or [WatchAlertingPoliciesRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified AlertingPolicy. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying AlertingPolicy new index in resulting query view.
AlertingPolicyChange.Removed Message
Removed is returned when AlertingPolicy is deleted or leaves Query view
New version of Bucket or masked difference, depending on mask_changes instrumentation of issued [WatchBucketRequest] or [WatchBucketsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Bucket. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Bucket new index in resulting query view.
BucketChange.Removed Message
Removed is returned when Bucket is deleted or leaves Query view
The time series, including the Metric, MonitoredResource, and Points (including timestamp and value) that resulted in the error. This field provides all of the context that would be needed to retry the operation.
Distribution contains summary statistics for a population of values and,
optionally, a histogram representing the distribution of those values across
a specified set of histogram buckets.
The summary statistics are the count, mean, sum of the squared deviation from
the mean, the minimum, and the maximum of the set of population of values.
The histogram is based on a sequence of buckets and gives a count of values
that fall into each bucket. The boundaries of the buckets are given either
explicitly or by specifying parameters for a method of computing them
(buckets of fixed width or buckets of exponentially increasing width).
Although it is not forbidden, it is generally a bad idea to include
non-finite values (infinities or NaNs) in the population of values, as this
will render the mean and sum_of_squared_deviation fields meaningless.
Name
Type
Description
count
int64
The number of values in the population. Must be non-negative.
mean
double
The arithmetic mean of the values in the population. If count is zero then this field must be zero.
sum_of_squared_deviation
double
The sum of squared deviations from the mean of the values in the population. For values x_i this is: Sum[i=1..n]((x_i - mean)^2) Knuth, “The Art of Computer Programming”, Vol. 2, page 323, 3rd edition describes Welford’s method for accumulating this sum in one pass. If count is zero then this field must be zero.
If bucket_options is given, then the sum of the values in bucket_counts must equal the value in count. If bucket_options is not given, no bucket_counts fields may be given. Bucket counts are given in order under the numbering scheme described above (the underflow bucket has number 0; the finite buckets, if any, have numbers 1 through N-2; the overflow bucket has number N-1). The size of bucket_counts must be no greater than N as defined in bucket_options. Any suffix of trailing zero bucket_count fields may be omitted.
Distribution.BucketOptions Message
A Distribution may optionally contain a histogram of the values in the
population. The histogram is given in bucket_counts as counts of values
that fall into one of a sequence of non-overlapping buckets. The sequence
of buckets is described by bucket_options.
A bucket specifies an inclusive lower bound and exclusive upper bound for
the values that are counted for that bucket. The upper bound of a bucket
is strictly greater than the lower bound.
The sequence of N buckets for a Distribution consists of an underflow
bucket (number 0), zero or more finite buckets (number 1 through N - 2) and
an overflow bucket (number N - 1). The buckets are contiguous: the lower
bound of bucket i (i > 0) is the same as the upper bound of bucket i - 1.
The buckets span the whole range of finite values: lower bound of the
underflow bucket is -infinity and the upper bound of the overflow bucket is
+infinity. The finite buckets are so-called because both bounds are
finite.
BucketOptions describes bucket boundaries in one of three ways. Two
describe the boundaries by giving parameters for a formula to generate
boundaries and one gives the bucket boundaries explicitly.
If bucket_boundaries is not given, then no bucket_counts may be given.
Centroid means. Must be the same length as bucket counts. Each mean, count represents a weighed centroid.
Distribution.BucketOptions.Explicit Message
A set of buckets with arbitrary widths.
Defines size(bounds) + 1 (= N) buckets with these boundaries for
bucket i:
Upper bound (0 <= i < N-1): bounds[i]
Lower bound (1 <= i < N); bounds[i - 1]
There must be at least one element in bounds. If bounds has only one
element, there are no finite buckets, and that single element is the
common boundary of the overflow and underflow buckets.
Name
Type
Description
bounds
repeated double
The values must be monotonically increasing.
Distribution.BucketOptions.Exponential Message
Specify a sequence of buckets that have a width that is proportional to
the value of the lower bound. Each bucket represents a constant relative
uncertainty on a specific value in the bucket.
Defines num_finite_buckets + 2 (= N) buckets with these boundaries for
bucket i:
Upper bound (0 <= i < N-1): scale * (growth_factor ^ i).
Lower bound (1 <= i < N): scale * (growth_factor ^ (i - 1)).
Name
Type
Description
num_finite_buckets
int32
Must be greater than 0.
growth_factor
double
Must be greater than 1.
scale
double
Must be greater than 0.
Distribution.BucketOptions.Linear Message
Specify a sequence of buckets that all have the same width (except
overflow and underflow). Each bucket represents a constant absolute
uncertainty on the specific value in the bucket.
Defines num_finite_buckets + 2 (= N) buckets with these boundaries for
bucket i:
Upper bound (0 <= i < N-1): offset + (width * i).
Lower bound (1 <= i < N): offset + (width * (i - 1)).
The type of data that can be assigned to the label.
description
string
A human-readable description for the label.
default_value
string
Default value for string label - this value is used in two cases: 1. to populate missing labels while creating TimeSeries 2. to populate missing remaining kvs while querying TimeSeries - usually applies to old data
disabled
bool
disabled flag communicates that this label is ignored by the backend. It’s used for backward compatibility.
LabelKeySet Message
LabelKeySet is used for defining PromotedLabelKeySets on Metric and Resource
descriptors
Name
Type
Description
label_keys
repeated string
List of label keys. Cannot be modified once set.
Metric Message
A specific metric, identified by specifying values for all of the
labels of a [MetricDescriptor][google.api.MetricDescriptor].
Name
Type
Description
type
string
An existing metric type, see [google.api.MetricDescriptor][google.api.MetricDescriptor]. For example, custom.googleapis.com/invoice/paid/amount.
labels
map<string, string>
The set of label values that uniquely identify this metric. All labels listed in the MetricDescriptor must be assigned values.
reduced_labels
repeated string
reduced labels in aggregations
MetricDescriptorChange Message
MetricDescriptorChange is used by Watch notifications Responses to describe
change of single MetricDescriptor One of Added, Modified, Removed
New version of MetricDescriptor or masked difference, depending on mask_changes instrumentation of issued [WatchMetricDescriptorRequest] or [WatchMetricDescriptorsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified MetricDescriptor. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying MetricDescriptor new index in resulting query view.
MetricDescriptorChange.Removed Message
Removed is returned when MetricDescriptor is deleted or leaves Query view
Integer specifying removed MetricDescriptor index. Not populated in stateless watch type.
MetricSelector Message
Metric selects metric.type and list of labels used to
build query, like:
metric.type IN ("type0", "type1", ...) AND
metric.labels.<key0> IN (label0_0, label0_1, ...) AND
metric.labels.<key1> IN (label1_0, label1_1, ...) AND ...
label key, e.g. “project_id”, “target_id”, etc Note the missing “metric.labels.” prefix.
MonitoredResource Message
An object representing a resource that can be used for monitoring, logging,
billing, or other purposes. Examples include virtual machine instances,
databases, and storage devices such as disks. The type field identifies a
[MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object
that describes the resource’s schema. Information in the labels field
identifies the actual resource and its attributes according to the schema.
For example, a particular Compute Engine VM instance could be represented by
the following object, because the
[MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] for
"gce_instance" has labels
"instance_id" and "zone":
Required. The monitored resource type. This field must match the type field of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object. For example, the type of a Compute Engine VM instance is gce_instance.
labels
map<string, string>
Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Compute Engine VM instances use the labels "project_id", "instance_id", and "zone".
reduced_labels
repeated string
reduced labels in aggregations
MonitoredResourceDescriptorChange Message
MonitoredResourceDescriptorChange is used by Watch notifications Responses to
describe change of single MonitoredResourceDescriptor One of Added, Modified,
Removed
New version of MonitoredResourceDescriptor or masked difference, depending on mask_changes instrumentation of issued [WatchMonitoredResourceDescriptorRequest] or [WatchMonitoredResourceDescriptorsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified MonitoredResourceDescriptor. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying MonitoredResourceDescriptor new index in resulting query view.
MonitoredResourceDescriptorChange.Removed Message
Removed is returned when MonitoredResourceDescriptor is deleted or leaves
Query view
Integer specifying removed MonitoredResourceDescriptor index. Not populated in stateless watch type.
MonitoredResourceSelector Message
MonitoredResourceSelector selects resource.type and list of labels used to
build query, like:
resource.type IN ("type0", "type1", ...) AND
resource.labels.<key0> IN (label0_0, label0_1, ...) AND
resource.labels.<key1> IN (label1_0, label1_1, ...) AND ...
Note: Only one resource.type per query is currently allowed
New version of Notification or masked difference, depending on mask_changes instrumentation of issued [WatchNotificationRequest] or [WatchNotificationsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Notification. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Notification new index in resulting query view.
NotificationChange.Removed Message
Removed is returned when Notification is deleted or leaves Query view
New version of NotificationChannel or masked difference, depending on mask_changes instrumentation of issued [WatchNotificationChannelRequest] or [WatchNotificationChannelsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified NotificationChannel. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying NotificationChannel new index in resulting query view.
NotificationChannelChange.Removed Message
Removed is returned when NotificationChannel is deleted or leaves Query
view
New version of PhantomTimeSerie or masked difference, depending on mask_changes instrumentation of issued [WatchPhantomTimeSerieRequest] or [WatchPhantomTimeSeriesRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified PhantomTimeSerie. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying PhantomTimeSerie new index in resulting query view.
PhantomTimeSerieChange.Removed Message
Removed is returned when PhantomTimeSerie is deleted or leaves Query view
The time interval to which the data point applies. For GAUGE metrics, only the end time of the interval is used. For DELTA metrics, the start and end time should specify a non-zero interval, with subsequent points specifying contiguous and non-overlapping intervals. For CUMULATIVE metrics, the start and end time should specify a non-zero interval, with subsequent points specifying the same start time and increasing end times, until an event resets the cumulative value to zero and sets a new start time for the following points.
New version of Project or masked difference, depending on mask_changes instrumentation of issued [WatchProjectRequest] or [WatchProjectsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Project. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Project new index in resulting query view.
ProjectChange.Removed Message
Removed is returned when Project is deleted or leaves Query view
Integer specifying removed Project index. Not populated in stateless watch type.
RecoveryStoreShardingInfoChange Message
RecoveryStoreShardingInfoChange is used by Watch notifications Responses to
describe change of single RecoveryStoreShardingInfo One of Added, Modified,
Removed
New version of RecoveryStoreShardingInfo or masked difference, depending on mask_changes instrumentation of issued [WatchRecoveryStoreShardingInfoRequest] or [WatchRecoveryStoreShardingInfosRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified RecoveryStoreShardingInfo. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying RecoveryStoreShardingInfo new index in resulting query view.
RecoveryStoreShardingInfoChange.Removed Message
Removed is returned when RecoveryStoreShardingInfo is deleted or leaves
Query view
A time interval extending just after a start time through an end time.
If the start time is the same as the end time, then the interval
represents a single point in time.
Name
Type
Description
end_time
.google.protobuf.Timestamp
Required. The end of the time interval.
start_time
.google.protobuf.Timestamp
Optional. The beginning of the time interval. The default value for the start time is the end time. The start time must not be later than the end time.
TimeRange Message
Time Range represents time between two points in time. Any of those can
be missing, which means it’s open-ended.
Name
Type
Description
start_time
.google.protobuf.Timestamp
Optional. Start of time range
end_time
.google.protobuf.Timestamp
Optional. End of time range
TimeSeriesCollectionRuleChange Message
TimeSeriesCollectionRuleChange is used by Watch notifications Responses to
describe change of single TimeSeriesCollectionRule One of Added, Modified,
Removed
New version of TimeSeriesCollectionRule or masked difference, depending on mask_changes instrumentation of issued [WatchTimeSeriesCollectionRuleRequest] or [WatchTimeSeriesCollectionRulesRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified TimeSeriesCollectionRule. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying TimeSeriesCollectionRule new index in resulting query view.
TimeSeriesCollectionRuleChange.Removed Message
Removed is returned when TimeSeriesCollectionRule is deleted or leaves
Query view
Integer specifying removed TimeSeriesCollectionRule index. Not populated in stateless watch type.
TimeSeriesForwarderSinkChange Message
TimeSeriesForwarderSinkChange is used by Watch notifications Responses to
describe change of single TimeSeriesForwarderSink One of Added, Modified,
Removed
New version of TimeSeriesForwarderSink or masked difference, depending on mask_changes instrumentation of issued [WatchTimeSeriesForwarderSinkRequest] or [WatchTimeSeriesForwarderSinksRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified TimeSeriesForwarderSink. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying TimeSeriesForwarderSink new index in resulting query view.
TimeSeriesForwarderSinkChange.Removed Message
Removed is returned when TimeSeriesForwarderSink is deleted or leaves Query
view
The Aligner describes how to bring the data points in a single
time series into temporal alignment.
Name
Description
ALIGN_NONE
No alignment. Raw data is returned. Not valid if cross-time series reduction is requested. The value type of the result is the same as the value type of the input.
ALIGN_DELTA
Align and convert to delta metric type. This alignment is valid for cumulative metrics and delta metrics. Aligning an existing delta metric to a delta metric requires that the alignment period be increased. The value type of the result is the same as the value type of the input. One can think of this aligner as a rate but without time units; that is, the output is conceptually (second_point - first_point).
ALIGN_RATE
Align and convert to a rate. This alignment is valid for cumulative metrics and delta metrics with numeric values. The output is a gauge metric with value type [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]. One can think of this aligner as conceptually providing the slope of the line that passes through the value at the start and end of the window. In other words, this is conceptually ((y1 - y0)/(t1 - t0)), and the output unit is one that has a “/time” dimension. If, by rate, you are looking for percentage change, see the ALIGN_PERCENT_CHANGE aligner option.
ALIGN_MIN
Align time series via aggregation. The resulting data point in the alignment period is the minimum of all data points in the period. This alignment is valid for gauge and delta metrics with numeric values. The value type of the result is either [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE], or [INT64][google.api.MetricDescriptor.ValueType.INT64], depending whether original type is int64, or double/distribution.
ALIGN_MAX
Align time series via aggregation. The resulting data point in the alignment period is the maximum of all data points in the period. This alignment is valid for gauge and delta metrics with numeric values. The value type of the result is either [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE], or [INT64][google.api.MetricDescriptor.ValueType.INT64], depending whether original type is int64, or double/distribution.
ALIGN_MEAN
Align time series via aggregation. The resulting data point in the alignment period is the average or arithmetic mean of all data points in the period. This alignment is valid for gauge and delta metrics with numeric values. The value type of the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
ALIGN_COUNT
Align time series via aggregation. The resulting data point in the alignment period is the count of all data points in the period. This alignment is valid for gauge and delta metrics with numeric or Boolean values. The value type of the output is [INT64][google.api.MetricDescriptor.ValueType.INT64].
ALIGN_SUM
Align time series via aggregation. The resulting data point in the alignment period is the sum of all data points in the period. This alignment is valid for gauge and delta metrics with numeric and distribution values. The value type of the output is the same as the value type of the input.
ALIGN_STDDEV
Align time series via aggregation. The resulting data point in the alignment period is the standard deviation of all data points in the period. This alignment is valid for gauge and delta metrics with numeric values. The value type of the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
ALIGN_PERCENTILE_99
Align time series via aggregation. The resulting data point in the alignment period is the 99th percentile of all data points in the period. This alignment is valid for gauge and delta metrics with distribution values. The output is a gauge metric with value type [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
ALIGN_PERCENTILE_95
Align time series via aggregation. The resulting data point in the alignment period is the 95th percentile of all data points in the period. This alignment is valid for gauge and delta metrics with distribution values. The output is a gauge metric with value type [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
ALIGN_PERCENTILE_50
Align time series via aggregation. The resulting data point in the alignment period is the 50th percentile of all data points in the period. This alignment is valid for gauge and delta metrics with distribution values. The output is a gauge metric with value type [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
ALIGN_PERCENTILE_05
Align time series via aggregation. The resulting data point in the alignment period is the 5th percentile of all data points in the period. This alignment is valid for gauge and delta metrics with distribution values. The output is a gauge metric with value type [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
ALIGN_SUMMARY
Outputs Distribution without bucketing with stats like: Min, Max, Count, Mean, SumOfSquaredDeviations valid only for LONG, DOUBLE and DISTRIBUTION value types
Aggregation.Reducer Enumeration
A Reducer describes how to aggregate data points from multiple
time series into a single time series.
Name
Description
REDUCE_NONE
No cross-time series reduction. The output of the aligner is returned.
REDUCE_MEAN
Reduce by computing the mean across time series for each alignment period. This reducer is valid for delta and gauge metrics with numeric or distribution values. The value type of the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
REDUCE_MIN
Reduce by computing the minimum across time series for each alignment period. This reducer is valid for delta and gauge metrics with numeric values. The value type of the output is the same as the value type of the input.
REDUCE_MAX
Reduce by computing the maximum across time series for each alignment period. This reducer is valid for delta and gauge metrics with numeric values. The value type of the output is the same as the value type of the input.
REDUCE_SUM
Reduce by computing the sum across time series for each alignment period. This reducer is valid for delta and gauge metrics with numeric and distribution values. The value type of the output is the same as the value type of the input.
REDUCE_STDDEV
Reduce by computing the standard deviation across time series for each alignment period. This reducer is valid for delta and gauge metrics with numeric or distribution values. The value type of the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
REDUCE_COUNT
Reduce by computing the count of data points across time series for each alignment period. This reducer is valid for delta and gauge metrics of numeric, Boolean, distribution, and string value type. The value type of the output is [INT64][google.api.MetricDescriptor.ValueType.INT64].
REDUCE_PERCENTILE_99
Reduce by computing 99th percentile of data points across time series for each alignment period. This reducer is valid for gauge and delta metrics of numeric and distribution type. The value of the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]
REDUCE_PERCENTILE_95
Reduce by computing 95th percentile of data points across time series for each alignment period. This reducer is valid for gauge and delta metrics of numeric and distribution type. The value of the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]
REDUCE_PERCENTILE_50
Reduce by computing 50th percentile of data points across time series for each alignment period. This reducer is valid for gauge and delta metrics of numeric and distribution type. The value of the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]
REDUCE_PERCENTILE_05
Reduce by computing 5th percentile of data points across time series for each alignment period. This reducer is valid for gauge and delta metrics of numeric and distribution type. The value of the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]
REDUCE_SUMMARY
Reduce with Distribution with stats like: Min, Max, Count, Mean, SumOfSquaredDeviations, histogram. This reducer is valid for gauge and delta metrics of numeric and distribution type. The value of the output is [DISTRIBUTION][google.api.MetricDescriptor.ValueType.DISTRIBUTION]
Controls which fields are returned by ListTimeSeries.
Name
Description
FULL
Returns the identity of the metric(s), the time series, and the time series data.
HEADERS
Returns the identity of the metric and the time series resource, but not the time series data.
6 - SPEKTRA Edge Logging Service API
Understanding the Logging service API.
SPEKTRA Edge Logging service is a structured data store that provides
the ability to store arbitrary data in the form of logs series with
timestamps and user-defined metadata. To achieve that, we are using
google.protobuf.Struct OR google.protobuf.Any, a well-known type
used to store any JSON-like (or protobuf) data. It allows users not
to worry about defining any proto message. We can store any data type
such as string, int, float, bytes, map, etc.
Use cases for the logging service include:
system or application logs
event logs
tracing
core / debug dump
blob data
The stored logs can be queried based on timestamps and also filtered based
on user-defined metadata fields.
A log descriptor is the context of all logs created. It describes log,
its metadata, service, API version, region, and the service-defined labels,
for example process name can be an example.
A log descriptor also privdes indexing patterns for its labels. Each
promoted index set is defined with a log descriptor is combined with
the following fields:
When querying, it is required that users specify parent, service, and
log descriptor fields, plus any promoted fields as defined by the log
descriptor (field promotedLabelKeySets). If there is an empty set
among available lists, it means that logs can be queried by scope,
service and log descriptor fields only.
Log Entries
A log entry is a combination of timestamps with underlying data items.
Log entries sharing the same scope, service, version, log descriptor
and labels are considered to form a single Log instance.
Storing and querying logs
As an example, we will define and create a log descriptor for storing IoT
device logs:
Note however, that it is also possible to provide the “Name” field in
the rlog.Log value, but the ID must be equal to the value provided by
the earlier CreateLogs request. Labels, LogDescriptor, Service, and
Version can be skipped however then, reducing request size. It is still
required to send at least one CreateLogs request with full meta information
and labels, to have Name allocated.
With some logs submitted, we can try to query.
Log query takes three inputs:
Parents
Project ID or Organization ID
Interval
Start time and end time for the logs request
Filter
Filter can combine multiple conditions based on the labels defined
in the log descriptor. Log Descriptor and service name are mandatory
filters. User-defined labels are optional filters.
In this example from Quickstart though, at least one user label is
mandatory with a filter, because we have promoted labels:
According to these sets, we must specify log_level or device_id at least.
But if we specify module and log_level at the same time, then logging
service will use the last index as the most optimal.
It is possible to restrict log creation/queries to a specific subset of
logs within scope (service, organization, or project).
For example, suppose we have a device agent, and we want to ensure it can
read/write only from/to specific owned logs. We can create the following
bucket:
The project can be specified in RoleBinding. When we assign the Role to
the Device, then the device agent will be only able to create/query logs
for a specific bucket - and this bucket will guarantee that:
Device can read/submit logs only for the
projects/<projectId>/logDescriptors/devices.edgelq.com/syslog descriptor.
All logs for the syslog descriptor will have to specify the “project_id”
label equal to the specified project, “region_id” equal to the specified
region, and “device_id” equal to the specified device. When querying,
the filter will have to specify all those fields.
Buckets ensure also correctness even if the client is submitting binary log
keys (Log name with binary data key is provided, but labels are empty).
Provided example above is for information - Service devices.edgelq.com
already provides Buckets for all Devices!
6.1 -
Understanding the logging.edgelq.com service APIv1, in proto package ntt.logging.v1.
Service logging.edgelq.com in version v1, proto package ntt.logging.v1
Here is the list of resources supported in Logging service APIv1:
Name of Bucket 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: [\w./-]{2,128}
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
services
repeated string
Optional service names (if required), for example “devices.edgelq.com”
versions
repeated string
Oprional service versions (if required), for example “v1”
All combinations of key-values (in integer forms) - one of them must be passed by every Log object for given bucket. Its computed by server side and for internal use.
Bucket.ResolvedValues Message
ResolvedValues contains binary representation of types and labels and
possible values. Due to limitations in some db backends (looking at
firestore), we use int64 instead of uint64.
Name
Type
Description
key
int64
values
repeated int64
Bucket.ResolvedKeysWithValues Message
ResolvedKeysWithValues binds multiple keys with possible values.
RequiredTypedLabels describes required label values for specified
log descriptors. All logs in Create operation must contain at least one
allowed type and then labels must match all the labels. For list queries,
filter must contain at least one type and all labels must be present in
condition containing all or subset of allowed label values.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListBucketsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Buckets 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.
Requested page size. Server may return fewer Buckets than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Bucket that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Bucket that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Buckets 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Buckets 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateBucketRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
Name of Log 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: [\w./-=+]{1,128}
scope
string
Contains scope from name field without resource ID. Used for internal purpose for filtering (logs are using custom store). Example formats are: - organization/umbrella - projects/mars_exploration - services/devices.edgelq.com
service
string
Service name, for example “devices.edgelq.com”
region
string
Region of the service to which log is assigned, for example “us-west2”
Log bin_key identifies unique Log tuple: <scope, service, region, version, labels, log_descriptor Key is not to be decoded outside of service, but treated as opaque string. This field is equivalent to ID part of the log name and therefore any one of them can be used. This is intented for streaming log create to conserve some bandwidth
ListLogsRequest Message
Request message for method [ListLogs][ntt.logging.v1.ListLogs]
The time interval for which results should be returned. Only logs that contain data points in the specified interval are included in the response.
page_size
int32
Cap on a number of log entries to be included in a response. Number of logs in an actual response can be higher, since logs are read in bulk with second precision - exceed logs above the limit will share same timestamp as the logs below the limit. Results will be adjusted to the “end time” taken from interval field (adjusted also by page_token if provided).
page_token
string
Token which identifies next page with further results. Token should be taken from [ListLogsResponse.next_page_token][ntt.logging.v1.ListLogsResponse.next_page_token].
ListLogsResponse Message
Response message for method [ListLogs][ntt.logging.v1.ListLogs]
Logs that match the filter included in the request.
next_page_token
string
If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as pageToken in the next call to this method.
Query execution errors that may have caused the logs data returned to be incomplete.
ListLogsResponse.ErrorDetails Message
ErrorDetails is used when one of the queried regions fails to produce
results. It is used in execution_errors field (see subfield
ntt.rpc.Status.details).
Name
Type
Description
region_id
string
region id which failed to give results.
CreateLogsRequest Message
Request message for method [CreateLogs][ntt.logging.v1.CreateLogs]
Log names indexed by Create position. All logs, except failed ones will be present. If all logs were written successfully, then map will have keys all from 0 to N-1.
A request message of the StreamingCreateLogs method.
This method only supports creating logs for the same project and region for
the entire duration of the stream. Any client that intends
to create logs in multiple projects or regions should not use this API. If
the client uses the same scope, service, version and log descriptor, these
fields need not be sent after the first message even if binary key is not
used in the log entry. The server will set the values observed in the first
message in case these are empty and binary key is also not present in the log
List of logs to create/append. If they have specified name field, it must match provided parent field
StreamingCreateLogsResponse Message
A response message of the StreamingCreateLogs method.
Name
Type
Description
bin_keys
map<uint32s, string>
Binary key will be set in the map key corresponding to the array index in the request, but only if the particular request entry did not use binary key. Indices for log entries in request having binary key set will be ignored in the response
Name of LogDescriptor 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: [\w./-]{1,128}/[\w./-]{1,128}
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
display_name
string
Optional. A concise name for the log type that might be displayed in user interfaces. It should be a Title Cased Noun Phrase, without any article or other determiners.
description
string
Optional. A detailed description of the log type that might be used in documentation.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListLogDescriptorsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total LogDescriptors 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.
WatchLogDescriptorRequest Message
A request message of the WatchLogDescriptor method.
Requested page size. Server may return fewer LogDescriptors than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to LogDescriptor that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to LogDescriptor that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchLogDescriptorsResponse Message
A response message of the WatchLogDescriptors method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All LogDescriptors 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (LogDescriptors 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateLogDescriptorRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteLogDescriptorRequest Message
A request message of the DeleteLogDescriptor method.
New version of Bucket or masked difference, depending on mask_changes instrumentation of issued [WatchBucketRequest] or [WatchBucketsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Bucket. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Bucket new index in resulting query view.
BucketChange.Removed Message
Removed is returned when Bucket is deleted or leaves Query view
New version of LogDescriptor or masked difference, depending on mask_changes instrumentation of issued [WatchLogDescriptorRequest] or [WatchLogDescriptorsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified LogDescriptor. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying LogDescriptor new index in resulting query view.
LogDescriptorChange.Removed Message
Removed is returned when LogDescriptor is deleted or leaves Query view
Integer specifying removed LogDescriptor index. Not populated in stateless watch type.
TimeInterval Message
A time interval extending just after a start time through an end time.
If the start time is the same as the end time, then the interval
represents a single point in time.
Name
Type
Description
end_time
.google.protobuf.Timestamp
Optional - end of the time interval. If not provided, current time will be assumed.
start_time
.google.protobuf.Timestamp
Required. The beginning of the time interval. The start time must not be later than the end time.
6.2 -
Understanding the logging.edgelq.com service APIv1alpha2, in proto package ntt.logging.v1alpha2.
Service logging.edgelq.com in version v1alpha2, proto package ntt.logging.v1alpha2
Here is the list of resources supported in Logging service APIv1alpha2:
Name of Log. It contains scope + ID of the log. ID is a base64 encoded unique key that identifies tuple: scope service region_id version log_descriptor labels Key is not to be decoded outside of service, but treated as opaque string
scope
string
Contains scope from name field without resource ID. Used for internal purpose for filtering (logs are using custom store). Example formats are: - organization/umbrella - projects/mars_exploration - <system>
service
string
Service name, for example “devices.edgelq.com”
region
string
Region of the service to which log is assigned, for example “us-west2”
version
string
Associated service version, for example “v1alpha2”
The time interval for which results should be returned. Only logs that contain data points in the specified interval are included in the response.
page_size
int32
Cap on a number of log entries to be included in a response. Number of logs in an actual response can be higher, since logs are read in bulk with second precision - exceed logs above the limit will share same timestamp as the logs below the limit. Results will be adjusted to the “end time” taken from interval field (adjusted also by page_token if provided).
page_token
string
Token which identifies next page with further results. Token should be taken from [ListLogsResponse.next_page_token][ntt.logging.v1alpha2.ListLogsResponse.next_page_token].
ListLogsResponse Message
Response message for method
[ListLogs][ntt.logging.v1alpha2.ListLogs]
Logs that match the filter included in the request.
next_page_token
string
If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as pageToken in the next call to this method.
Query execution errors that may have caused the logs data returned to be incomplete.
ListLogsResponse.ErrorDetails Message
ErrorDetails is used when one of the queried regions fails to produce
results. It is used in execution_errors field (see subfield
ntt.rpc.Status.details).
Name
Type
Description
region_id
string
region id which failed to give results.
CreateLogsRequest Message
Request message for method
[CreateLogs][ntt.logging.v1alpha2.CreateLogs]
Log names indexed by Create position. All logs, except failed ones will be present. If all logs were written successfully, then map will have keys all from 0 to N-1.
Name of LogDescriptor - contains service name followed by name defined by developer, separated by ‘/’ sign. Example name: “devices.edgelq.com/DeviceFailure”
display_name
string
Optional. A concise name for the log type that might be displayed in user interfaces. It should be a Title Cased Noun Phrase, without any article or other determiners.
description
string
Optional. A detailed description of the log type that might be used in documentation.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListLogDescriptorsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total LogDescriptors 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.
WatchLogDescriptorRequest Message
A request message of the WatchLogDescriptor method.
Requested page size. Server may return fewer LogDescriptors than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to LogDescriptor that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to LogDescriptor that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchLogDescriptorsResponse Message
A response message of the WatchLogDescriptors method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All LogDescriptors 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (LogDescriptors 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateLogDescriptorRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteLogDescriptorRequest Message
A request message of the DeleteLogDescriptor method.
New version of LogDescriptor or masked difference, depending on mask_changes instrumentation of issued [WatchLogDescriptorRequest] or [WatchLogDescriptorsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified LogDescriptor. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying LogDescriptor new index in resulting query view.
LogDescriptorChange.Removed Message
Removed is returned when LogDescriptor is deleted or leaves Query view
Integer specifying removed LogDescriptor index. Not populated in stateless watch type.
TimeInterval Message
A time interval extending just after a start time through an end time.
If the start time is the same as the end time, then the interval
represents a single point in time.
Name
Type
Description
end_time
.google.protobuf.Timestamp
Optional - end of the time interval. If not provided, current time will be assumed.
start_time
.google.protobuf.Timestamp
Required. The beginning of the time interval. The start time must not be later than the end time.
7 - SPEKTRA Edge Proxies Service API
Understanding the Proxies service API.
The Proxies service provides an easy way to establish secure tunnels between
your clients, which helps your applications running in different locations
to communicate with each other.
The Proxy service component relationship.
The main problem with establishing connections between two clients
in different locations on the internet is that it’s not always easy to
reach out to the other client through firewalls and NATs in between. Most
home networks are protected by NATs and you usually have to implement
a VPN network to set up a peer-to-peer connection.
The Proxies service provides clients with a meet-up endpoint for clients
to establish client-initiated connections and stitches two connections to
make an end-to-end connection between two clients. Because all connections
are client-initiated, NAT and firewalls won’t cause any connection problems.
While the Proxies service provides only a framework to establish connections
between clients, you can implement your own use cases on top of that such as
tunnels for remote commands, which is how the Devices service utilizes the
Proxies service, and TCP port forwarding just like the ZTNA service work with
the Proxies service.
A Tunnel is an end-to-end connection between two clients. It is built
with two client-initiated gRPC sessions to our meet-up endpoint on the
cloud to avoid problems caused by firewalls and NATs. As a tunnel works
as a bare data stream just like a normal TCP connection, you can implement
any protocol on top of it.
Tunnel Brokers
A tunnel broker is a part of the service backend, it provides
a mechanism for establishing tunnels between
consumers and providers.
Tunnel Consumers
A tunnel consumer is one of the end clients that connects with
the broker to establish a tunnel
with the selected provider.
Tunnel Providers
A tunnel provider is connecting to a broker
(registration), and then passively waits for consumers
to connect to it.
Code Samples
Ping/Pong over Tunnel
Let’s create a simple ping/pong service where consumers send Ping messages,
and then Providers return Pong messages.
First, define a struct that implements provider.ServiceFactory.
importprovider"github.com/cloudwan/edgelq/proxies/provider/v1"typePingServicestruct {
closedchanstruct{} // will be closed when Close() is called
calledchanstruct{}
}
// Start is called when a new tunnel is established.
// You can initialize your service here, but
func (s*PingService) Start(ctxcontext.Context) error {
s.closed = make(chanstruct{}, 0)
s.called = make(chanstruct{}, 1)
}
// Send is called when the Consumer sends data to the Consumer.
func (s*PingService) Send(data []byte) error {
if string(data) !="PING" {
returnfmt.Errorf("unexpected message received")
}
select {
cases.called<-stcut{}{}:
// asked to Recv() to send Pong
case<-s.closed:
it'sbeingclosed, giveup }
returnnil}
// Recv is called to receive message from the service.
func (s*PingService) Recv() ([]byte, error) {
select {
case<-s.called:
return []byte("PONG"), nilcase<-s.closed:
returnnil, fmt.Error("service is closing")
}
}
// Close is called when the connection is going to be closed.
func (s*PingService) Close() error {
close(s.closed)
}
Then, create a Provider with the service.
import (
broker"github.com/cloudwan/edgelq/proxies/client/v1/broker"provider"github.com/cloudwan/edgelq/proxies/provider/v1"project"github.com/cloudwan/edgelq/proxies/resources/v1/project")
varclientproxcbroker.BrokerServiceClient// setup a client
// List of services (we have only one at this moment).
services:=map[string]provider.ServiceFactory{
"ping": func(ctxcontext.Context, arg []byte) (provider.Service, error) {
returnNewPingService(), nil },
}
// Create a Provider
provier:=provider.NewProvider(
project.NewNameBuilder().SetId("YourProjectID").Name(),
"my-first-provider-id",
"us-west2",
"ping.edgelq.com",
services,
)
// Run it.
provider.Run(ctx, client)
Now your Ping service is “Provided”.
Next, let’s consume the service as a Consumer.
import (
broker"github.com/cloudwan/edgelq/proxies/client/v1/broker")
varclientproxcbroker.BrokerServiceClient// setup a client
// define an “Outlet” that implements Recv() and Send()
typePingOutletstruct {
sentbool}
// Send writes data from the other end to the Outlet.
func (o*PingOutlet) Send(data []byte) error {
fmt.Printf(“Received: %s\n”, string(data))
}
// Recv outputs data from the Outlet
func (o*PingOutlet) Recv() ([]byte, error) {
ifo.sent {
Returnnil, io.EOF }
o.sent = truereturn []byte(“PING”), nil}
err:=consumer.Connect(
context.Background(),
client,
proxrproject.NewNameBuilder().SetId("YourProjectID").Name(),
"my-first-consumer-id",
"us-west2",
"ping.edgelq.com",
"my-first-provider-id", // provider ID to connect to
"ping", // service name
nil, // no initial arg
PingOutlet{},
)
7.1 -
Understanding the proxies.edgelq.com service APIv1, in proto package ntt.proxies.v1.
Service proxies.edgelq.com in version v1, proto package ntt.proxies.v1
Here is the list of resources supported in Proxies service APIv1:
Name of Project When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListProjectsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Projects 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.
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_size
int32
Requested page size. Server may return fewer Projects than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Project that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Project that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Projects 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Projects 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateProjectRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
New version of Project or masked difference, depending on mask_changes instrumentation of issued [WatchProjectRequest] or [WatchProjectsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Project. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Project new index in resulting query view.
ProjectChange.Removed Message
Removed is returned when Project is deleted or leaves Query view
Name of Project 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]
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListProjectsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Projects 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.
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_size
int32
Requested page size. Server may return fewer Projects than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Project that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Project that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Projects 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Projects 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateProjectRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
New version of Project or masked difference, depending on mask_changes instrumentation of issued [WatchProjectRequest] or [WatchProjectsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Project. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Project new index in resulting query view.
ProjectChange.Removed Message
Removed is returned when Project is deleted or leaves Query view
A secret is responsible for handling a single secret, which contains:
Name
EncData, encrypted data, protected by role-bindings (read-checks),
stored only in the database
Data, data to be store as a secret.
During the secret creation, data is taken from the Data field,
encrypted using the given encryption function, and then the output
encrypted bytes are being saved under the EncData field while
the Data field is erased.
Decryption is done similarly but the other way around.
Secrets are regional concept, meaning that only a single
region holds its decryption keys.
Secrets storage and retrieval
Secrets service introduces additional commands to decrypt and encrypt data
using Secret.
Name of CryptoKey When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListCryptoKeysRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total CryptoKeys 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.
Requested page size. Server may return fewer CryptoKeys than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to CryptoKey that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to CryptoKey that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All CryptoKeys 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (CryptoKeys 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.
Name of Project When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListProjectsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Projects 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.
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_size
int32
Requested page size. Server may return fewer Projects than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Project that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Project that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Projects 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Projects 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateProjectRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
Name of Secret When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListSecretsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Secrets 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.
Requested page size. Server may return fewer Secrets than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Secret that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Secret that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Secrets 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Secrets 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateSecretRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
New version of CryptoKey or masked difference, depending on mask_changes instrumentation of issued [WatchCryptoKeyRequest] or [WatchCryptoKeysRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified CryptoKey. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying CryptoKey new index in resulting query view.
CryptoKeyChange.Removed Message
Removed is returned when CryptoKey is deleted or leaves Query view
New version of Project or masked difference, depending on mask_changes instrumentation of issued [WatchProjectRequest] or [WatchProjectsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Project. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Project new index in resulting query view.
ProjectChange.Removed Message
Removed is returned when Project is deleted or leaves Query view
New version of Secret or masked difference, depending on mask_changes instrumentation of issued [WatchSecretRequest] or [WatchSecretsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Secret. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Secret new index in resulting query view.
SecretChange.Removed Message
Removed is returned when Secret is deleted or leaves Query view
Name of Project 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]
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListProjectsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Projects 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.
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_size
int32
Requested page size. Server may return fewer Projects than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Project that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Project that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Projects 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Projects 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateProjectRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
Name of Secret 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]
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListSecretsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Secrets 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.
Requested page size. Server may return fewer Secrets than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Secret that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Secret that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Secrets 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Secrets 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateSecretRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
New version of Project or masked difference, depending on mask_changes instrumentation of issued [WatchProjectRequest] or [WatchProjectsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Project. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Project new index in resulting query view.
ProjectChange.Removed Message
Removed is returned when Project is deleted or leaves Query view
New version of Secret or masked difference, depending on mask_changes instrumentation of issued [WatchSecretRequest] or [WatchSecretsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Secret. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Secret new index in resulting query view.
SecretChange.Removed Message
Removed is returned when Secret is deleted or leaves Query view
Integer specifying removed Secret index. Not populated in stateless watch type.
9 - SPEKTRA Edge Devices Service API
Understanding the Devices service API.
Devices service manages the edge devices connecting to the SPEKTRA Edge
system. The service is typically operated by a user with the
device-operator role or a higher.
Devices on SPEKTRA Edge have their information managed by Device resources.
Configuration values and status information for each device are stored in
the Device resource. This resource is used by the agent running on the device
where the SPEKTRA Edge OS is installed.
Devices are usually managed by being tied to a service account. When
the actual SPEKTRA Edge device boots, the agent in the device connects to
the Devices service using the stored service account. By using the service
account associated with the device resource, it determines which device
resource to download configuration values from and stores status information
for that device resource.
The simplest Device resource can be created with the following command; since
the Device resource is a Project scope resource, the Project must be specified
for creation.
## Create a device with ID DEVICE## display name is "Test Devicecuttle devices create device --project $PROJECT \
--display-name "Test Device"\
$DEVICE
Device Metrics
The SPEKTRA Edge device periodically reports hardware metrics information
(e.g., CPU utilization), which is stored as time-series data on
the Monitoring service; see the Monitoring chapter for instructions on
how to use the Monitoring service.
Device Logs
Logging from an SPEKTRA Edge device can be done in two ways: logs from the
point of command execution can be streamed in real time via the SPEKTRA Edge
controller, or logs sent by the device can be stored in the SPEKTRA Edge
backend and retrieved from there as needed. The other is to store the logs
sent by the device in the SPEKTRA Edge backend and retrieve the logs from
there as needed.
To use the former real-time device logs, use the command:
cuttle devices logs --follow`
In this case, the system logs from the time the command was executed
(as described in /var/log/syslog) can be obtained without any additional
configuration.
cuttle devices logs --follow $DEVICE
The latter, which stores logs in the SPEKTRA Edge backend and retrieves data from it,
requires prior configuration to enable the feature. This feature is currently
available without additional subscription, but may be paid for in the future.
Log data is stored for up to 90 days.
To perform logging, set the spec.loggingConfig field in the Device resource.
Set the Priority (level) of logs to be retrieved. Possible values are 1 to 7, according to the Priority of Journald (0 - emergency, 1 - alert, 2 - critical, 3 - error, 4 - warning, 5 - notice,6 - informational, 7 - debug). If a higher Priority is specified, all logs of the lower Priority will also be collected (setting 7 means all logs will be collected).
units
Specifies the Systemd unit names of logs to be retrieved. If not specified, logs of all units are acquired. It is omitted in the above example. If you want to use it, add the value to spec.loggingConfig using the following example.
To get docker.service and droplet.service only:
{"units": ["docker.service", "droplet.service"]}
Use the cuttle devices logs --archival command to retrieve the stored logs.
Specifies when to start logging in seconds. If 60 is used as in the example, logs will be taken from one minute ago to the present.
Remote terminal access to SPEKTRA Edge devices
SPEKTRA Edge devices provide remote terminal access as standard.
For macOS and Linux environments
In macOS and Linux environments, the cuttle command can be used to remotely
login to a device. The cuttle devices ssh
command is used for terminal access. The argument of the command is the value
of NAME as displayed in cuttle devices list devices.
The following is an example of access when NAME is
projects/$PROJECT/regions/eu1/devices/test-device.
The cuttle devices ssh command cannot be used as-is in a Windows environment
due to technical limitations. Please refer to the official Microsoft
documentation on how to install WSL2.
Port forwarding with SPEKTRA Edge devices
To use a device with SPEKTRA Edge OS installed as a “jump box”, use the
cuttle devices forward-port command.
The following example forwards local port 8080 to port 80 on
192.168.10.1 using the device
projects/$PROJECT/regions/eu1/devices/test-device as a jump box. With
this command running, open localhost:8080 in your web browser to access
192.168.10.1:80 (you will normally see the home gateway operation screen).
Device resources can be created individually by users, but this can be
complicated if there are many devices. To solve this problem, a mechanism
to automatically register devices can be used.
The Provisioning Policy resource is a resource that stores settings for
auto-registering devices. When an SPEKTRA Edge device with a Provisioning
Policy set is booted, a corresponding Device resource is automatically
created based on the settings.
Like the Device resource, the SPEKTRA Edge device identifies a Provisioning
Policy tied to it using a service account. See the “Provisioning SPEKTRA
Edge Devices” section for specific instructions for tying service accounts.
The following example is a cuttle command that creates a new Provisioning
Policy.
Specifies the registration mode. You can select either UNATTENDED (fully automatic) or MANUAL (with approval). When the registration mode is MANUAL, a Provisioning Approval Request resource is created for approval instead of a Device resource when a new SPEKTRA Edge device is started.
.spec.identityFieldPaths
Sets the field used to recognize identical devices. If this field is not set, a Device resource will be created each time the same hardware makes multiple registration requests (for example, when an SD card is remade). By setting this field to include a serial number, an existing Device resource can be reused if a request is made by hardware with the same serial number.
Device resource template values
The Provisioning Policy generates a Device resource for each new hardware.
At this time, by setting a value in the Provisioning Policy’s spec.template,
it is possible to automatically set the value of the Device resource to be
generated.
The following example shows the configuration of a Provisioning Policy when
labels and log settings are automatically configured for the generated Device
resource.
SPEKTRA Edge OS can be downloaded from the following URL. Note that
the files used depend on the architecture of the hardware used. Currently,
amd64 (x86) or Raspberry Pi 4 are supported.
The image of version 2.1.0 can be downloaded from the following URL
The SPEKTRA Edge OS provided to the public does not contain information
tied to a specific Project. Therefore, to automate provisioning, the OS
image must be customized and a configuration file must be inserted.
Create a configuration (Provisioning Policy) for automatic registration
Create a Provisioning Policy on the Devices endpoint to configure how
new devices will be registered with the system. When a new device is
registered with the system, a Device resource is created for each device
based on the settings in this resource.
Generate service account and key for Provisioning Policy
In order for a new device to register using the above Provisioning Policy,
it must use the service account (and its key) associated with the applicable
Provisioning Policy.
The following command generates a service account and stores the downloaded
key in /tmp. The jq command is used to format some values.
The main options available with the cuttle os edit command are
Options
Description
--password
Password to use for terminal login.
--endpoint-domain
The endpoint domain to connect to. You do not need to specify this if you are using a commercial environment. In the above example, the staging environment is set as the connection destination.
--project-service-account-key
The service account key generated by the above method.
--disk-mapping
Specify a configuration file to mount internal HDD or SSD.
--ntp
Specify the configuration file for NTP server.
--network-agent
Specifies the network configuration file.
--disk-mapping: disk mapping file
The disk mapping file is written in YAML format and is configured when using
HDDs or SSDs other than the boot media. If you use only boot media, you do
not need to specify this option.
The file contents are largely divided into diskmappings and bindmounts,
the former being partition mount settings and the latter being bind mount
settings.
The diskmappings specifies which disk (disk) and where (mountpoint)
it should be mounted. If the partition is unformatted, it will be automatically
formatted using the specified size (size) and file system (filesystem).
Note that if you specify -1 for the size option, all available space will
be used, but only for the tailmost partition.
The bindmounts lists which directories (mountsource) are to be
bind-mounted where (mountpoint).
Below is the default disk mapping file for x86 devices. By default,
the tailmost EDGELQ_DATA partition is expanded to its maximum size at
SPEKTRA Edge OS startup. Also, /var/lib/docker, /var/lib/droplet, and
/var/log are bind-mounted in /isodevice/data where EDGELQ_DATA is
mounted, so that files stored in these directories will be boot persistent
in the media.
Note that the default disk mapping file has different settings for each
platform. For example, the Raspberry Pi requires a separate partition to store
firmware, etc., so a dedicated setting is used.
The network configuration file is the Netplan configuration file. The default
configuration file has DHCP enabled, so there is no need to specify this option
if static IP or WiFi settings are not required.
If the NTP server is not properly configured, the SPEKTRA Edge OS and
applications running on it may stop working. If a TLS (HTTPS) certificate
verification error occurs, make sure that the NTP server is properly
configured and that the system clock is not out of sync.
Write SPEKTRA Edge OS to media
Image files can be written to media with any application.
On Linux, for example, you can use the dd command (replacing sdX with
the appropriate device name).
sudo dd if=lqd_1.0.2.raw of=/dev/sdX
In a Windows environment, Raspberry Pi Imager or Balena Etcher can also be used.
SPEKTRA Edge Device Startup
The media on which the customized OS image is written can be used as boot
media without modification. When the device is booted while connected to
the network, it is automatically registered to the SPEKTRA Edge controller.
The list of registered devices can be viewed with the following command
cuttle devices list devices --project $PROJECT
Hardware update procedure
This section describes how the operation is performed in the event of
a hardware failure, assuming that the device has been provisioned using
a Provisioning Policy, and that the relevant Provisioning Policy has
a Deduplication Field with a serial number set.
How to respond to hardware failure
Hardware failure can be divided into two categories: failure of
the boot media (SD card or USB memory) on which the SPEKTRA Edge OS is
installed, and failure of the hardware itself (such as the Raspberry Pi).
Depending on which of these two elements is being replaced, the method of
response will vary.
If only the hardware is replaced and the OS media is identical
Insert the existing boot media into the new hardware and boot. In this case,
the service account information remaining on the boot media takes precedence
over the serial number, so the existing Device resource is used as is (the
resource serial number is overwritten).
If the hardware is identical and only the OS media is replaced
Point the new boot media to the existing hardware to boot. In this case,
the new boot media does not have a service account to identify the Device
resource, so the serial number is used to identify the existing Device
resource. Since there is no change in the serial number on the same hardware,
the existing Device resource will be used.
When replacing both hardware and OS media
If both are replaced at the same time, a new Device resource will be created
since there is no way to identify the existing Device resource. To avoid this
behavior, perform the following operations on the OS image (after copying the
files) before writing to the SD card.
## remove an existing service accountcuttle devices remove-service-account-from-device device --name $DEVICE
## edit the image file (create service account for the device in question and## write it)cuttle os edit cuttle os edit \
--image-file $IMAGE_FILE_NAME \
--device-name $DEVICE
9.1 -
Understanding the devices.edgelq.com service APIv1, in proto package ntt.devices.v1.
Service devices.edgelq.com in version v1, proto package ntt.devices.v1
Here is the list of resources supported in Devices service APIv1:
Name of CustomizedImage When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListCustomizedImagesRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total CustomizedImages 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.
WatchCustomizedImageRequest Message
A request message of the WatchCustomizedImage method.
Requested page size. Server may return fewer CustomizedImages than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to CustomizedImage that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to CustomizedImage that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchCustomizedImagesResponse Message
A response message of the WatchCustomizedImages method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All CustomizedImages 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (CustomizedImages 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateCustomizedImageRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteCustomizedImageRequest Message
A request message of the DeleteCustomizedImage method.
Name of Device When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
The associated service account to the Device. The agents in the device uses a key from this service account when they issue any requests to our endpoints for authoroization and authentication. ProvisionServiceAccountToDevice creates a new service account and a key for the Device and asign the account to this fileld. If you change the value of this field, the existing device would lose the access to the resources in our services, that means you can revoke the permissions from the device. You can manually set an empty value to do so, or call RemoveServiceAccountFromDevice.
The expected OS version in string (e.g. 1.0.2). The device will automatically download the OS image and upgrade itself with it. You can stack the OS upgrade progress in the Condition named OSReady in Status.Conditions.
The URL is dynamically constructed once the device is created or updated. The URL will be based on the device hardware information URL format: base_url/dedicated_path/iso_version/architecture/os_type
Disables the daemon on the device for device auto discovery on the network. When it’s enabled, avahi-daemon is launched on the device which listens at UDP 5353. This daemon is useful to locate the device that acquires an IP address with DHCP.
Log priority as understood by systemd (0 - emergency, 1 - alert, 2 - critical, 3 - error, 4 - warning, 5 - notice, 6 - informational, 7 - debug). Journal logs with this priority and higher will be uploaded to the server.
units
repeated string
List of systemd unit names to monitor for logs, e.g. NetworkManager.service, docker.service. Leave empty to export all journald logs.
By default proxy is applicable for all interfaces configuring proxy_interfaces allows to restrict proxy setting to be used only with specific interfaces At present this is only used for Control Plane (for eg LTE fallback)
Device.Spec.Location Message
Device location of the device.
Name
Type
Description
address
string
placement
string
Device.Spec.USBGuard Message
USB Guard. When enable is not set, USB guard service will not be started.
When it is enabled, we can specify allowed device white list with
WhiteList. Each device can be specified one of Device Name, Device ID or
connected port number. We can specify multiple parameter for a device.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListDevicesRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Devices 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.
Requested page size. Server may return fewer Devices than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Device that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Device that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Devices 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Devices 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateDeviceRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
Name of Device to provision service account. This method automatically generates a service account and a key for the device and assign the key to .Spec.ServiceAccount
external_pubkey
string
external public key to use for service account for this device. If not present, a keypair will be generated by the server.
ProvisionServiceAccountToDeviceResponse Message
Response message for method
[ProvisionServiceAccountToDevice][ntt.devices.v1.ProvisionServiceAccountToDevice]
Name of the Device to remove its service account The service account and the key will be automatically deleted as well when they have been generated automatically by ProvisionServiceAccountToDevice action. Otherwise, the service account will be kept intact. The device will lost the access to the resources in the project.
RemoveServiceAccountFromDeviceResponse Message
Response message for method
[RemoveServiceAccountFromDevice][ntt.devices.v1.RemoveServiceAccountFromDevice]
A token identifying a page of results the server should return. Typically, this is the value of [ListDevicesResponse.next_page_token][ntt.devices.v1.ListDevicesResponse.next_page_token]
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be requested on top of those defined by request field View.
MERGE or REPLACE the api netplan_config with the baked in config in the
device. REPLACE - The desired configuration must be input in full. The
default config in disk will not be used. MERGE - Replaces level keys such
as ethernet, modems, wifis etc that are defined in API config. Merge
makes it easier to add new types of configuration - for example if the
default configuration does not have wifis, it is easier to just add wifi
config alone in API and use config mode merge. However, if the goal is to
add to or replace a specific configuration in a section that already
exists in the default configuration, then the API config should have the
entire section and not just the changes for example if the default config
on disk has eno1, eno2 under ethernet section and the goal is to replace
the eno2 on disk, then the API configuration should specify both eno1 and
eno2. This is because the merge mode still replaces whole sections that
are defined in the API config
Name of DeviceDistributionCounter When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
total_count
int64
online_count
int64
GetDeviceDistributionCounterRequest Message
A request message of the GetDeviceDistributionCounter method.
A token identifying a page of results the server should return. Typically, this is the value of ListDeviceDistributionCountersResponse.next_page_token.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListDeviceDistributionCountersRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total DeviceDistributionCounters 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.
WatchDeviceDistributionCounterRequest Message
A request message of the WatchDeviceDistributionCounter method.
Parent name of ntt.devices.v1.DeviceDistributionCounter
page_size
int32
Requested page size. Server may return fewer DeviceDistributionCounters than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to DeviceDistributionCounter that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to DeviceDistributionCounter that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchDeviceDistributionCountersResponse Message
A response message of the WatchDeviceDistributionCounters method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All DeviceDistributionCounters 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (DeviceDistributionCounters 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.
Name of DeviceHardware When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListDeviceHardwaresRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total DeviceHardwares 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.
WatchDeviceHardwareRequest Message
A request message of the WatchDeviceHardware method.
Requested page size. Server may return fewer DeviceHardwares than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to DeviceHardware that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to DeviceHardware that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchDeviceHardwaresResponse Message
A response message of the WatchDeviceHardwares method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All DeviceHardwares 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (DeviceHardwares 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateDeviceHardwareRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteDeviceHardwareRequest Message
A request message of the DeleteDeviceHardware method.
Name of DeviceHardwareRegisterSession When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
start_time
.google.protobuf.Timestamp
Start time, if not set, current time will be used
expiration_time
.google.protobuf.Timestamp
Expiration time, if not set, will be set to 1 week from now
user_email
string
Email address of the user who will register the hardware Only used to send an email. Not used for identity/authorization
inviter_email
string
Inviter Email, automatically set from token, not accepted as input
language_code
string
Email ISO language code. Defaults to “en-us” (American English).
extras
map<string, string>
Extra custom fields to further customize email. Fields should be agreed between sender (usually UI) and documented in the template of email service provider.
A token identifying a page of results the server should return. Typically, this is the value of ListDeviceHardwareRegisterSessionsResponse.next_page_token.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListDeviceHardwareRegisterSessionsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total DeviceHardwareRegisterSessions 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.
WatchDeviceHardwareRegisterSessionRequest Message
A request message of the WatchDeviceHardwareRegisterSession method.
Parent name of ntt.devices.v1.DeviceHardwareRegisterSession
page_size
int32
Requested page size. Server may return fewer DeviceHardwareRegisterSessions than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to DeviceHardwareRegisterSession that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to DeviceHardwareRegisterSession that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All DeviceHardwareRegisterSessions 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (DeviceHardwareRegisterSessions 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
Request message for method [HardwareStatus][ntt.devices.v1.HardwareStatus]
Name
Type
Description
token
string
token for hardware_register_session
serial_number
string
manufacturer
string
manufacturer is typically not required, only required in case of serial number conflict with different vendors
product_name
string
product_name is typically not required, only required in case of serial number conflict with different productname/skus Should be in the format “productname (sku)”
HardwareStatusResponse Message
Response message for method [HardwareStatus][ntt.devices.v1.HardwareStatus]
Name of DeviceType When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListDeviceTypesRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total DeviceTypes 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.
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_size
int32
Requested page size. Server may return fewer DeviceTypes than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to DeviceType that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to DeviceType that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchDeviceTypesResponse Message
A response message of the WatchDeviceTypes method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All DeviceTypes 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (DeviceTypes 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateDeviceTypeRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
Name of OsImageProfile When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListOsImageProfilesRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total OsImageProfiles 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.
WatchOsImageProfileRequest Message
A request message of the WatchOsImageProfile method.
Requested page size. Server may return fewer OsImageProfiles than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to OsImageProfile that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to OsImageProfile that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchOsImageProfilesResponse Message
A response message of the WatchOsImageProfiles method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All OsImageProfiles 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (OsImageProfiles 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateOsImageProfileRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteOsImageProfileRequest Message
A request message of the DeleteOsImageProfile method.
Name of OsVersion When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListOsVersionsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total OsVersions 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.
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_size
int32
Requested page size. Server may return fewer OsVersions than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to OsVersion that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to OsVersion that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All OsVersions 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (OsVersions 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateOsVersionRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
Name of Project When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListProjectsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Projects 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.
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_size
int32
Requested page size. Server may return fewer Projects than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Project that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Project that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Projects 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Projects 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateProjectRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
PUT /v1/{provisioning_approval_request.name=projects/*/regions/*/provisioningPolicies/*/provisioningApprovalRequests/*}(BODY: provisioning_approval_request)
Name of ProvisioningApprovalRequest When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
A token identifying a page of results the server should return. Typically, this is the value of ListProvisioningApprovalRequestsResponse.next_page_token.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListProvisioningApprovalRequestsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total ProvisioningApprovalRequests 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.
WatchProvisioningApprovalRequestRequest Message
A request message of the WatchProvisioningApprovalRequest method.
Parent name of ntt.devices.v1.ProvisioningApprovalRequest
page_size
int32
Requested page size. Server may return fewer ProvisioningApprovalRequests than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to ProvisioningApprovalRequest that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to ProvisioningApprovalRequest that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchProvisioningApprovalRequestsResponse Message
A response message of the WatchProvisioningApprovalRequests method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All ProvisioningApprovalRequests 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (ProvisioningApprovalRequests 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteProvisioningApprovalRequestRequest Message
A request message of the DeleteProvisioningApprovalRequest method.
Name of ProvisioningPolicy When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
Role that the newly created service account should be bound to. If not specified, will use the default value of “services/devices.edgelq.com/roles/v1-device-agent”.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListProvisioningPoliciesRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total ProvisioningPolicies 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.
WatchProvisioningPolicyRequest Message
A request message of the WatchProvisioningPolicy method.
Requested page size. Server may return fewer ProvisioningPolicies than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to ProvisioningPolicy that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to ProvisioningPolicy that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchProvisioningPoliciesResponse Message
A response message of the WatchProvisioningPolicies method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All ProvisioningPolicies 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (ProvisioningPolicies 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteProvisioningPolicyRequest Message
A request message of the DeleteProvisioningPolicy method.
Name of TpmAttestationCert When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
display_name
string
manufacturer
string
product_name
string
Should be in the format “productname (sku)”
tpm_manufacturer_ca_cert
string
idevid_issuer_ca_cert
string
ldevid_issuer_ca_cert
string
GetTpmAttestationCertRequest Message
A request message of the GetTpmAttestationCert method.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListTpmAttestationCertsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total TpmAttestationCerts 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.
WatchTpmAttestationCertRequest Message
A request message of the WatchTpmAttestationCert method.
Requested page size. Server may return fewer TpmAttestationCerts than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to TpmAttestationCert that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to TpmAttestationCert that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchTpmAttestationCertsResponse Message
A response message of the WatchTpmAttestationCerts method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All TpmAttestationCerts 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (TpmAttestationCerts 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteTpmAttestationCertRequest Message
A request message of the DeleteTpmAttestationCert method.
New version of CustomizedImage or masked difference, depending on mask_changes instrumentation of issued [WatchCustomizedImageRequest] or [WatchCustomizedImagesRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified CustomizedImage. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying CustomizedImage new index in resulting query view.
CustomizedImageChange.Removed Message
Removed is returned when CustomizedImage is deleted or leaves Query view
New version of Device or masked difference, depending on mask_changes instrumentation of issued [WatchDeviceRequest] or [WatchDevicesRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Device. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Device new index in resulting query view.
DeviceChange.Removed Message
Removed is returned when Device is deleted or leaves Query view
Integer specifying removed Device index. Not populated in stateless watch type.
DeviceDistributionCounterChange Message
DeviceDistributionCounterChange is used by Watch notifications Responses to
describe change of single DeviceDistributionCounter One of Added, Modified,
Removed
New version of DeviceDistributionCounter or masked difference, depending on mask_changes instrumentation of issued [WatchDeviceDistributionCounterRequest] or [WatchDeviceDistributionCountersRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified DeviceDistributionCounter. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying DeviceDistributionCounter new index in resulting query view.
DeviceDistributionCounterChange.Removed Message
Removed is returned when DeviceDistributionCounter is deleted or leaves
Query view
New version of DeviceHardware or masked difference, depending on mask_changes instrumentation of issued [WatchDeviceHardwareRequest] or [WatchDeviceHardwaresRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified DeviceHardware. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying DeviceHardware new index in resulting query view.
DeviceHardwareChange.Removed Message
Removed is returned when DeviceHardware is deleted or leaves Query view
Integer specifying removed DeviceHardware index. Not populated in stateless watch type.
DeviceHardwareRegisterSessionChange Message
DeviceHardwareRegisterSessionChange is used by Watch notifications Responses
to describe change of single DeviceHardwareRegisterSession One of Added,
Modified, Removed
New version of DeviceHardwareRegisterSession or masked difference, depending on mask_changes instrumentation of issued [WatchDeviceHardwareRegisterSessionRequest] or [WatchDeviceHardwareRegisterSessionsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified DeviceHardwareRegisterSession. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying DeviceHardwareRegisterSession new index in resulting query view.
New version of DeviceType or masked difference, depending on mask_changes instrumentation of issued [WatchDeviceTypeRequest] or [WatchDeviceTypesRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified DeviceType. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying DeviceType new index in resulting query view.
DeviceTypeChange.Removed Message
Removed is returned when DeviceType is deleted or leaves Query view
New version of OsImageProfile or masked difference, depending on mask_changes instrumentation of issued [WatchOsImageProfileRequest] or [WatchOsImageProfilesRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified OsImageProfile. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying OsImageProfile new index in resulting query view.
OsImageProfileChange.Removed Message
Removed is returned when OsImageProfile is deleted or leaves Query view
New version of OsVersion or masked difference, depending on mask_changes instrumentation of issued [WatchOsVersionRequest] or [WatchOsVersionsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified OsVersion. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying OsVersion new index in resulting query view.
OsVersionChange.Removed Message
Removed is returned when OsVersion is deleted or leaves Query view
New version of Project or masked difference, depending on mask_changes instrumentation of issued [WatchProjectRequest] or [WatchProjectsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Project. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Project new index in resulting query view.
ProjectChange.Removed Message
Removed is returned when Project is deleted or leaves Query view
ProvisioningApprovalRequestChange is used by Watch notifications Responses to
describe change of single ProvisioningApprovalRequest One of Added, Modified,
Removed
New version of ProvisioningApprovalRequest or masked difference, depending on mask_changes instrumentation of issued [WatchProvisioningApprovalRequestRequest] or [WatchProvisioningApprovalRequestsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified ProvisioningApprovalRequest. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying ProvisioningApprovalRequest new index in resulting query view.
ProvisioningApprovalRequestChange.Removed Message
Removed is returned when ProvisioningApprovalRequest is deleted or leaves
Query view
New version of ProvisioningPolicy or masked difference, depending on mask_changes instrumentation of issued [WatchProvisioningPolicyRequest] or [WatchProvisioningPoliciesRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified ProvisioningPolicy. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying ProvisioningPolicy new index in resulting query view.
ProvisioningPolicyChange.Removed Message
Removed is returned when ProvisioningPolicy is deleted or leaves Query view
New version of TpmAttestationCert or masked difference, depending on mask_changes instrumentation of issued [WatchTpmAttestationCertRequest] or [WatchTpmAttestationCertsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified TpmAttestationCert. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying TpmAttestationCert new index in resulting query view.
TpmAttestationCertChange.Removed Message
Removed is returned when TpmAttestationCert is deleted or leaves Query view
Name of CustomizedImage 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]
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListCustomizedImagesRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total CustomizedImages 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.
WatchCustomizedImageRequest Message
A request message of the WatchCustomizedImage method.
Parent name of ntt.devices.v1alpha2.CustomizedImage
page_size
int32
Requested page size. Server may return fewer CustomizedImages than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to CustomizedImage that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to CustomizedImage that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchCustomizedImagesResponse Message
A response message of the WatchCustomizedImages method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All CustomizedImages 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (CustomizedImages 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateCustomizedImageRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteCustomizedImageRequest Message
A request message of the DeleteCustomizedImage method.
Name of Device 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]
The associated service account to the Device. The agents in the device uses a key from this service account when they issue any requests to our endpoints for authoroization and authentication. ProvisionServiceAccountToDevice creates a new service account and a key for the Device and asign the account to this fileld. If you change the value of this field, the existing device would lose the access to the resources in our services, that means you can revoke the permissions from the device. You can manually set an empty value to do so, or call RemoveServiceAccountFromDevice.
os_version
string
The expected OS version in string (e.g. 1.0.2). The device will automatically download the OS image and upgrade itself with it. You can stack the OS upgrade progress in the Condition named OSReady in Status.Conditions.
The URL is dynamically constructed once the device is created or updated. The URL will be based on the device hardware information URL format: base_url/dedicated_path/iso_version/architecture/os_type
Disables the daemon on the device for device auto discovery on the network. When it’s enabled, avahi-daemon is launched on the device which listens at UDP 5353. This daemon is useful to locate the device that acquires an IP address with DHCP.
Insecure, use for dev only. If non-zero, droplet will use an in-memory TPM simulator instead of an actual, physical one, using the provided seed as initialization seed. OK, this is not actually insecure, since server-side should verify trustworthiness of the key anyways (the entire point of verification protocol after all), but it’s better to mark it this way for people who don’t read the documentation. This field is designed to be used for development purposes, as it allows for running the attestation protocol on devices which don’t have a TMP chip. To make it work, ensure that attestation domain policies are configured for development as well (depends on which aspect we’re testing; at the very least insecure_skip_manufacturer_ekcert_verification should be probably set to true).
Device.Spec.LoggingConfig Message
Name
Type
Description
priority
int32
Log priority as understood by systemd (0 - emergency, 1 - alert, 2 - critical, 3 - error, 4 - warning, 5 - notice, 6 - informational, 7 - debug). Journal logs with this priority and higher will be uploaded to the server.
units
repeated string
List of systemd unit names to monitor for logs, e.g. NetworkManager.service, docker.service. Leave empty to export all journald logs.
enable_journal_export
bool
Whether the journald log exporter is enabled.
Device.Spec.ProxyConfig Message
Name
Type
Description
http_proxy
string
https_proxy
string
no_proxy
string
proxy_interfaces
repeated string
By default proxy is applicable for all interfaces configuring proxy_interfaces allows to restrict proxy setting to be used only with specific interfaces At present this is only used for Control Plane (for eg LTE fallback)
This enables WakeOnWLan on supported devices. Not all drivers support all options. May be any combination of any, disconnect, magic_pkt, gtk_rekey_failure, eap_identity_req, four_way_handshake, rfkill_release or tcp (NetworkManager only). Or the exclusive default flag (the default).
regulatory_domain
string
This can be used to define the radio’s regulatory domain, to make use of additional WiFi channels outside the “world domain”. Takes an ISO / IEC 3166 country code (like GB) or 00 to reset to the “world domain”
Request message for method
[ListenForConnections][ntt.devices.v1alpha2.ListenForConnections] Registers a
new session listener (agent) to the endpoint. This method is used by agents
on the device and not meant for use of users.
Request message for method
[OpenConnectionChannelSocket][ntt.devices.v1alpha2.OpenConnectionChannelSocket]
Opens a new socket for a session by agent at an endpoint. This session is
usually initiated by the agent who received a ChannelRequested message on a
ListenForConnection session. The session is used for data plane to transfer
data for a channel between the endpoint and the agent.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListDevicesRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Devices 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.
Requested page size. Server may return fewer Devices than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Device that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Device that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Devices 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Devices 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateDeviceRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
Name of Device to provision service account. This method automatically generates a service account and a key for the device and assign the key to .Spec.ServiceAccount
external_pubkey
string
external public key to use for service account for this device. If not present, a keypair will be generated by the server.
ProvisionServiceAccountToDeviceResponse Message
Response message for method
[ProvisionServiceAccountToDevice][ntt.devices.v1alpha2.ProvisionServiceAccountToDevice]
Name of the Device to remove its service account The service account and the key will be automatically deleted as well when they have been generated automatically by ProvisionServiceAccountToDevice action. Otherwise, the service account will be kept intact. The device will lost the access to the resources in the project.
RemoveServiceAccountFromDeviceResponse Message
Response message for method
[RemoveServiceAccountFromDevice][ntt.devices.v1alpha2.RemoveServiceAccountFromDevice]
Name
Type
Description
none
none
none
ListPublicDevicesRequest Message
Request message for method
[ListPublicDevices][ntt.devices.v1alpha2.ListPublicDevices]
A token identifying a page of results the server should return. Typically, this is the value of [ListDevicesResponse.next_page_token][ntt.devices.v1alpha2.ListDevicesResponse.next_page_token]
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be requested on top of those defined by request field View.
A token to retrieve previous page of results. Pass this value in the [ListDevicesRequest.page_token][ntt.devices.v1alpha2.ListDevicesRequest.page_token]
Name of DeviceType 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]
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListDeviceTypesRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total DeviceTypes 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.
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_size
int32
Requested page size. Server may return fewer DeviceTypes than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to DeviceType that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to DeviceType that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchDeviceTypesResponse Message
A response message of the WatchDeviceTypes method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All DeviceTypes 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (DeviceTypes 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateDeviceTypeRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
Name of OsImageProfile 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]
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListOsImageProfilesRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total OsImageProfiles 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.
WatchOsImageProfileRequest Message
A request message of the WatchOsImageProfile method.
Parent name of ntt.devices.v1alpha2.OsImageProfile
page_size
int32
Requested page size. Server may return fewer OsImageProfiles than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to OsImageProfile that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to OsImageProfile that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchOsImageProfilesResponse Message
A response message of the WatchOsImageProfiles method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All OsImageProfiles 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (OsImageProfiles 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateOsImageProfileRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteOsImageProfileRequest Message
A request message of the DeleteOsImageProfile method.
Name of OsVersion 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]
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListOsVersionsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total OsVersions 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.
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_size
int32
Requested page size. Server may return fewer OsVersions than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to OsVersion that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to OsVersion that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All OsVersions 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (OsVersions 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateOsVersionRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
Name of Project 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]
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListProjectsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Projects 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.
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_size
int32
Requested page size. Server may return fewer Projects than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Project that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Project that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Projects 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Projects 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateProjectRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
PUT /v1alpha2/{provisioning_approval_request.name=projects/*/regions/*/provisioningPolicies/*/provisioningApprovalRequests/*}(BODY: provisioning_approval_request)
Name of ProvisioningApprovalRequest 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]
A token identifying a page of results the server should return. Typically, this is the value of ListProvisioningApprovalRequestsResponse.next_page_token.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListProvisioningApprovalRequestsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total ProvisioningApprovalRequests 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.
WatchProvisioningApprovalRequestRequest Message
A request message of the WatchProvisioningApprovalRequest method.
Parent name of ntt.devices.v1alpha2.ProvisioningApprovalRequest
page_size
int32
Requested page size. Server may return fewer ProvisioningApprovalRequests than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to ProvisioningApprovalRequest that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to ProvisioningApprovalRequest that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchProvisioningApprovalRequestsResponse Message
A response message of the WatchProvisioningApprovalRequests method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All ProvisioningApprovalRequests 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (ProvisioningApprovalRequests 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteProvisioningApprovalRequestRequest Message
A request message of the DeleteProvisioningApprovalRequest method.
Name of ProvisioningPolicy 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]
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListProvisioningPoliciesRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total ProvisioningPolicies 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.
WatchProvisioningPolicyRequest Message
A request message of the WatchProvisioningPolicy method.
Parent name of ntt.devices.v1alpha2.ProvisioningPolicy
page_size
int32
Requested page size. Server may return fewer ProvisioningPolicies than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to ProvisioningPolicy that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to ProvisioningPolicy that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchProvisioningPoliciesResponse Message
A response message of the WatchProvisioningPolicies method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All ProvisioningPolicies 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (ProvisioningPolicies 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteProvisioningPolicyRequest Message
A request message of the DeleteProvisioningPolicy method.
New version of CustomizedImage or masked difference, depending on mask_changes instrumentation of issued [WatchCustomizedImageRequest] or [WatchCustomizedImagesRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified CustomizedImage. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying CustomizedImage new index in resulting query view.
CustomizedImageChange.Removed Message
Removed is returned when CustomizedImage is deleted or leaves Query view
New version of Device or masked difference, depending on mask_changes instrumentation of issued [WatchDeviceRequest] or [WatchDevicesRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Device. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Device new index in resulting query view.
DeviceChange.Removed Message
Removed is returned when Device is deleted or leaves Query view
New version of DeviceType or masked difference, depending on mask_changes instrumentation of issued [WatchDeviceTypeRequest] or [WatchDeviceTypesRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified DeviceType. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying DeviceType new index in resulting query view.
DeviceTypeChange.Removed Message
Removed is returned when DeviceType is deleted or leaves Query view
New version of OsImageProfile or masked difference, depending on mask_changes instrumentation of issued [WatchOsImageProfileRequest] or [WatchOsImageProfilesRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified OsImageProfile. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying OsImageProfile new index in resulting query view.
OsImageProfileChange.Removed Message
Removed is returned when OsImageProfile is deleted or leaves Query view
New version of OsVersion or masked difference, depending on mask_changes instrumentation of issued [WatchOsVersionRequest] or [WatchOsVersionsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified OsVersion. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying OsVersion new index in resulting query view.
OsVersionChange.Removed Message
Removed is returned when OsVersion is deleted or leaves Query view
New version of Project or masked difference, depending on mask_changes instrumentation of issued [WatchProjectRequest] or [WatchProjectsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Project. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Project new index in resulting query view.
ProjectChange.Removed Message
Removed is returned when Project is deleted or leaves Query view
Integer specifying removed Project index. Not populated in stateless watch type.
ProvisioningApprovalRequestChange Message
ProvisioningApprovalRequestChange is used by Watch notifications Responses to
describe change of single ProvisioningApprovalRequest One of Added, Modified,
Removed
New version of ProvisioningApprovalRequest or masked difference, depending on mask_changes instrumentation of issued [WatchProvisioningApprovalRequestRequest] or [WatchProvisioningApprovalRequestsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified ProvisioningApprovalRequest. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying ProvisioningApprovalRequest new index in resulting query view.
ProvisioningApprovalRequestChange.Removed Message
Removed is returned when ProvisioningApprovalRequest is deleted or leaves
Query view
New version of ProvisioningPolicy or masked difference, depending on mask_changes instrumentation of issued [WatchProvisioningPolicyRequest] or [WatchProvisioningPoliciesRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified ProvisioningPolicy. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying ProvisioningPolicy new index in resulting query view.
ProvisioningPolicyChange.Removed Message
Removed is returned when ProvisioningPolicy is deleted or leaves Query view
Applications service manages the applications running on the edge
devices. Those applications are typically represented either as
a pod or distribution resource, and running as a container.
A standalone executable nor virtual machine based applications are
not supported.
A Pod resource delivers an application to a specific SPEKTRA Edge device;
a Distribution resource automatically generates a Pod resource for
any SPEKTRA Edge device that matches the specified criteria. In other words,
a Distribution resource acts as a template for a Pod resource.
In Pod resources, Docker Compose is usually used to define the containers
to be run.
Below is a simple Docker Compose example for running an Nginx server.
For simplicity, host is used for the network in this example.
Specify the resource name of the SPEKTRA Edge device where you want to deploy the application.
spec.compose
Set the value of the above Docker Compose file escaped as a string. Please refer to the following tips for the escaping method.
To create a pod resource using the above file (here named $POD_FILE), use the command cuttle applications create pod.
cuttle applications create pod -f $POD_FILE
String escaping with jq command
The jq command can be used to easily perform the escaping process. For
example, if the above Docker Compose file is stored in nginx.yaml,
the following command will yield the escaped string.
cat nginx.yaml | jq -R -s .
Bulk Distribution of Applications (Distribution Resources)
Although Pod resources are useful for distributing applications to individual
devices, resource management becomes complicated when the number of devices
is large. To solve this problem, Distribution resources can be used.
The Distribution resource is a template resource for Pod resources, and has
a label-matching function for device resources, allowing automatic generation
of Pod resources for device resources that match the criteria in a batch.
The Distribution resource is a template for the Pod resource.
The following is an example of a Distribution resource to distribute Joki’s
Nginx server to all devices present in the project.
To create a Distribution resource from a file, use the
cuttle applications create distribution command:
cuttle applications create distribution -f $DIST_FILE
Use the spec.selector field if you want to target only specific Device
resources for delivery. If this field is not set, all devices will be
targeted for delivery.
The following is an example of how to distribute only to Device resources
with {"purpose": "frontend"} set in metadata.labels.
Name of ConfigMap When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
display_name
string
Display name of ConfigMap
description
string
Optional. Description of the ConfigMap.
data
map<string, string>
Data contains the configuration data. Each key must consist of alphanumeric characters, ‘-’, ‘_’ or ‘.’. Values with non-UTF-8 byte sequences must use the BinaryData field. The keys stored in Data must not overlap with the keys in the BinaryData field, this is enforced during validation process. +optional
binary_data
map<string, bytes>
BinaryData contains the binary data. Each key must consist of alphanumeric characters, ‘-’, ‘_’ or ‘.’. BinaryData can contain byte sequences that are not in the UTF-8 range. The keys stored in BinaryData must not overlap with the ones in the Data field, this is enforced during validation process. Using this field will require 1.10+ apiserver and kubelet. +optional
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListConfigMapsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total ConfigMaps 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.
Requested page size. Server may return fewer ConfigMaps than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to ConfigMap that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to ConfigMap that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All ConfigMaps 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (ConfigMaps 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateConfigMapRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
Name of Distribution When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListDistributionsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Distributions 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.
WatchDistributionRequest Message
A request message of the WatchDistribution method.
Requested page size. Server may return fewer Distributions than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Distribution that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Distribution that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchDistributionsResponse Message
A response message of the WatchDistributions method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Distributions 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Distributions 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateDistributionRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteDistributionRequest Message
A request message of the DeleteDistribution method.
Name of Pod When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
This is a consolidated summary of all containers health UNHEALTHY as long as one container is UNHEALTHY HEALTHY as long as atleast one container has health status
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListPodsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Pods 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.
Requested page size. Server may return fewer Pods than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Pod that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Pod that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Pods 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Pods 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdatePodRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
PodPhase is states of Pod.
TODO remove prefixes when the name conflict issue by gogo is resolved
Name
Description
PHASE_UNSPECIFIED
PhaseUnspecified means the Pod is in unknown state. This state is usually not used.
PENDING
PhasePending is used when the Pod is accepted by the system and it’s under processing to be launched.
RUNNING
PhaseRunning indicates all the containers supposed to be running are up and running.
SUCCEEDED
PhaseSucceeded indicates the Pod is terminated however the exit codes of the containers are non-error numbers.
FAILED
PhaseFailed is used when the Pod encountered an issue and some or all of the container are not running. This Phase happens after the containers are initially created successfully
UNKNOWN
PhaseUnknown is used when the assigned node doesn’t respond anymore
IMAGE_DOWNLOAD_FAILED
IMAGE_DOWNLOAD_FAILED is the state when docker image pull fails.
INIT_FAILED
INIT_FAILED is the state when validation fails or pod initialization fails because of some system error. Typically caused by yaml syntax errors or system errors on device such as disk full etc
POD_CREATE_FAILED
POD_CREATE_FAILED is the state when pod UP fails. In this case, the compose file is a valid yaml. The failure could be wrong or could be caused by docker errors or keyword errors
Pod.Status.HealthStatus Enumeration
Name
Description
HEALTH_STATUS_UNKNOWN
HEALTHY
UNHEALTHY
Pod.Status.Container.State Enumeration
TODO remove prefixes when the name conflict issue by gogo is resolved
Name
Description
STATE_UNSPECIFIED
WAITING
RUNNING
TERMINATED
UNKNOWN
Project Resource
Project Resource
Name patterns:
projects/{project}
This section covers the methods
and messages to interact
with Project resource.
Name of Project When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
Metadata 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).
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListProjectsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Projects 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.
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_size
int32
Requested page size. Server may return fewer Projects than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Project that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Project that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Projects 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Projects 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateProjectRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
New version of ConfigMap or masked difference, depending on mask_changes instrumentation of issued [WatchConfigMapRequest] or [WatchConfigMapsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified ConfigMap. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying ConfigMap new index in resulting query view.
ConfigMapChange.Removed Message
Removed is returned when ConfigMap is deleted or leaves Query view
Integer specifying removed ConfigMap index. Not populated in stateless watch type.
ConfigMapEnvSource Message
ConfigMapEnvSource selects a ConfigMap to populate the environment
variables with.
The contents of the target ConfigMap’s Data field will represent the
key-value pairs as environment variables.
Name
Type
Description
name
string
The ConfigMap to select from.
optional
bool
Specify whether the ConfigMap must be defined
ConfigMapKeySelector Message
Name
Type
Description
name
string
The ConfigMap to select from.
key
string
The key to select.
optional
bool
Specify whether the ConfigMap or its key must be defined
ConfigMapVolumeSource Message
Adapts a ConfigMap into a volume.
The contents of the target ConfigMap’s Data field will be presented in a
volume as files using the keys in the Data field as the file names, unless
the items element is populated with specific mappings of keys to paths.
ConfigMap volumes support ownership management and SELinux relabeling.
If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the ‘..’ path or start with ‘..’.
default_mode
int32
Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
optional
bool
Specify whether the ConfigMap or its keys must be defined
DistributionChange Message
DistributionChange is used by Watch notifications Responses to describe
change of single Distribution One of Added, Modified, Removed
New version of Distribution or masked difference, depending on mask_changes instrumentation of issued [WatchDistributionRequest] or [WatchDistributionsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Distribution. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Distribution new index in resulting query view.
DistributionChange.Removed Message
Removed is returned when Distribution is deleted or leaves Query view
The relative path of the file to map the key to. May not be an absolute path. May not contain the path element ‘..’. May not start with the string ‘..’.
mode
int32
Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
LabelSelector Message
A label selector is a label query over a set of resources. The result of
matchLabels and matchExpressions are ANDed. An empty label selector matches
all objects. A null label selector matches no objects.
Name
Type
Description
match_labels
map<string, string>
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed. +optional
matchExpressions is a list of label selector requirements. The requirements are ANDed. +optional
LabelSelectorRequirement Message
A label selector requirement is a selector that contains values, a key, and
an operator that relates the key and values.
Name
Type
Description
key
string
key is the label key that the selector applies to. +patchMergeKey=key +patchStrategy=merge
operator
string
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
values
repeated string
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. +optional
LocalObjectReferenceSecret Message
LocalObjectReference contains enough information to let you locate the
referenced object inside the same namespace.
New version of Pod or masked difference, depending on mask_changes instrumentation of issued [WatchPodRequest] or [WatchPodsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Pod. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Pod new index in resulting query view.
PodChange.Removed Message
Removed is returned when Pod is deleted or leaves Query view
ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored.
List of volumes that can be mounted by containers belonging to the pod.
compose
string
Compose file as a string. When this value is provided, you can manage containers directlry using Docker Compose. Other values in the Spec expect node will be ignored.
List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.
New version of Project or masked difference, depending on mask_changes instrumentation of issued [WatchProjectRequest] or [WatchProjectsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Project. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Project new index in resulting query view.
ProjectChange.Removed Message
Removed is returned when Project is deleted or leaves Query view
Integer specifying removed Project index. Not populated in stateless watch type.
SecretEnvSource Message
SecretEnvSource selects a Secret to populate the environment
variables with.
The contents of the target Secret’s Data field will represent the
key-value pairs as environment variables.
Name
Type
Description
name
string
The Secret to select from.
optional
bool
Specify whether the Secret must be defined
SecretKeySelector Message
SecretKeySelector selects a key of a Secret.
Name
Type
Description
name
string
The name of the secret in the pod’s namespace to select from.
key
string
The key of the secret to select from. Must be a valid secret key.
optional
bool
Specify whether the Secret or its key must be defined
SecretVolumeSource Message
Adapts a Secret into a volume.
The contents of the target Secret’s Data field will be presented in a volume
as files using the keys in the Data field as the file names.
Secret volumes support ownership management and SELinux relabeling.
If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the ‘..’ path or start with ‘..’. +optional
default_mode
int32
Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
optional
bool
Specify whether the Secret or its keys must be defined
SecurityContext Message
PodSecurityContext holds pod-level security attributes and common container
settings. Some fields are also present in container.securityContext. Field
values of container.securityContext take precedence over field values of
PodSecurityContext.
Name
Type
Description
privileged
bool
Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false.
Volume Message
Volume represents a named volume in a pod that may be accessed by any
container in the pod.
Name
Type
Description
name
string
Volume’s name. Must be a DNS_LABEL and unique within the pod.
HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this.
TYPE_UNSPECIFIED is not used. Type must be set to one of the concreate values.
DIRECTORY_OR_CREATE
If nothing exists at the given path, an empty directory will be created there as needed with permission set to 0755, having the same group and ownership with Droplet.
DIRECTORY
A directory must exist at the given path
FILE_OR_CREATE
If nothing exists at the given path, an empty file will be created there as needed with permission set to 0644, having the same group and ownership with Droplet.
FILE
A file must exist at the given path
SOCKET
A UNIX socket must exist at the given path
CHAR_DEVICE
A character device must exist at the given path
BLOCK_DEVICE
A block device must exist at the given path
PodSpec.RestartPolicy Enumeration
Name
Description
RESTART_POLICY_UNSPECIFIED
ALWAYS
ON_FAILURE
NEVER
10.2 -
Understanding the applications.edgelq.com service APIv1alpha2, in proto package ntt.applications.v1alpha2.
Service applications.edgelq.com in version v1alpha2, proto package ntt.applications.v1alpha2
Here is the list of resources supported in Applications service APIv1alpha2:
Name of ConfigMap 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]
Data contains the configuration data. Each key must consist of alphanumeric characters, ‘-’, ‘_’ or ‘.’. Values with non-UTF-8 byte sequences must use the BinaryData field. The keys stored in Data must not overlap with the keys in the BinaryData field, this is enforced during validation process. +optional
binary_data
map<string, bytes>
BinaryData contains the binary data. Each key must consist of alphanumeric characters, ‘-’, ‘_’ or ‘.’. BinaryData can contain byte sequences that are not in the UTF-8 range. The keys stored in BinaryData must not overlap with the ones in the Data field, this is enforced during validation process. Using this field will require 1.10+ apiserver and kubelet. +optional
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListConfigMapsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total ConfigMaps 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.
Parent name of ntt.applications.v1alpha2.ConfigMap
page_size
int32
Requested page size. Server may return fewer ConfigMaps than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to ConfigMap that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to ConfigMap that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All ConfigMaps 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (ConfigMaps 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateConfigMapRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
Name of Distribution 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]
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListDistributionsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Distributions 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.
WatchDistributionRequest Message
A request message of the WatchDistribution method.
Parent name of ntt.applications.v1alpha2.Distribution
page_size
int32
Requested page size. Server may return fewer Distributions than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Distribution that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Distribution that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchDistributionsResponse Message
A response message of the WatchDistributions method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Distributions 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Distributions 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateDistributionRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteDistributionRequest Message
A request message of the DeleteDistribution method.
Name of Pod 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]
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListPodsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Pods 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.
Requested page size. Server may return fewer Pods than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Pod that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Pod that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Pods 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Pods 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdatePodRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
Name of Project 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]
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
A token to retrieve next page of results. Pass this value in the ListProjectsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total Projects 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.
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_size
int32
Requested page size. Server may return fewer Projects than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Project that don’t affect any of masked fields won’t be sent back.
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Project that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Projects 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Projects 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateProjectRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
New version of ConfigMap or masked difference, depending on mask_changes instrumentation of issued [WatchConfigMapRequest] or [WatchConfigMapsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified ConfigMap. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying ConfigMap new index in resulting query view.
ConfigMapChange.Removed Message
Removed is returned when ConfigMap is deleted or leaves Query view
Integer specifying removed ConfigMap index. Not populated in stateless watch type.
ConfigMapEnvSource Message
ConfigMapEnvSource selects a ConfigMap to populate the environment
variables with.
The contents of the target ConfigMap’s Data field will represent the
key-value pairs as environment variables.
Name
Type
Description
name
string
The ConfigMap to select from.
optional
bool
Specify whether the ConfigMap must be defined
ConfigMapKeySelector Message
Name
Type
Description
name
string
The ConfigMap to select from.
key
string
The key to select.
optional
bool
Specify whether the ConfigMap or its key must be defined
ConfigMapVolumeSource Message
Adapts a ConfigMap into a volume.
The contents of the target ConfigMap’s Data field will be presented in a
volume as files using the keys in the Data field as the file names, unless
the items element is populated with specific mappings of keys to paths.
ConfigMap volumes support ownership management and SELinux relabeling.
If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the ‘..’ path or start with ‘..’.
default_mode
int32
Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
optional
bool
Specify whether the ConfigMap or its keys must be defined
DistributionChange Message
DistributionChange is used by Watch notifications Responses to describe
change of single Distribution One of Added, Modified, Removed
New version of Distribution or masked difference, depending on mask_changes instrumentation of issued [WatchDistributionRequest] or [WatchDistributionsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Distribution. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Distribution new index in resulting query view.
DistributionChange.Removed Message
Removed is returned when Distribution is deleted or leaves Query view
The relative path of the file to map the key to. May not be an absolute path. May not contain the path element ‘..’. May not start with the string ‘..’.
mode
int32
Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
LabelSelector Message
A label selector is a label query over a set of resources. The result of
matchLabels and matchExpressions are ANDed. An empty label selector matches
all objects. A null label selector matches no objects.
Name
Type
Description
match_labels
map<string, string>
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed. +optional
matchExpressions is a list of label selector requirements. The requirements are ANDed. +optional
LabelSelectorRequirement Message
A label selector requirement is a selector that contains values, a key, and
an operator that relates the key and values.
Name
Type
Description
key
string
key is the label key that the selector applies to. +patchMergeKey=key +patchStrategy=merge
operator
string
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
values
repeated string
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. +optional
LocalObjectReferenceSecret Message
LocalObjectReference contains enough information to let you locate the
referenced object inside the same namespace.
New version of Pod or masked difference, depending on mask_changes instrumentation of issued [WatchPodRequest] or [WatchPodsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Pod. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Pod new index in resulting query view.
PodChange.Removed Message
Removed is returned when Pod is deleted or leaves Query view
ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored.
List of volumes that can be mounted by containers belonging to the pod.
compose
string
Compose file as a string. When this value is provided, you can manage containers directlry using Docker Compose. Other values in the Spec expect node will be ignored.
List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.
PodSpec.Container.ResourceRequirements Message
Name
Type
Description
limits
map<string, int64>
todo: change to k8s.io.apimachinery.pkg.api.resource.
requests
map<string, int64>
ProjectChange Message
ProjectChange is used by Watch notifications Responses to describe change of
single Project One of Added, Modified, Removed
New version of Project or masked difference, depending on mask_changes instrumentation of issued [WatchProjectRequest] or [WatchProjectsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified Project. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying Project new index in resulting query view.
ProjectChange.Removed Message
Removed is returned when Project is deleted or leaves Query view
Integer specifying removed Project index. Not populated in stateless watch type.
SecretEnvSource Message
SecretEnvSource selects a Secret to populate the environment
variables with.
The contents of the target Secret’s Data field will represent the
key-value pairs as environment variables.
Name
Type
Description
name
string
The Secret to select from.
optional
bool
Specify whether the Secret must be defined
SecretKeySelector Message
SecretKeySelector selects a key of a Secret.
Name
Type
Description
name
string
The name of the secret in the pod’s namespace to select from.
key
string
The key of the secret to select from. Must be a valid secret key.
optional
bool
Specify whether the Secret or its key must be defined
SecretVolumeSource Message
Adapts a Secret into a volume.
The contents of the target Secret’s Data field will be presented in a volume
as files using the keys in the Data field as the file names.
Secret volumes support ownership management and SELinux relabeling.
If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the ‘..’ path or start with ‘..’. +optional
default_mode
int32
Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
optional
bool
Specify whether the Secret or its keys must be defined
SecurityContext Message
PodSecurityContext holds pod-level security attributes and common container
settings. Some fields are also present in container.securityContext. Field
values of container.securityContext take precedence over field values of
PodSecurityContext.
Name
Type
Description
privileged
bool
Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false.
Volume Message
Volume represents a named volume in a pod that may be accessed by any
container in the pod.
Name
Type
Description
name
string
Volume’s name. Must be a DNS_LABEL and unique within the pod.
HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this.
TYPE_UNSPECIFIED is not used. Type must be set to one of the concreate values.
DIRECTORY_OR_CREATE
If nothing exists at the given path, an empty directory will be created there as needed with permission set to 0755, having the same group and ownership with Droplet.
DIRECTORY
A directory must exist at the given path
FILE_OR_CREATE
If nothing exists at the given path, an empty file will be created there as needed with permission set to 0644, having the same group and ownership with Droplet.
FILE
A file must exist at the given path
SOCKET
A UNIX socket must exist at the given path
CHAR_DEVICE
A character device must exist at the given path
BLOCK_DEVICE
A block device must exist at the given path
PodSpec.RestartPolicy Enumeration
Name
Description
RESTART_POLICY_UNSPECIFIED
ALWAYS
ON_FAILURE
NEVER
11 -
SPEKTRA Edge API Documents
SPEKTRA Edge API documentations. Please read below if you need to publish
your API document because the process to update the document is fully
automated and done through regenerate.sh and the github action.
regenerate.sh
The API document generation is controlled by protoc-gen-edgelq-doc.
Please meke sure your regenerate.sh triggers the plugin in case you want
to publish the API documentation through the docs.edgelq.com.
Github Action
We utilize the create-pull-request github action to create
a edgelq-docs PR through the SPEKTRA Edge releases. Create
a new SPEKTRA Edge release once your API document is ready and committed to
the main branch.
edgelq-docs PR
The PR will be created against edgelq-docs repository through the
github action mentioned above. Here is the example for your reference.
Review and approve the PR once you double checked the deply preview
as created by the netlify.
12 - Common types
Understanding common types
List of common protobuf packages used by SPEKTRA Edge services
generation is the version number of the spec of the resource. This number increments when the resource is updated with any changes of its spec.
resource_version
string
An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.
List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected, unless, the last owner reference had the unset_on_delete flag set to true - in this case the object won’t be garbage collected, just the owner reference will be unset. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true.
Information about services access.ownership of given resource. Non populated value should be treated as unregulated access.
LabelSelector Message
A label selector is a label query over a set of resources. The result of matchLabels and
matchExpressions are ANDed. An empty label selector matches all objects. A null
label selector matches no objects.
Name
Type
Description
match_labels
map<string, string>
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
matchExpressions is a list of label selector requirements. The requirements are ANDed.
LabelSelectorRequirement Message
A label selector requirement is a selector that contains values, a key, and an operator that
relates the key and values.
Name
Type
Description
key
string
key is the label key that the selector applies to. +patchMergeKey=key +patchStrategy=merge
operator
string
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
values
repeated string
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. +optional
OwnerReference Message
OwnerReference contains enough information to let you identify an owning
object. An owning object must be in the same namespace as the dependent, or
be cluster-scoped, so there is no namespace field.
Name
Type
Description
kind
string
Resource kind, for example “library.goten.com/Site”
version
string
For example v1
name
string
Name of the resource, for example projects/p1/devices/d1
region
string
Region ID owning resource
controller
bool
If true, this reference points to the managing controller.
requires_owner_reference
bool
This flag indicates that owner must have schema-based reference for this owner reference to be valid. Otherwise it will be removed. If there are no other owners, resource will be deleted. It also works if owner resource unsets its reference. This extends default behavior of meta references, where ownees are deleted only when owner is deleted. Here, we also want to delete ownee if owner just stops pointing to ownee via own reference (or never pointed at all). This flag is useful if higher-level service creates some resource in lower level service and assigns via schema reference.
unset_on_delete
bool
This flag indicates if the reference should be unset on the owner deletion. If set, owner’s deletion will not cause the resource deletion, but rather only the owner reference will be unset
SyncingMeta Message
SyncingMeta is a helper object associated with each resource that is either regional or is governed by Policy object.
This object is used for internal purposes like Sync controller which ensures data synchronization of all resources
across multiple regions.
Name
Type
Description
owning_region
string
For regional resources (or their descendants) it is equal to the region ID (present in resource name). Otherwise it is equal to the region as defined in Policy object under default_control_region field.
regions
repeated string
List of regions where owning resource can be present. If can be present in all regions, will contain “*”.
Optional flag indicating that resource must not be deleted - at least yet. This flag is not accessible via API, it is expected developer will populate it if needed from custom server code. It should be used when some condition (other than blocking back reference) applies that server is not aware of. If flag is true, then constraint store will block resource deletion. GC will also defer from cleaning up, however developer should ensure that eventually deletion will be done.
ServicesInfo Message
ServicesInfo contains information about resource ownership/access in terms
of service. As goten is a multi-service framework, it is possible for a
resource in one service to be “owned” by another one. Owning service may also
need to regulate access to other services via allowed services field.
It should be note that Goten does not provide authorization layer of its own,
ServicesInfo is provided for convenience, but actual restriction should be
implemented by actual services.
Name
Type
Description
owning_service
string
Service domain owning resource
allowed_services
repeated string
List of services with allowed access to resource.
MultiRegionPolicy Message
MultiRegionPolicy is an object defining relation between service in multi-region environment and resource holding
this policy (as one of its fields). Policy ought to be used for high-level resources like “Project” or “Organization”
which form top elements in scopes. Policy then, attached to such a high level resource defines syncing policies for
all kid resources and limits their geographical belonging (kid resources can belong only to the region allowed by a
policy). Note: While policy governs all resources under policy holder resource, policy holder resource itself is not
subject to this policy. This rule allows information about policy spread properly across regions and enables routing.
Name
Type
Description
enabled_regions
repeated string
List of regions available in the scope. It is forbidden to create resource within given scope outside allowed regions.
default_control_region
string
Must be within restricted_regions. Defines region handling CUD requests for resources not attached to any region.
List of criteria according to which synchronization is disabled.
MultiRegionPolicy.CriteriaForDisabledSync Message
CriteriaForDisabledSync is a rule preventing data synchronization. By default, everything within Policy scope
is synced (unless schema tells otherwise). However, within single scope to which this policy is attached, it is
possible to blacklist synchronization for specific criteria. Examples:
{ resource_type_name: “devices.service.com/Device”, sourceRegion: “france” } -> will make Devices in France private
{ resource_type_name: “devices.service.com/Device”, destRegion: “hongkong” } -> will prevent from syncing Devices INTO
HongKong region
{ resource_type_name: “devices.service.com/Device”, sourceRegion: “germany”, destRegion: “hongkong” } -> Will block
syncing of Devices from Germany to HongKong.
{ resource_type_name: “devices.service.com/Pod” } -> will make Pods in all regions private
{ region: “japan” } -> will make all resources in Japan private
Name
Type
Description
resource_type_name
string
Fully qualified name of a resource. If not provided, all are considered. Required format: “${SERVICE_DOMAIN}/${RESOURCE_SINGLE_NAME_CAMEL}, for example: “devices.service.com/Device”
source_region
string
Source region indicates that this rule prevents syncing into this region. If left blank, then all regions are considered.
dest_region
string
Dest region indicates that this rule prevents syncing from this region. If left blank, then all regions are considered.
goten.types Shared Enumerations
Here is the list of goten.types shared enumerations:
View defines list of fields of the resource that will
be obtained in servers response.
Name
Description
UNSPECIFIED
NAME
BASIC
DETAIL
FULL
WatchType Enumeration
WatchType defines how client wants to subscribe for real-time updates when
making Watch request.
Name
Description
STATEFUL
In a Stateful type, by default first watch response contains whole snapshot of a given query according to the provided filter, field mask, order by fields. Paging is supported (page token and size can be used), but resuming not (resume token cannot be used). Reason is, that server drops all state for given watch session after disconnection and cannot match resuming token with some known state. Subsequent responses will contain incremental changes to the initially given snapshot. Server will provide additional information like index positions (and changes of those). It is possible to split snapshot and incremental changes into chunks (and therefore, many watch responses) by using maximum chunk size field in a request. In that case, client is expected to check the appropriate flag in each response messages to find a marker when “complete” message finishes. Clients should specify at least chunk size or page size. If none of them are present, server may enforce own limit on number of resources (page size) and return snapshot with next page token, if that limit was exceeded. If page size is accepted by the server (not too big), then response may be chunked only on user wish, but its not necessary. This type is made for users desiring real-time updates of a defined pages for use in for example UI dashboards, which is typical case when users are capped by a page size.
STATELESS
In a stateless type, initial snapshot of a query is sent within N watch responses (N = (NumRes / ChunkSize)), where: NumRes is a number of resources passing optional filter specified in a request (and parent if applicable), and ChunkSize is a maximum number of resource changes allowed to be included in a single Watch<Collection>Response. This chunk size should be specified in request object. Ordering and paging is not supported: request must not specify page token, order by fields or page size. Response object will never contain next/prev page tokens and index positions inside resource change objects must be ignored by a client. Field mask is allowed to be used. As client is supposed to contain state of the session, it is allowed to use resumption tokens and it may be provided with response. Server cannot tell the difference between added or modified resource - instead of using “Add” or “Modified” change types, server uses stateless “Set” type. The only common part is “Removed” type. If client does not specify chunk size, server may enforce its own default value. This type is made for users that do not care about ordering or paging but need general view of a set of resources in the unordered fashion, for example controllers. The benefit of this type, is that number of resources is never capped.
TPM_PUBLIC format object obtained by tpm2.ReadPublic
ekcert
bytes
ASN.1 DER encoded EK certificate.
ekcerturl
string
For Intel TPMs, Intel hosts certificates at a public URL derived from the Public key. Clients or servers can perform an HTTP GET to this URL, and use ParseEKCertificate on the response body.
idevid_cert_tpm_pub
bytes
TPM_PUBLIC format object obtained by tpm2.ReadPublic
idevid_cert
bytes
ASN.1 DER encoded IDevID certificate.
ldevid_cert_tpm_pub
bytes
TPM_PUBLIC format object obtained by tpm2.ReadPublic
ChallengeFormat defines the method of generating identity activation challenge by the Verifier (server). It should affect the interpretation ChallengeResponse fields cred_encrypted_by_ekpub and secret_encrypted_by_cred. Attestor (client) is responsible for chosing the right format depending on TPM version and the presence of TrouSerS daemon.
One of IDevID or LDevID is mandatory for IdentityChallenge to succeed
DevID keys can be either signing or decrypt
With GlobalSign + Compulab, we use decrypt keys, but other vendors like Dell
may be using signing keys instead, so api should allow both
Binary contents of /sys/kernel/security/tpm0/binary_bios_measurements
IdentityChallengeResponse.Quote Message
Name
Type
Description
quote
bytes
TPMS_ATTEST (TSS_VALIDATION.Data or TSS_VALIDATION.rgbData) This contains PCR selection information for which the signature was calculated and other required data, like nonce.
signature
bytes
TSS_VALIDATION.ValidationData or TSS_VALIDATION.rgbValidationData
PCR Message
Name
Type
Description
index
uint32s
digest_hex
string
Hex-encoded digest string (without 0x prefix, e.g. “DEADBEEF”)
HealthCheck describes a health check to be performed in the context of a
device or a container. Only the exec check can be truly executed inside a
container. All the other checks are run on the host device.
When run for device health check, host/IP address is mandatory for
connectivity checks. For container health checks, host/IP is optional and
would default to IP address of the container. It is important to note that a
health check for https://endpoint.com/api defined for a container would be
run from the host device and not from withthin the container
device_file_check is only available for device. It can be configured to ensure specific hardware is connected (eg modem /dev/cdc-wdm0, RFID reader device /dev/ttyACM0 etc)
timeout
.google.protobuf.Duration
Timeout for the HealthCheck. Defaults to 1 second, greater than 5 seconds is not allowed
interval
.google.protobuf.Duration
Interval for health check, 60 seconds minimum interval
name
string
name for the health check. A meaningful name for this might be useful as a metrics label
HTTPGetCheck Message
HTTPGetCheck describes health check based on HTTP Get requests.
Name
Type
Description
url
string
http_url field has to be used when the IP to perform health check is a container IP that cannot not be known beforehand, In all other cases, simple url string can be used Although not explicitly declared as oneof, url and http_url is oneof type
Custom headers to set in the request. HTTP allows repeated headers. optional
skip_tls_check
bool
expected_response_code
int32
optional. By default any response code >= 400 or response code == 300 are considered as failure Sometimes, the health check might actually expect 401/403/511 without proper authentication setting expected_response_code will help to consider this as successful for health check
enable_detailed_metrics
bool
By default only Success or Failure metric will be generated. This field can be used to enable response time metric and network metrics if supported
HTTPGetCheck.HTTPUrl Message
Name
Type
Description
path
string
Path to access on the HTTP server, defaults to /
port
int32
port to access on the container. defaults to 80 for http and 443 for https Number must be in the range 1 to 65535.
host
string
Host name to connect to. For containers this defaults to the container IP or wan interface IP in host mode networking For device, this is a mandatory parameter
scheme
string
Scheme to use for connecting to the host. optional, defaults to HTTP.
HTTPGetCheck.HTTPHeader Message
HTTPHeader describes a custom header to be used in HTTP HealthChecks
Name
Type
Description
name
string
The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.
value
string
The header field value
ICMPCheck Message
Name
Type
Description
host
string
domain name or IP Addres to perform ICMP check
enable_detailed_metrics
bool
By default only Success or Failure metric will be generated. This field can be used to enable network metrics such as latency/jitter
TCPCheck Message
TCPCheck performs a TCP connect check.
Only TCP handshake is performed. No data is sent
Name
Type
Description
port
int32
Port number to access on the container or given destination. Number must be in the range 1 to 65535.
host
string
Host name to connect to. For containers this defaults to the container IP or wan interface IP in host mode networking For device, this is a mandatory parameter
GRPCCheck Message
Name
Type
Description
port
int32
Port number of the gRPC service. Number must be in the range 1 to 65535.
Host name to connect to. For containers this defaults to the container IP or wan interface IP in host mode networking For device, this is a mandatory parameter
skip_tls_check
bool
ExecCheck Message
ExecCheck describes a “run in container” action.
Name
Type
Description
command
repeated string
Command is the command line to execute inside the container, the working directory for the command is root (’/’) in the container’s filesystem. The command is simply exec’d, it is not run inside a shell, so traditional shell instructions ('
Early Access features are limited to a closed group of testers. To use these features, you must sign up in advance and sign a Trusted Tester agreement (which includes confidentiality provisions). These features may be unstable, changed in backward-incompatible ways, and are not guaranteed to be released.
ALPHA
Alpha is a limited availability test for releases before they are cleared for widespread use. By Alpha, all significant design issues are resolved and we are in the process of verifying functionality. Alpha customers need to apply for access, agree to applicable terms, and have their projects whitelisted. Alpha releases don’t have to be feature complete, no SLAs are provided, and there are no technical support obligations, but they will be far enough along that customers can actually use them in test environments or for limited-use tests – just like they would in normal production cases.
BETA
Beta is the point at which we are ready to open a release for any customer to use. There are no SLA or technical support obligations in a Beta release. Products will be complete from a feature perspective, but may have some open outstanding issues. Beta releases are suitable for limited production use cases.
GA
GA features are open to all developers and are considered stable and fully qualified for production use.
The Status type defines a logical error model that is suitable for
different programming environments, including REST APIs and RPC APIs. It is
used by gRPC. The error model is designed to be:
Simple to use and understand for most users
Flexible enough to meet unexpected needs
Overview
The Status message contains three pieces of data: error code, error
message, and error details. The error code should be an enum value of
[google.rpc.Code][google.rpc.Code], but it may accept additional error codes
if needed. The error message should be a developer-facing English message
that helps developers understand and resolve the error. If a localized
user-facing error message is needed, put the localized message in the error
details or localize it in the client. The optional error details may contain
arbitrary information about the error. There is a predefined set of error
detail types in the package google.rpc that can be used for common error
conditions.
Language mapping
The Status message is the logical representation of the error model, but it
is not necessarily the actual wire format. When the Status message is
exposed in different client libraries and different wire protocols, it can be
mapped differently. For example, it will likely be mapped to some exceptions
in Java, but more likely mapped to some error codes in C.
Other uses
The error model and the Status message can be used in a variety of
environments, either with or without APIs, to provide a
consistent developer experience across different environments.
Example uses of this error model include:
Partial errors. If a service needs to return partial errors to the client,
it may embed the Status in the normal response to indicate the partial
errors.
Workflow errors. A typical workflow has multiple steps. Each step may
have a Status message for error reporting.
Batch operations. If a client uses batch request and batch response, the
Status message should be used directly inside batch response, one for
each error sub-response.
Asynchronous operations. If an API call embeds asynchronous operation
results in its response, the status of those operations should be
represented directly using the Status message.
Logging. If some API errors are stored in logs, the message Status could
be used directly after any stripping needed for security/privacy reasons.
Name
Type
Description
code
int32
The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
message
string
A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
details
repeated .google.protobuf.Any
A list of messages that carry the error details. There is a common set of message types for APIs to use.
13 - DiagnosticsMixin Service APIv1
Understanding the DiagnosticsMixin service APIv1, as known as ntt.mixins.diagnostics.v1.
Here is the list of resources supported in DiagnosticsMixin service
APIv1:
DiagnosticsMixin Service Shared Methods and Messages
DiagnosticsMixin Service Shared Methods
Here is the list of DiagnosticsMixin service shared methods:
Name of LocalLimitTracker, it has following format: regions/{region}/localLimitTrackers/{projectId}/{resourceType}
metadata
.goten.types.Meta
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
service
string
Service to which resource belongs
resource
string
Tracked resource reference
project
string
Project associated with this tracker. The reason why its not included in resource name is because this is a (bit) “hidden” resource - and we dont want project admins being able to modify them.
project_region
string
Primary region ID for project this limit tracker belongs to. It may be different from region of this tracker, because Project may have presence in multiple regions. Limits (limits.edgelq.com/Limit) are managed by primary region, but their trackers are located in their final region.
limit
int64
Maximum number of resources of given type
used
int64
Number currently in use
GetLocalLimitTrackerRequest Message
A request message of the GetLocalLimitTracker method.
Name
Type
Description
name
string
Name of ntt.limits.mixin.v1.LocalLimitTracker
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
view
.goten.types.View
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
BatchGetLocalLimitTrackersRequest Message
A request message of the BatchGetLocalLimitTrackers method.
Name
Type
Description
names
repeated string
Names of LocalLimitTrackers
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
view
.goten.types.View
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
BatchGetLocalLimitTrackersResponse Message
A response message of the BatchGetLocalLimitTrackers method.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
view
.goten.types.View
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_info
bool
Indicates if list response should contain total count and offset (fields current_offset and total_results_count).
ListLocalLimitTrackersResponse Message
A response message of the ListLocalLimitTrackers method.
A token to retrieve previous page of results. Pass this value in the ListLocalLimitTrackersRequest.page_token.
next_page_token
string
A token to retrieve next page of results. Pass this value in the ListLocalLimitTrackersRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total LocalLimitTrackers 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.
WatchLocalLimitTrackerRequest Message
A request message of the WatchLocalLimitTracker method.
Name
Type
Description
name
string
Name of ntt.limits.mixin.v1.LocalLimitTracker
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
view
.goten.types.View
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
WatchLocalLimitTrackerResponse Message
A response message of the WatchLocalLimitTracker method.
A request message of the WatchLocalLimitTrackers method.
Name
Type
Description
type
.goten.types.WatchType
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
parent
string
Parent name of ntt.limits.mixin.v1.LocalLimitTracker
page_size
int32
Requested page size. Server may return fewer LocalLimitTrackers than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_token
string
A token identifying a page of results the server should return. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
filter
string
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to LocalLimitTracker that don’t affect any of masked fields won’t be sent back.
view
.goten.types.View
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to LocalLimitTracker that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchLocalLimitTrackersResponse Message
A response message of the WatchLocalLimitTrackers method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All LocalLimitTrackers 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (LocalLimitTrackers 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteLocalLimitTrackerRequest Message
A request message of the DeleteLocalLimitTracker method.
Name
Type
Description
name
string
Name of ntt.limits.mixin.v1.LocalLimitTracker
LimitsMixin Service Shared Methods and Messages
LimitsMixin Service Shared Messages
Here is the list of LimitsMixin service shared messages:
New version of LocalLimitTracker or masked difference, depending on mask_changes instrumentation of issued [WatchLocalLimitTrackerRequest] or [WatchLocalLimitTrackersRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified LocalLimitTracker. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying LocalLimitTracker new index in resulting query view.
LocalLimitTrackerChange.Removed Message
Removed is returned when LocalLimitTracker is deleted or leaves Query view
Name
Type
Description
name
string
view_index
int32
Integer specifying removed LocalLimitTracker index. Not populated in stateless watch type.
15 - ShardingMixin Service APIv1
Understanding the ShardingMixin service APIv1, as known as ntt.mixins.sharding.v1.
Here is the list of resources supported in ShardingMixin service
APIv1:
ShardingMixin Service Shared Methods and Messages
ShardingMixin Service Shared Methods
Here is the list of ShardingMixin service shared methods:
LocalLimitTracker tracks number of resources of specific kind and ensures
it does not exceed limit. This is local, regional resource with syncing
disabled. This resource is in fact regional representation of
limits.edgelq.com/Limit - however because its part of Mixin service,
each edgelq-based service contains its own collection of it.
This is necessary because we want each application ensure limits
are not exceeded by using transaction guarantee - in each region.
However, for practical reasons, we can say that this resource does
not need to be client facing.
This section covers the methods
and messages to interact
with LocalLimitTracker resource.
LocalLimitTracker Methods
Here is the list of LocalLimitTracker resource methods:
Name of LocalLimitTracker, it has following format: regions/{region}/localLimitTrackers/{projectId}/{resourceType}
service
string
Service to which resource belongs
resource
string
Tracked resource reference
project
string
Project associated with this tracker. The reason why its not included in resource name is because this is a (bit) “hidden” resource - and we dont want project admins being able to modify them.
project_region
string
Primary region ID for project this limit tracker belongs to. It may be different from region of this tracker, because Project may have presence in multiple regions. Limits (limits.edgelq.com/Limit) are managed by primary region, but their trackers are located in their final region.
limit
int64
Maximum number of resources of given type
used
int64
Number currently in use
metadata
.goten.types.Meta
Metadata
GetLocalLimitTrackerRequest Message
A request message of the GetLocalLimitTracker method.
Name
Type
Description
name
string
Name of ntt.limits.mixin.v1alpha2.LocalLimitTracker
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
view
.goten.types.View
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
BatchGetLocalLimitTrackersRequest Message
A request message of the BatchGetLocalLimitTrackers method.
Name
Type
Description
names
repeated string
Names of LocalLimitTrackers
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
view
.goten.types.View
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
BatchGetLocalLimitTrackersResponse Message
A response message of the BatchGetLocalLimitTrackers method.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
view
.goten.types.View
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_info
bool
Indicates if list response should contain total count and offset (fields current_offset and total_results_count).
ListLocalLimitTrackersResponse Message
A response message of the ListLocalLimitTrackers method.
A token to retrieve previous page of results. Pass this value in the ListLocalLimitTrackersRequest.page_token.
next_page_token
string
A token to retrieve next page of results. Pass this value in the ListLocalLimitTrackersRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total LocalLimitTrackers 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.
WatchLocalLimitTrackerRequest Message
A request message of the WatchLocalLimitTracker method.
Name
Type
Description
name
string
Name of ntt.limits.mixin.v1alpha2.LocalLimitTracker
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
view
.goten.types.View
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
WatchLocalLimitTrackerResponse Message
A response message of the WatchLocalLimitTracker method.
A request message of the WatchLocalLimitTrackers method.
Name
Type
Description
type
.goten.types.WatchType
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
parent
string
Parent name of ntt.limits.mixin.v1alpha2.LocalLimitTracker
page_size
int32
Requested page size. Server may return fewer LocalLimitTrackers than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_token
string
A token identifying a page of results the server should return. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
filter
string
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to LocalLimitTracker that don’t affect any of masked fields won’t be sent back.
view
.goten.types.View
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to LocalLimitTracker that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchLocalLimitTrackersResponse Message
A response message of the WatchLocalLimitTrackers method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All LocalLimitTrackers 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (LocalLimitTrackers 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteLocalLimitTrackerRequest Message
A request message of the DeleteLocalLimitTracker method.
Name
Type
Description
name
string
Name of ntt.limits.mixin.v1alpha2.LocalLimitTracker
LimitsMixin Service Shared Methods and Messages
LimitsMixin Service Shared Messages
Here is the list of LimitsMixin service shared messages:
New version of LocalLimitTracker or masked difference, depending on mask_changes instrumentation of issued [WatchLocalLimitTrackerRequest] or [WatchLocalLimitTrackersRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified LocalLimitTracker. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying LocalLimitTracker new index in resulting query view.
LocalLimitTrackerChange.Removed Message
Removed is returned when LocalLimitTracker is deleted or leaves Query view
Name
Type
Description
name
string
view_index
int32
Integer specifying removed LocalLimitTracker index. Not populated in stateless watch type.
18 - MetaMixin Service APIv1alpha2
Understanding the MetaMixin service APIv1alpha2, as known as ntt.meta.mixin.v1alpha2.
Here is the list of resources supported in MetaMixin service
APIv1alpha2:
ResourceShadow is a hidden handle hidden behind each actual resource
in their service-region location (shadows are not present in synced
regions). It is used to enforce database constraints across all
services and regions.
Resource shadow is used for all original resources defined in their
services - it does not support mixin service resources.
This section covers the methods
and messages to interact
with ResourceShadow resource.
ResourceShadow Methods
Here is the list of ResourceShadow resource methods:
Name of ResourceShadow. ID part must contain fully qualified resource name.
resource_type
string
Type of resource for this shadow
version
string
Version of API for this resource. It will be always newest, however, if some service uses older version of imported service, imported service should convert shadows to that lower version. TODO: This is NOT implemented.
Lifecycle indicates current life cycle state of resource.
resource_metadata
.goten.types.Meta
Metadata copy from shadowed resource
ResourceShadow.ServiceRegionPair Message
ServiceRegionPair is a binding of service with region. They are used as
service location, showing where objects of interest are.
Name
Type
Description
service
string
region
string
ResourceShadow.ReferencesState Message
ReferencesState describes all current references a resource has, deletion
behaviors and sources of back refs. It is crucial component in enforcing
database rules regarding reference constraints, garbage collection etc.
It has information about all references, sources od back refs, describes
meta references, blocking, those with asynchronous deletion triggers and
so on - just big block of information.
Name
Type
Description
all
repeated string
List of all referenced resources - both in schema and metadata.
List of all locations with references to this resource. Its a kind of back reference - except we only show locations where they can be found. To obtain them in full, it is required to make List request for each service-region pair and filter must use CONTAINS condition for field “all”.
with_target_del_handlers
repeated string
List of references in schema with asynchronous deletion handler (unset or cascade delete). This list is used by garbage collection functions. Length of this list is the same as target_del_handlers. Each reference in this list corresponds to handler with same position in that other list.
List of all service-region pairs which contain resources that are interested in deletion of this resource, because they have schema references with target deletion behavior (or had). It does not include metadata references, as those are removed using different mechanism.
meta_owners
repeated string
List of all references present in metadata as owners. In comparison with schema references, referencing service may not be aware of referenced service existence.
List of resources blocking current resource that are in the process of creation. By design, blockade is installed on blocked resource before blocking resource is created, so we never end up with dandling blocking reference.
ResourceShadow.Lifecycle Message
Lifecycle describes life stage of current resource and additional
information about tasks that must be executed if it is in pending
or deleting state.
If this flag is true, it means this resource has gained new blocking references (usually as a result from create operation, but not necessarily). Db controller needs to remove tentative blocks from ReferencesState object in target resources. This flag is used when State is equal to PENDING
pending_delete
bool
Pending delete is used by db controller to mark resource as waiting for deletion - but which cannot be deleted yet, because it is being blocked. It means that Delete<Resource> call has not been executed yet. This flag is used when State is equal to PENDING
check_meta_ownees
bool
This flag informs that db controller should iterate over all meta ownee resources, select those with “requires_owner_reference” flag (See type ntt.meta.OwnerReference), and verify if this resource has still strong reference to them - if not, it means they were disowned and need to be cleaned. This flag is used when constraint store notices that some resource unset some of its references and perhaps it affects meta ownees.
check_meta_owners
bool
This flag informs that db controller should iterate over all meta owner references, select those with “requires_owner_reference” flag (See type ntt.meta.OwnerReference), and verify if this resource has strong reference to them - if not, it means they were disowned and need to be cleaned. This flag is set when new meta reference with above flag has been added. Db controller needs to take into account that meta ownee may have been created but transaction for meta owner may be still ongoing, so removal needs proper delay.
TentativeBlockade describes temporary tentative blockade that needs to be
confirmed. Blockades are installed when blocking reference is set for the
first time, but before transaction concludes. It is being removed ASAP by
controller after transaction finishes. If it does not finish, blockade
will be removed after timeout.
Time when blockade was installed. It is used to determine whether transaction should be assumed as failed.
tx_id
string
Tx identifier as chosen by server making write. In conjunction with tx_attempt_counter it may automatically invalidate previous tentative blocks, so we dont rely on timeout.
tx_attempt_counter
int32
Information which tx attempt it is.
GetResourceShadowRequest Message
A request message of the GetResourceShadow method.
Name
Type
Description
name
string
Name of ntt.meta.mixin.v1alpha2.ResourceShadow
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
view
.goten.types.View
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
BatchGetResourceShadowsRequest Message
A request message of the BatchGetResourceShadows method.
Name
Type
Description
names
repeated string
Names of ResourceShadows
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
view
.goten.types.View
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
BatchGetResourceShadowsResponse Message
A response message of the BatchGetResourceShadows method.
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
view
.goten.types.View
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_info
bool
Indicates if list response should contain total count and offset (fields current_offset and total_results_count).
ListResourceShadowsResponse Message
A response message of the ListResourceShadows method.
A token to retrieve previous page of results. Pass this value in the ListResourceShadowsRequest.page_token.
next_page_token
string
A token to retrieve next page of results. Pass this value in the ListResourceShadowsRequest.page_token.
current_offset
int32
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_count
int32
Number of total ResourceShadows 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.
WatchResourceShadowRequest Message
A request message of the WatchResourceShadow method.
Name
Type
Description
name
string
Name of ntt.meta.mixin.v1alpha2.ResourceShadow
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view
view
.goten.types.View
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
WatchResourceShadowResponse Message
A response message of the WatchResourceShadow method.
A request message of the WatchResourceShadows method.
Name
Type
Description
type
.goten.types.WatchType
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_size
int32
Requested page size. Server may return fewer ResourceShadows than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_token
string
A token identifying a page of results the server should return. Can be populated only for stateful watch type.
A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time
.google.protobuf.Timestamp
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
filter
string
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask
.google.protobuf.FieldMask
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to ResourceShadow that don’t affect any of masked fields won’t be sent back.
view
.goten.types.View
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to ResourceShadow that don’t affect any of masked fields won’t be sent back.
max_chunk_size
int32
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.
WatchResourceShadowsResponse Message
A response message of the WatchResourceShadows method.
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All ResourceShadows 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.
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token
string
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_size
int64
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_reset
bool
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_reset
bool
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (ResourceShadows 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.
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
Conditional desired state of a resource before update.
field_mask
.google.protobuf.FieldMask
Field paths from conditional state of resource server should check and compare.
UpdateResourceShadowRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name
Type
Description
skip_entire_response_body
bool
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_only
bool
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask
.google.protobuf.FieldMask
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.
DeleteResourceShadowRequest Message
A request message of the DeleteResourceShadow method.
Name
Type
Description
name
string
Name of ntt.meta.mixin.v1alpha2.ResourceShadow
EstablishReferencesRequest Message
Request message for method
[EstablishReferences][ntt.meta.mixin.v1alpha2.EstablishReferences]
This request is being sent:
by server, when there is a change in references
in some resource (like some new reference has been added…
This request can also be used to change nature of some reference,
like from switch BLOCKING to ASYNC_CASCADE_DELETE in schema).
by db-controller, as a way to confirm connection with meta
owner (shadows_with_new_meta_ownees). Tx fields are not
populated in this case
Requester service indicates service and region location of shadow that is trying to establish reference bindings.
referencing_shadow
string
Shadow with references to new resources.
referenced_shadows
repeated string
List of all NEW referenced shadows - if resource started pointing to some new resource that was not before.
blocked_shadows
repeated string
List of blocking references from referencing shadow.
shadows_with_new_del_subs
repeated string
List of shadows requested to install asynchronous subscription for potential delete operation on requester, because it has references causing asynchronous deletion in schema.
shadows_with_new_meta_ownees
repeated string
List of shadows requested to install asynchronous subscription for potential delete operation on requester, because it has meta references, which, once empty, need to trigger asynchronous deletion.
tx_id
string
Identifier of local transaction on an instance that sent this request. Receiver of EstablishReferencesRequest should check, along with tx_attempt field, if this is not the first request - and if not, if there are things to drop from previous one.
tx_attempt
int32
Indicator (from 1)
ConfirmBlockadesRequest Message
Request message for method
[ConfirmBlockades][ntt.meta.mixin.v1alpha2.ConfirmBlockades]
This method is additional to EstablishReferencesRequest and is
sent by db controller to confirm existence of blocking references.
Referencing shadow that wishes to confirm blocking references.
blocked_shadows
repeated string
List of blocking references that need to be confirmed.
RemoveMetaOwnerReferenceRequest Message
Request message for method
[RemoveMetaOwnerReference][ntt.meta.mixin.v1alpha2.RemoveMetaOwnerReference]
This method is used to notify meta ownees that their parent has
been deleted.
Describes whether reference should be only unset or perhaps
owning resource should be deleted.
Name
Description
UNDEFINED
CASCADE_DELETE
UNSET
ResourceShadow.Lifecycle.State Enumeration
State points to the current resource state. Some states are watched
by db controller.
Name
Description
UNDEFINED
Never used
ACTIVE
Active is the default state where resource will spend 99.9% of its life time. Resource is fully functioning and db controller does not need to bother with it.
PENDING
Pending state describes resource that already is fully visible and functioning in database - but requires some attention from db controller, because some references have changed recently.
DELETING
Deleting state indicates that delete operation was already executed on resource. Proper resource is already deleted from database (TODO: we need to add deletion with progress bar, where original resource remains in db despite delete method already executed). Shadow will exist in this state until all deletion handlers are executed.
MetaMixin Service Shared Methods and Messages
MetaMixin Service Shared Messages
Here is the list of MetaMixin service shared messages:
New version of ResourceShadow or masked difference, depending on mask_changes instrumentation of issued [WatchResourceShadowRequest] or [WatchResourceShadowsRequest]
field_mask
.google.protobuf.FieldMask
Used when mask_changes is set, contains field paths of modified properties.
previous_view_index
int32
Previous view index specifies previous position of modified ResourceShadow. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index
int32
Integer specifying ResourceShadow new index in resulting query view.
ResourceShadowChange.Removed Message
Removed is returned when ResourceShadow is deleted or leaves Query view
Name
Type
Description
name
string
view_index
int32
Integer specifying removed ResourceShadow index. Not populated in stateless watch type.