import { OwnerResource, PageContent, Pagination, StringAnyMap } from '../CommonTypes'; export interface DeviceAvailability { /**User inquiring about availability*/ user?: string; /**Optional resource name, used to distinguish between two sessions of the same user on different devices. A given device SHOULD provide a resource name, and SHOULD always use the same resource name (it needs to be persisted by the client code)*/ resource?: string; /**Whether the device is available or not*/ available?: boolean; /**Context ID. Clients and developers must not pass this explicitly. This value is generated by the server and can be passed back by the worker SDKs.*/ contextId?: string; /**Session id of the answering device*/ uid?: string; /**Optional User key. When calling the API, defaults to the current (calling) user's primary key. For impersonation purposes, the caller may use the key of another user, provided that the proper authorizations have been given by the impersonated user*/ owner?: string; /**Action for which the device's availability is tested*/ action?: string; } export interface DeviceCapabilities { /**Resource name of the asking device*/ askingResource?: string; /**List of capabilities. Capabilities are developer-defined strings*/ capabilities?: string[]; /**Resource name of the answering device*/ answeringResource?: string; } export interface Grant { /**Resource on which the grant applies. For API defined resources, it often has the syntax deploymentId:owner:preciseResource. For example to give access to a gda table, it may look like 'gda_0:wshwWSDOJSD:myTable' , gda_0 being the gda deploymentId, wshwWSDOJSD the data owner, and myTable the table to be shared. For grants on user devices, it can match the resource field used during authentication. You can use the wildcard '*'*/ resource: string; /**Context ID. Clients and developers must not pass this explicitly. This value is generated by the server and can be passed back by the worker SDKs.*/ contextId?: string; /**User field for traceability of requests. Synchronous SDK APIs use this field for you.*/ requestId?: string; /**Group id. Must be alphanumerical. You MAY use the wildcard '*' when granting rights.*/ group: string; /**Optional User key. When calling the API, defaults to the current (calling) user's primary key. For impersonation purposes, the caller may use the key of another user, provided that the proper authorizations have been given by the impersonated user*/ owner?: string; /**Action which will be authorized. For built-in API verbs, it is often the verb itself. You can use the wildcard '*'*/ action: string; } export interface GrantCheckRequest { /**The user needing authorization*/ user?: string; /**The resource to check*/ resource?: string; /**Context ID. Clients and developers must not pass this explicitly. This value is generated by the server and can be passed back by the worker SDKs.*/ contextId?: string; /**User field for traceability of requests. Synchronous SDK APIs use this field for you.*/ requestId?: string; /**Optional User key. When calling the API, defaults to the current (calling) user's primary key. For impersonation purposes, the caller may use the key of another user, provided that the proper authorizations have been given by the impersonated user*/ owner?: string; /**The action to check*/ action?: string; } export interface GrantCheckResult { /**The request*/ request?: GrantCheckRequest; /**True when the check passed*/ ok?: boolean; /**User field for traceability of requests. The value was generated by the client requester.*/ requestId?: string; } export interface GrantList { /**Context ID. Clients and developers must not pass this explicitly. This value is generated by the server and can be passed back by the worker SDKs.*/ contextId?: string; /**List of granted rights*/ grants?: GrantListItem[]; /**User field for traceability of requests. Synchronous SDK APIs use this field for you.*/ requestId?: string; /**Group id. Must be alphanumerical. You MAY use the wildcard '*' when granting rights.*/ group: string; /**Optional User key. When calling the API, defaults to the current (calling) user's primary key. For impersonation purposes, the caller may use the key of another user, provided that the proper authorizations have been given by the impersonated user*/ owner?: string; } export interface GrantListItem { /**Configured authorized resource*/ resource?: string; /**Configured authorized action*/ action?: string; } export interface Grants { /**Resource on which the grant applies. For API defined resources, it often has the syntax deploymentId:owner:preciseResource. For example to give access to a gda table, it may look like 'gda_0:wshwWSDOJSD:myTable' , gda_0 being the gda deploymentId, wshwWSDOJSD the data owner, and myTable the table to be shared. For grants on user devices, it can match the resource field used during authentication. You can use the wildcard '*'*/ resource: string; /**Context ID. Clients and developers must not pass this explicitly. This value is generated by the server and can be passed back by the worker SDKs.*/ contextId?: string; /**Actions which will be authorized. For built-in API verbs, it is often the verb itself. You can use the wildcard '*'*/ actions: string[]; /**User field for traceability of requests. Synchronous SDK APIs use this field for you.*/ requestId?: string; /**Group id. Must be alphanumerical. You MAY use the wildcard '*' when granting rights.*/ group: string; /**Optional User key. When calling the API, defaults to the current (calling) user's primary key. For impersonation purposes, the caller may use the key of another user, provided that the proper authorizations have been given by the impersonated user*/ owner?: string; } export interface GroupExistence { /**Existence of the group*/ exists?: boolean; /**Context ID. Clients and developers must not pass this explicitly. This value is generated by the server and can be passed back by the worker SDKs.*/ contextId?: string; /**User field for traceability of requests. Synchronous SDK APIs use this field for you.*/ requestId?: string; /**Group id. Must be alphanumerical. You MAY use the wildcard '*' when granting rights.*/ group: string; /**Group name, as displayed to the user*/ groupName?: string; /**Optional User key. When calling the API, defaults to the current (calling) user's primary key. For impersonation purposes, the caller may use the key of another user, provided that the proper authorizations have been given by the impersonated user*/ owner?: string; } export interface GroupInfo { /**Context ID. Clients and developers must not pass this explicitly. This value is generated by the server and can be passed back by the worker SDKs.*/ contextId?: string; /**User field for traceability of requests. Synchronous SDK APIs use this field for you.*/ requestId?: string; /**Group id. Must be alphanumerical. You MAY use the wildcard '*' when granting rights.*/ group: string; /**Group name, as displayed to the user*/ groupName?: string; /**Optional User key. When calling the API, defaults to the current (calling) user's primary key. For impersonation purposes, the caller may use the key of another user, provided that the proper authorizations have been given by the impersonated user*/ owner?: string; } export interface GroupPresence { /**Context ID. Clients and developers must not pass this explicitly. This value is generated by the server and can be passed back by the worker SDKs.*/ contextId?: string; /**User field for traceability of requests. Synchronous SDK APIs use this field for you.*/ requestId?: string; /**Group id. Must be alphanumerical. You MAY use the wildcard '*' when granting rights.*/ group: string; /**Optional User key. When calling the API, defaults to the current (calling) user's primary key. For impersonation purposes, the caller may use the key of another user, provided that the proper authorizations have been given by the impersonated user*/ owner?: string; /**List of group users, with their presence information.*/ presences?: Presence[]; } export interface GroupRelated { /**Context ID. Clients and developers must not pass this explicitly. This value is generated by the server and can be passed back by the worker SDKs.*/ contextId?: string; /**User field for traceability of requests. Synchronous SDK APIs use this field for you.*/ requestId?: string; /**Group id. Must be alphanumerical. You MAY use the wildcard '*' when granting rights.*/ group: string; /**Optional User key. When calling the API, defaults to the current (calling) user's primary key. For impersonation purposes, the caller may use the key of another user, provided that the proper authorizations have been given by the impersonated user*/ owner?: string; } export interface GroupRelatedAndPaged { /**Context ID. Clients and developers must not pass this explicitly. This value is generated by the server and can be passed back by the worker SDKs.*/ contextId?: string; /**User field for traceability of requests. Synchronous SDK APIs use this field for you.*/ requestId?: string; /**Group id. Must be alphanumerical. You MAY use the wildcard '*' when granting rights.*/ group: string; /**Optional User key. When calling the API, defaults to the current (calling) user's primary key. For impersonation purposes, the caller may use the key of another user, provided that the proper authorizations have been given by the impersonated user*/ owner?: string; /**Pagination information*/ page?: Pagination; } export interface GroupUsers { /**Context ID. Clients and developers must not pass this explicitly. This value is generated by the server and can be passed back by the worker SDKs.*/ contextId?: string; /**User keys of the group members*/ users?: string[]; /**User field for traceability of requests. Synchronous SDK APIs use this field for you.*/ requestId?: string; /**Group id. Must be alphanumerical. You MAY use the wildcard '*' when granting rights.*/ group: string; /**Group name, as displayed to the user*/ groupName?: string; /**Optional User key. When calling the API, defaults to the current (calling) user's primary key. For impersonation purposes, the caller may use the key of another user, provided that the proper authorizations have been given by the impersonated user*/ owner?: string; } export interface ImpersonatedRequest { /**Context ID. Clients and developers must not pass this explicitly. This value is generated by the server and can be passed back by the worker SDKs.*/ contextId?: string; /**Optional User key. When calling the API, defaults to the current (calling) user's primary key. For impersonation purposes, the caller may use the key of another user, provided that the proper authorizations have been given by the impersonated user*/ owner?: string; } export interface JoinedGroups { /**Groups joined by the user.*/ groups?: PageContent; /**Context ID. Clients and developers must not pass this explicitly. This value is generated by the server and can be passed back by the worker SDKs.*/ contextId?: string; /**User field for traceability of requests. Synchronous SDK APIs use this field for you.*/ requestId?: string; /**Optional User key. When calling the API, defaults to the current (calling) user's primary key. For impersonation purposes, the caller may use the key of another user, provided that the proper authorizations have been given by the impersonated user*/ owner?: string; } export interface OwnedGroups { /**Groups owned by the user.*/ groups?: PageContent; /**Context ID. Clients and developers must not pass this explicitly. This value is generated by the server and can be passed back by the worker SDKs.*/ contextId?: string; /**User field for traceability of requests. Synchronous SDK APIs use this field for you.*/ requestId?: string; /**Optional User key. When calling the API, defaults to the current (calling) user's primary key. For impersonation purposes, the caller may use the key of another user, provided that the proper authorizations have been given by the impersonated user*/ owner?: string; } export interface OwnedGroupsWithDetails { /**Detailed groups owned by the user.*/ groups?: PageContent; /**Context ID. Clients and developers must not pass this explicitly. This value is generated by the server and can be passed back by the worker SDKs.*/ contextId?: string; /**User field for traceability of requests. Synchronous SDK APIs use this field for you.*/ requestId?: string; /**Optional User key. When calling the API, defaults to the current (calling) user's primary key. For impersonation purposes, the caller may use the key of another user, provided that the proper authorizations have been given by the impersonated user*/ owner?: string; } export interface PagedGrantList { /**Context ID. Clients and developers must not pass this explicitly. This value is generated by the server and can be passed back by the worker SDKs.*/ contextId?: string; /**List of granted rights*/ grants?: PageContent; /**User field for traceability of requests. Synchronous SDK APIs use this field for you.*/ requestId?: string; /**Group id. Must be alphanumerical. You MAY use the wildcard '*' when granting rights.*/ group: string; /**Optional User key. When calling the API, defaults to the current (calling) user's primary key. For impersonation purposes, the caller may use the key of another user, provided that the proper authorizations have been given by the impersonated user*/ owner?: string; } export interface PagedGroupPresence { /**Context ID. Clients and developers must not pass this explicitly. This value is generated by the server and can be passed back by the worker SDKs.*/ contextId?: string; /**User field for traceability of requests. Synchronous SDK APIs use this field for you.*/ requestId?: string; /**Group id. Must be alphanumerical. You MAY use the wildcard '*' when granting rights.*/ group: string; /**Optional User key. When calling the API, defaults to the current (calling) user's primary key. For impersonation purposes, the caller may use the key of another user, provided that the proper authorizations have been given by the impersonated user*/ owner?: string; /**List of group users, with their presence information.*/ presences?: PageContent; } export interface PingRequest { /**The action to probe*/ action: string; } export interface Presence { /**User information*/ user?: OwnerResource; /**Presence status. OFF or ON*/ presence?: string; /**Group information*/ group?: GroupRelated; } export interface RemoteCommand { /**Optional resource name, used to distinguish between two sessions of the same user on different devices. A given device SHOULD provide a resource name, and SHOULD always use the same resource name (it needs to be persisted by the client code)*/ resource?: string; /**Resource of the user issuing the command*/ fromResource?: string; /**Command to be executed. This is an arbitrary identifier string whose semantics are left to the developer.*/ cmd: string; /**Context ID. Clients and developers must not pass this explicitly. This value is generated by the server and can be passed back by the worker SDKs.*/ contextId?: string; /**User issuing the command*/ from?: string; /**Optional data payload for the command. This is an arbitrary object whose semantics are left to the developer.*/ data?: StringAnyMap; /**Optional User key. When calling the API, defaults to the current (calling) user's primary key. For impersonation purposes, the caller may use the key of another user, provided that the proper authorizations have been given by the impersonated user*/ owner?: string; } export interface TraceablePaginatedImpersonatedRequest { /**Context ID. Clients and developers must not pass this explicitly. This value is generated by the server and can be passed back by the worker SDKs.*/ contextId?: string; /**User field for traceability of requests. Synchronous SDK APIs use this field for you.*/ requestId?: string; /**Optional User key. When calling the API, defaults to the current (calling) user's primary key. For impersonation purposes, the caller may use the key of another user, provided that the proper authorizations have been given by the impersonated user*/ owner?: string; /**Pagination information*/ page?: Pagination; } export interface UserGroup { /**The user's key (as in __userKey)*/ user?: string; /**Context ID. Clients and developers must not pass this explicitly. This value is generated by the server and can be passed back by the worker SDKs.*/ contextId?: string; /**User field for traceability of requests. Synchronous SDK APIs use this field for you.*/ requestId?: string; /**Group id. Must be alphanumerical. You MAY use the wildcard '*' when granting rights.*/ group: string; /**Optional User key. When calling the API, defaults to the current (calling) user's primary key. For impersonation purposes, the caller may use the key of another user, provided that the proper authorizations have been given by the impersonated user*/ owner?: string; } export interface UserGroupMembership { /**The user's key (as in __userKey)*/ user?: string; /**Context ID. Clients and developers must not pass this explicitly. This value is generated by the server and can be passed back by the worker SDKs.*/ contextId?: string; /**Whether the user is member of the group*/ member?: boolean; /**User field for traceability of requests. Synchronous SDK APIs use this field for you.*/ requestId?: string; /**Group id. Must be alphanumerical. You MAY use the wildcard '*' when granting rights.*/ group: string; /**Optional User key. When calling the API, defaults to the current (calling) user's primary key. For impersonation purposes, the caller may use the key of another user, provided that the proper authorizations have been given by the impersonated user*/ owner?: string; } export interface UserMembership { /**The user's key (as in __userKey)*/ user?: string; /**Context ID. Clients and developers must not pass this explicitly. This value is generated by the server and can be passed back by the worker SDKs.*/ contextId?: string; /**True if lack of effective membership should be treated as an error. False to return the information as a boolean in the response.*/ hardFail?: boolean; /**User field for traceability of requests. Synchronous SDK APIs use this field for you.*/ requestId?: string; /**Group id. Must be alphanumerical. You MAY use the wildcard '*' when granting rights.*/ group: string; /**Optional User key. When calling the API, defaults to the current (calling) user's primary key. For impersonation purposes, the caller may use the key of another user, provided that the proper authorizations have been given by the impersonated user*/ owner?: string; }