From 04ed7dc2ece0f008e80d7a2a5e475083f123d5fd Mon Sep 17 00:00:00 2001 From: Jeffrey Aven Date: Fri, 29 Aug 2025 12:51:07 +1000 Subject: [PATCH 1/3] googleadmin update --- .../googleadmin/v00.00.00000/provider.yaml | 11 +- .../v00.00.00000/services/directory.yaml | 11472 +++++++++------- 2 files changed, 6516 insertions(+), 4967 deletions(-) diff --git a/providers/src/googleadmin/v00.00.00000/provider.yaml b/providers/src/googleadmin/v00.00.00000/provider.yaml index b839a26b..b212268c 100644 --- a/providers/src/googleadmin/v00.00.00000/provider.yaml +++ b/providers/src/googleadmin/v00.00.00000/provider.yaml @@ -3,19 +3,18 @@ name: googleadmin version: v00.00.00000 providerServices: directory: - id: 'directory:v00.00.00000' + id: directory:v00.00.00000 name: directory preferred: true service: $ref: googleadmin/v00.00.00000/services/directory.yaml title: Admin SDK API version: v00.00.00000 - description: 'Admin SDK Lets Administrators Of Enterprise Domains To View And Manage Resources Like User, Groups Etc. It Also Provides Audit And Usage Reports Of Domain.' + description: >- + Admin SDK lets administrators of enterprise domains to view and manage + resources like user, groups etc. It also provides audit and usage reports + of domain. config: auth: credentialsenvvar: GOOGLE_CREDENTIALS type: service_account - scopes: - - 'https://www.googleapis.com/auth/cloud-platform' - - 'https://www.googleapis.com/auth/admin.directory.user.readonly' - - 'https://www.googleapis.com/auth/admin.directory.group.readonly' diff --git a/providers/src/googleadmin/v00.00.00000/services/directory.yaml b/providers/src/googleadmin/v00.00.00000/services/directory.yaml index 558ebdd1..b401926c 100644 --- a/providers/src/googleadmin/v00.00.00000/services/directory.yaml +++ b/providers/src/googleadmin/v00.00.00000/services/directory.yaml @@ -2,17 +2,20 @@ openapi: 3.1.0 info: contact: name: StackQL Studios - url: 'https://github.com/stackql/google-discovery-to-openapi' + url: https://github.com/stackql/google-discovery-to-openapi email: info@stackql.io title: Admin SDK API - description: 'Admin SDK lets administrators of enterprise domains to view and manage resources like user, groups etc. It also provides audit and usage reports of domain.' + description: >- + Admin SDK lets administrators of enterprise domains to view and manage + resources like user, groups etc. It also provides audit and usage reports of + domain. version: directory_v1 - x-discovery-doc-revision: '20230704' - x-generated-date: '2023-07-10' + x-discovery-doc-revision: '20250825' + x-generated-date: '2025-08-28' externalDocs: - url: 'https://developers.google.com/admin-sdk/' + url: https://developers.google.com/workspace/admin/ servers: - - url: 'https://admin.googleapis.com' + - url: https://admin.googleapis.com components: securitySchemes: Oauth2: @@ -20,4173 +23,5838 @@ components: description: Oauth 2.0 implicit authentication flows: implicit: - authorizationUrl: 'https://accounts.google.com/o/oauth2/auth' + authorizationUrl: https://accounts.google.com/o/oauth2/auth scopes: &ref_0 - 'https://www.googleapis.com/auth/admin.directory.customer.readonly': View customer related information - 'https://www.googleapis.com/auth/admin.directory.userschema.readonly': View user schemas on your domain - 'https://www.googleapis.com/auth/admin.directory.resource.calendar': View and manage the provisioning of calendar resources on your domain - 'https://www.googleapis.com/auth/admin.directory.orgunit': View and manage organization units on your domain - 'https://www.googleapis.com/auth/cloud-platform': 'See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account.' - 'https://www.googleapis.com/auth/admin.directory.device.chromeos': View and manage your Chrome OS devices' metadata - 'https://www.googleapis.com/auth/admin.directory.user.alias': View and manage user aliases on your domain - 'https://www.googleapis.com/auth/admin.directory.userschema': View and manage the provisioning of user schemas on your domain - 'https://www.googleapis.com/auth/admin.directory.group.member.readonly': View group subscriptions on your domain - 'https://www.googleapis.com/auth/admin.chrome.printers': 'See, add, edit, and permanently delete the printers that your organization can use with Chrome' - 'https://www.googleapis.com/auth/admin.directory.group.member': View and manage group subscriptions on your domain - 'https://www.googleapis.com/auth/admin.directory.rolemanagement': Manage delegated admin roles for your domain - 'https://www.googleapis.com/auth/admin.directory.user.readonly': See info about users on your domain - 'https://www.googleapis.com/auth/admin.directory.device.mobile.readonly': View your mobile devices' metadata - 'https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly': View your Chrome OS devices' metadata - 'https://www.googleapis.com/auth/admin.directory.user.alias.readonly': View user aliases on your domain - 'https://www.googleapis.com/auth/admin.directory.group': View and manage the provisioning of groups on your domain - 'https://www.googleapis.com/auth/admin.directory.group.readonly': View groups on your domain - 'https://www.googleapis.com/auth/admin.directory.device.mobile': View and manage your mobile devices' metadata - 'https://www.googleapis.com/auth/admin.directory.user': View and manage the provisioning of users on your domain - 'https://www.googleapis.com/auth/admin.directory.domain.readonly': View domains related to your customers - 'https://www.googleapis.com/auth/admin.directory.user.security': Manage data access permissions for users on your domain - 'https://www.googleapis.com/auth/admin.directory.domain': View and manage the provisioning of domains for your customers - 'https://www.googleapis.com/auth/admin.directory.device.mobile.action': Manage your mobile devices by performing administrative tasks - 'https://www.googleapis.com/auth/admin.directory.customer': View and manage customer related information - 'https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly': View delegated admin roles for your domain - 'https://www.googleapis.com/auth/admin.directory.orgunit.readonly': View organization units on your domain - 'https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly': View calendar resources on your domain - 'https://www.googleapis.com/auth/admin.chrome.printers.readonly': See the printers that your organization can use with Chrome + https://www.googleapis.com/auth/admin.chrome.printers: >- + See, add, edit, and permanently delete the printers that your + organization can use with Chrome + https://www.googleapis.com/auth/admin.chrome.printers.readonly: See the printers that your organization can use with Chrome + https://www.googleapis.com/auth/admin.directory.customer: View and manage customer related information + https://www.googleapis.com/auth/admin.directory.customer.readonly: View customer related information + https://www.googleapis.com/auth/admin.directory.device.chromeos: View and manage your ChromeOS devices' metadata + https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly: View your ChromeOS devices' metadata + https://www.googleapis.com/auth/admin.directory.device.mobile: View and manage your mobile devices' metadata + https://www.googleapis.com/auth/admin.directory.device.mobile.action: Manage your mobile devices by performing administrative tasks + https://www.googleapis.com/auth/admin.directory.device.mobile.readonly: View your mobile devices' metadata + https://www.googleapis.com/auth/admin.directory.domain: View and manage the provisioning of domains for your customers + https://www.googleapis.com/auth/admin.directory.domain.readonly: View domains related to your customers + https://www.googleapis.com/auth/admin.directory.group: View and manage the provisioning of groups on your domain + https://www.googleapis.com/auth/admin.directory.group.member: View and manage group subscriptions on your domain + https://www.googleapis.com/auth/admin.directory.group.member.readonly: View group subscriptions on your domain + https://www.googleapis.com/auth/admin.directory.group.readonly: View groups on your domain + https://www.googleapis.com/auth/admin.directory.orgunit: View and manage organization units on your domain + https://www.googleapis.com/auth/admin.directory.orgunit.readonly: View organization units on your domain + https://www.googleapis.com/auth/admin.directory.resource.calendar: >- + View and manage the provisioning of calendar resources on your + domain + https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly: View calendar resources on your domain + https://www.googleapis.com/auth/admin.directory.rolemanagement: Manage delegated admin roles for your domain + https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly: View delegated admin roles for your domain + https://www.googleapis.com/auth/admin.directory.user: View and manage the provisioning of users on your domain + https://www.googleapis.com/auth/admin.directory.user.alias: View and manage user aliases on your domain + https://www.googleapis.com/auth/admin.directory.user.alias.readonly: View user aliases on your domain + https://www.googleapis.com/auth/admin.directory.user.readonly: See info about users on your domain + https://www.googleapis.com/auth/admin.directory.user.security: Manage data access permissions for users on your domain + https://www.googleapis.com/auth/admin.directory.userschema: View and manage the provisioning of user schemas on your domain + https://www.googleapis.com/auth/admin.directory.userschema.readonly: View user schemas on your domain + https://www.googleapis.com/auth/cloud-platform: >- + See, edit, configure, and delete your Google Cloud data and see + the email address for your Google Account. Oauth2c: type: oauth2 description: Oauth 2.0 authorization code authentication flows: authorizationCode: - authorizationUrl: 'https://accounts.google.com/o/oauth2/auth' - tokenUrl: 'https://accounts.google.com/o/oauth2/token' + authorizationUrl: https://accounts.google.com/o/oauth2/auth + tokenUrl: https://accounts.google.com/o/oauth2/token scopes: *ref_0 schemas: - UserName: + ListPrinterModelsResponse: + id: ListPrinterModelsResponse + description: Response for listing allowed printer models. + type: object properties: - displayName: - description: 'The user''s display name. Limit: 256 characters.' + printerModels: + description: >- + Printer models that are currently allowed to be configured for + ChromeOs. Some printers may be added or removed over time. + type: array + items: + $ref: '#/components/schemas/PrinterModel' + nextPageToken: + description: >- + A token, which can be sent as `page_token` to retrieve the next + page. If this field is omitted, there are no subsequent pages. type: string - fullName: - description: The user's full name formed by concatenating the first and last name values. + PrinterModel: + id: PrinterModel + description: Printer manufacturer and model + type: object + properties: + manufacturer: + description: Manufacturer. eq. "Brother" type: string - givenName: - description: The user's first name. Required when creating a user account. - annotations: - required: - - directory.users.insert + displayName: + description: Display name. eq. "Brother MFC-8840D" type: string - familyName: - description: The user's last name. Required when creating a user account. + makeAndModel: + description: >- + Make and model as represented in "make_and_model" field in Printer + object. eq. "brother mfc-8840d" type: string - annotations: - required: - - directory.users.insert - id: UserName - type: object - RoleAssignments: + ListPrintersResponse: + id: ListPrintersResponse + description: Response for listing printers. type: object properties: - etag: - type: string - description: ETag of the resource. - nextPageToken: - type: string - items: + printers: + description: >- + List of printers. If `org_unit_id` was given in the request, then + only printers visible for this OU will be returned. If `org_unit_id` + was not given in the request, then all printers will be returned. type: array items: - $ref: '#/components/schemas/RoleAssignment' - description: A list of RoleAssignment resources. - kind: - description: The type of the API resource. This is always `admin#directory#roleAssignments`. - default: admin#directory#roleAssignments + $ref: '#/components/schemas/Printer' + nextPageToken: + description: >- + A token, which can be sent as `page_token` to retrieve the next + page. If this field is omitted, there are no subsequent pages. type: string - id: RoleAssignments - Channel: + Printer: + id: Printer + description: Printer configuration. type: object - description: An notification channel used to watch for resource changes. properties: - params: - type: object - description: 'Additional parameters controlling delivery channel behavior. Optional. For example, `params.ttl` specifies the time-to-live in seconds for the notification channel, where the default is 2 hours and the maximum TTL is 2 days.' - additionalProperties: - type: string - resourceId: - description: An opaque ID that identifies the resource being watched on this channel. Stable across different API versions. - type: string - address: + name: + description: >- + Identifier. The resource name of the Printer object, in the format + customers/{customer-id}/printers/{printer-id} (During printer + creation leave empty) type: string - description: The address where notifications are delivered for this channel. id: - description: A UUID or similar unique string that identifies this channel. + description: Id of the printer. (During printer creation leave empty) type: string - type: + displayName: + description: Editable. Name of printer. type: string - description: The type of delivery mechanism used for this channel. - payload: - description: A Boolean value to indicate whether payload is wanted. Optional. - type: boolean - token: - description: An arbitrary string delivered to the target address with each notification delivered over this channel. Optional. + description: + description: Editable. Description of printer. type: string - resourceUri: + makeAndModel: + description: >- + Editable. Make and model of printer. e.g. Lexmark MS610de Value must + be in format as seen in ListPrinterModels response. type: string - description: A version-specific identifier for the watched resource. - expiration: + uri: + description: Editable. Printer URI. type: string - format: int64 - description: 'Date and time of notification channel expiration, expressed as a Unix timestamp, in milliseconds. Optional.' - kind: - default: api#channel - description: 'Identifies this as a notification channel used to watch for changes to a resource, which is `api#channel`.' + createTime: + description: Output only. Time when printer was created. + readOnly: true type: string - id: Channel - CalendarResources: - properties: - kind: - default: admin#directory#resources#calendars#calendarResourcesList + format: google-datetime + orgUnitId: + description: >- + Organization Unit that owns this printer (Only can be set during + Printer creation) type: string - description: Identifies this as a collection of CalendarResources. This is always `admin#directory#resources#calendars#calendarResourcesList`. - items: + auxiliaryMessages: + description: >- + Output only. Auxiliary messages about issues with the printer + configuration if any. + readOnly: true type: array - description: The CalendarResources in this page of results. items: - $ref: '#/components/schemas/CalendarResource' - nextPageToken: + $ref: '#/components/schemas/AuxiliaryMessage' + useDriverlessConfig: + description: >- + Editable. flag to use driverless configuration or not. If it's set + to be true, make_and_model can be ignored + type: boolean + AuxiliaryMessage: + id: AuxiliaryMessage + description: >- + Auxiliary message about issues with printers or settings. Example: + {message_type:AUXILIARY_MESSAGE_WARNING, field_mask:make_and_model, + message:"Given printer is invalid or no longer supported."} + type: object + properties: + severity: + description: Message severity type: string - description: 'The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results.' - etag: - description: ETag of the resource. + enumDescriptions: + - Message type unspecified. + - 'Message of severity: info.' + - 'Message of severity: warning.' + - 'Message of severity: error.' + enum: + - SEVERITY_UNSPECIFIED + - SEVERITY_INFO + - SEVERITY_WARNING + - SEVERITY_ERROR + fieldMask: + description: Field that this message concerns. type: string - id: CalendarResources + format: google-fieldmask + auxiliaryMessage: + description: >- + Human readable message in English. Example: "Given printer is + invalid or no longer supported." + type: string + BatchCreatePrintersRequest: + id: BatchCreatePrintersRequest + description: Request for adding new printers in batch. type: object - description: 'Public API: Resources.calendars' - VerificationCodes: - description: JSON response template for list verification codes operation in Directory API. - id: VerificationCodes properties: - etag: - type: string - description: ETag of the resource. - kind: - description: The type of the resource. This is always `admin#directory#verificationCodesList`. + requests: + description: A list of Printers to be created. Max 50 at a time. + type: array + items: + $ref: '#/components/schemas/CreatePrinterRequest' + CreatePrinterRequest: + id: CreatePrinterRequest + description: Request for adding a new printer. + type: object + properties: + parent: + description: 'Required. The name of the customer. Format: customers/{customer_id}' type: string - default: admin#directory#verificationCodesList - items: + printer: + description: >- + Required. A printer to create. If you want to place the printer + under particular OU then populate printer.org_unit_id filed. + Otherwise the printer will be placed under root OU. + $ref: '#/components/schemas/Printer' + BatchCreatePrintersResponse: + id: BatchCreatePrintersResponse + description: Response for adding new printers in batch. + type: object + properties: + printers: + description: A list of successfully created printers with their IDs populated. + type: array items: - $ref: '#/components/schemas/VerificationCode' - description: A list of verification code resources. + $ref: '#/components/schemas/Printer' + failures: + description: >- + A list of create failures. Printer IDs are not populated, as printer + were not created. type: array + items: + $ref: '#/components/schemas/FailureInfo' + FailureInfo: + id: FailureInfo + description: Info about failures type: object - PrinterModel: - id: PrinterModel - description: Printer manufacturer and model properties: - manufacturer: + printerId: + description: Id of a failed printer. type: string - description: Manufacturer. eq. "Brother" - displayName: + printer: + description: Failed printer. + $ref: '#/components/schemas/Printer' + errorCode: + description: Canonical code for why the update failed to apply. type: string - description: Display name. eq. "Brother MFC-8840D" - makeAndModel: - description: Make and model as represented in "make_and_model" field in Printer object. eq. "brother mfc-8840d" + enumDescriptions: + - 'Not an error; returned on success. HTTP Mapping: 200 OK' + - >- + The operation was cancelled, typically by the caller. HTTP + Mapping: 499 Client Closed Request + - >- + Unknown error. For example, this error may be returned when a + `Status` value received from another address space belongs to an + error space that is not known in this address space. Also errors + raised by APIs that do not return enough error information may be + converted to this error. HTTP Mapping: 500 Internal Server Error + - >- + The client specified an invalid argument. Note that this differs + from `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates arguments + that are problematic regardless of the state of the system (e.g., + a malformed file name). HTTP Mapping: 400 Bad Request + - >- + The deadline expired before the operation could complete. For + operations that change the state of the system, this error may be + returned even if the operation has completed successfully. For + example, a successful response from a server could have been + delayed long enough for the deadline to expire. HTTP Mapping: 504 + Gateway Timeout + - >- + Some requested entity (e.g., file or directory) was not found. + Note to server developers: if a request is denied for an entire + class of users, such as gradual feature rollout or undocumented + allowlist, `NOT_FOUND` may be used. If a request is denied for + some users within a class of users, such as user-based access + control, `PERMISSION_DENIED` must be used. HTTP Mapping: 404 Not + Found + - >- + The entity that a client attempted to create (e.g., file or + directory) already exists. HTTP Mapping: 409 Conflict + - >- + The caller does not have permission to execute the specified + operation. `PERMISSION_DENIED` must not be used for rejections + caused by exhausting some resource (use `RESOURCE_EXHAUSTED` + instead for those errors). `PERMISSION_DENIED` must not be used if + the caller can not be identified (use `UNAUTHENTICATED` instead + for those errors). This error code does not imply the request is + valid or the requested entity exists or satisfies other + pre-conditions. HTTP Mapping: 403 Forbidden + - >- + The request does not have valid authentication credentials for the + operation. HTTP Mapping: 401 Unauthorized + - >- + Some resource has been exhausted, perhaps a per-user quota, or + perhaps the entire file system is out of space. HTTP Mapping: 429 + Too Many Requests + - >- + The operation was rejected because the system is not in a state + required for the operation's execution. For example, the directory + to be deleted is non-empty, an rmdir operation is applied to a + non-directory, etc. Service implementors can use the following + guidelines to decide between `FAILED_PRECONDITION`, `ABORTED`, and + `UNAVAILABLE`: (a) Use `UNAVAILABLE` if the client can retry just + the failing call. (b) Use `ABORTED` if the client should retry at + a higher level. For example, when a client-specified test-and-set + fails, indicating the client should restart a read-modify-write + sequence. (c) Use `FAILED_PRECONDITION` if the client should not + retry until the system state has been explicitly fixed. For + example, if an "rmdir" fails because the directory is non-empty, + `FAILED_PRECONDITION` should be returned since the client should + not retry unless the files are deleted from the directory. HTTP + Mapping: 400 Bad Request + - >- + The operation was aborted, typically due to a concurrency issue + such as a sequencer check failure or transaction abort. See the + guidelines above for deciding between `FAILED_PRECONDITION`, + `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 409 Conflict + - >- + The operation was attempted past the valid range. E.g., seeking or + reading past end-of-file. Unlike `INVALID_ARGUMENT`, this error + indicates a problem that may be fixed if the system state changes. + For example, a 32-bit file system will generate `INVALID_ARGUMENT` + if asked to read at an offset that is not in the range [0,2^32-1], + but it will generate `OUT_OF_RANGE` if asked to read from an + offset past the current file size. There is a fair bit of overlap + between `FAILED_PRECONDITION` and `OUT_OF_RANGE`. We recommend + using `OUT_OF_RANGE` (the more specific error) when it applies so + that callers who are iterating through a space can easily look for + an `OUT_OF_RANGE` error to detect when they are done. HTTP + Mapping: 400 Bad Request + - >- + The operation is not implemented or is not supported/enabled in + this service. HTTP Mapping: 501 Not Implemented + - >- + Internal errors. This means that some invariants expected by the + underlying system have been broken. This error code is reserved + for serious errors. HTTP Mapping: 500 Internal Server Error + - >- + The service is currently unavailable. This is most likely a + transient condition, which can be corrected by retrying with a + backoff. Note that it is not always safe to retry non-idempotent + operations. See the guidelines above for deciding between + `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: + 503 Service Unavailable + - >- + Unrecoverable data loss or corruption. HTTP Mapping: 500 Internal + Server Error + enum: + - OK + - CANCELLED + - UNKNOWN + - INVALID_ARGUMENT + - DEADLINE_EXCEEDED + - NOT_FOUND + - ALREADY_EXISTS + - PERMISSION_DENIED + - UNAUTHENTICATED + - RESOURCE_EXHAUSTED + - FAILED_PRECONDITION + - ABORTED + - OUT_OF_RANGE + - UNIMPLEMENTED + - INTERNAL + - UNAVAILABLE + - DATA_LOSS + errorMessage: + description: Failure reason message. type: string + Empty: + id: Empty + description: >- + A generic empty message that you can re-use to avoid defining duplicated + empty messages in your APIs. A typical example is to use it as the + request or the response type of an API method. For instance: service Foo + { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } type: object - BatchCreatePrintServersRequest: - properties: - requests: - type: array - description: Required. A list of `PrintServer` resources to be created (max `50` per batch). - items: - $ref: '#/components/schemas/CreatePrintServerRequest' - description: Request to add multiple new print servers in a batch. + properties: {} + BatchDeletePrintersRequest: + id: BatchDeletePrintersRequest + description: Request for deleting existing printers in batch. type: object - id: BatchCreatePrintServersRequest - BatchCreatePrintersRequest: - id: BatchCreatePrintersRequest properties: - requests: + printerIds: + description: A list of Printer.id that should be deleted. Max 100 at a time. type: array items: - $ref: '#/components/schemas/CreatePrinterRequest' - description: A list of Printers to be created. Max 50 at a time. + type: string + BatchDeletePrintersResponse: + id: BatchDeletePrintersResponse + description: Response for deleting existing printers in batch. type: object - description: Request for adding new printers in batch. - BatchDeletePrintServersRequest: properties: - printServerIds: + printerIds: + description: A list of Printer.id that were successfully deleted. + type: array items: type: string + failedPrinters: + description: A list of update failures. type: array - description: A list of print server IDs that should be deleted (max `100` per batch). - description: Request to delete multiple existing print servers in a batch. - type: object - id: BatchDeletePrintServersRequest - Groups: + items: + $ref: '#/components/schemas/FailureInfo' + ListPrintServersResponse: + id: ListPrintServersResponse type: object - id: Groups properties: - etag: - description: ETag of the resource. - type: string - groups: - items: - $ref: '#/components/schemas/Group' + printServers: + description: List of print servers. type: array - description: A list of group objects. + items: + $ref: '#/components/schemas/PrintServer' nextPageToken: - description: Token used to access next page of this result. - type: string - kind: + description: >- + A token that can be sent as `page_token` in a request to retrieve + the next page. If this field is omitted, there are no subsequent + pages. type: string - description: Kind of resource this is. - default: admin#directory#groups - UserAbout: - description: JSON template for About (notes) of a user in Directory API. - id: UserAbout + PrintServer: + id: PrintServer + description: Configuration for a print server. + type: object properties: - value: + name: + description: >- + Identifier. Resource name of the print server. Leave empty when + creating. Format: + `customers/{customer.id}/printServers/{print_server.id}` type: string - description: Actual value of notes. - contentType: - description: 'About entry can have a type which indicates the content type. It can either be plain or html. By default, notes contents are assumed to contain plain text.' + id: + description: Immutable. ID of the print server. Leave empty when creating. type: string - type: object - ChromeOsDeviceAction: - type: object - id: ChromeOsDeviceAction - description: Data about an update to the status of a Chrome OS device. - properties: - deprovisionReason: - description: 'Only used when the action is `deprovision`. With the `deprovision` action, this field is required. *Note*: The deprovision reason is audited because it might have implications on licenses for perpetual subscription customers.' + displayName: + description: >- + Editable. Display name of the print server (as shown in the Admin + console). type: string - action: - annotations: - required: - - directory.chromeosdevices.action - description: Action to be taken on the Chrome OS device. + description: + description: >- + Editable. Description of the print server (as shown in the Admin + console). type: string - UserPhone: - properties: - type: - description: Each entry can have a type which indicates standard types of that entry. For example phone could be of home_fax work mobile etc. In addition to the standard type an entry can have a custom type and can give it any name. Such types should have the CUSTOM value as type and also have a customType value. + uri: + description: Editable. Print server URI. type: string - value: - description: Phone number. + createTime: + description: Output only. Time when the print server was created. + readOnly: true type: string - primary: - description: If this is user's primary phone or not. - type: boolean - customType: - description: Custom Type. + format: google-datetime + orgUnitId: + description: >- + ID of the organization unit (OU) that owns this print server. This + value can only be set when the print server is initially created. If + it's not populated, the print server is placed under the root OU. + The `org_unit_id` can be retrieved using the [Directory + API](https://developers.google.com/workspace/admin/directory/reference/rest/v1/orgunits). type: string + BatchCreatePrintServersRequest: + id: BatchCreatePrintServersRequest + description: Request to add multiple new print servers in a batch. type: object - id: UserPhone - description: JSON template for a phone entry. - UserCustomProperties: - description: JSON template for a set of custom properties (i.e. all fields in a particular schema) - type: object - id: UserCustomProperties - additionalProperties: - type: any - ChromeOsMoveDevicesToOu: properties: - deviceIds: - description: Chrome OS devices to be moved to OU - items: - type: string + requests: + description: >- + Required. A list of `PrintServer` resources to be created (max `50` + per batch). type: array - annotations: - required: - - directory.chromeosdevices.moveDevicesToOu - type: object - id: ChromeOsMoveDevicesToOu - UserIm: - id: UserIm + items: + $ref: '#/components/schemas/CreatePrintServerRequest' + CreatePrintServerRequest: + id: CreatePrintServerRequest + description: Request for adding a new print server. type: object properties: - type: - type: string - description: Each entry can have a type which indicates standard types of that entry. For example instant messengers could be of home work etc. In addition to the standard type an entry can have a custom type and can take any value. Such types should have the CUSTOM value as type and also have a customType value. - im: - description: Instant messenger id. - type: string - customType: - description: Custom type. - type: string - customProtocol: - description: Custom protocol. - type: string - protocol: - description: Protocol used in the instant messenger. It should be one of the values from ImProtocolTypes map. Similar to type it can take a CUSTOM value and specify the custom name in customProtocol field. + parent: + description: >- + Required. The [unique + ID](https://developers.google.com/workspace/admin/directory/reference/rest/v1/customers) + of the customer's Google Workspace account. Format: `customers/{id}` type: string - primary: - description: If this is user's primary im. Only one entry could be marked as primary. - type: boolean - description: JSON template for instant messenger of an user. - BatchDeletePrintersResponse: + printServer: + description: >- + Required. A print server to create. If you want to place the print + server under a specific organizational unit (OU), then populate the + `org_unit_id`. Otherwise the print server is created under the root + OU. The `org_unit_id` can be retrieved using the [Directory + API](https://developers.google.com/workspace/admin/directory/v1/guides/manage-org-units). + $ref: '#/components/schemas/PrintServer' + BatchCreatePrintServersResponse: + id: BatchCreatePrintServersResponse type: object - id: BatchDeletePrintersResponse properties: - failedPrinters: - description: A list of update failures. + printServers: + description: >- + A list of successfully created print servers with their IDs + populated. type: array items: - $ref: '#/components/schemas/FailureInfo' - printerIds: + $ref: '#/components/schemas/PrintServer' + failures: + description: >- + A list of create failures. `PrintServer` IDs are not populated, as + print servers were not created. type: array items: - type: string - description: A list of Printer.id that were successfully deleted. - description: Response for deleting existing printers in batch. - Asps: + $ref: '#/components/schemas/PrintServerFailureInfo' + PrintServerFailureInfo: + id: PrintServerFailureInfo + description: Info about failures + type: object properties: - etag: - description: ETag of the resource. + printServerId: + description: ID of a failed print server. type: string - kind: - description: The type of the API resource. This is always `admin#directory#aspList`. - default: admin#directory#aspList + printServer: + description: Failed print server. + $ref: '#/components/schemas/PrintServer' + errorCode: + description: Canonical code for why the update failed to apply. type: string - items: - items: - $ref: '#/components/schemas/Asp' - description: A list of ASP resources. - type: array - id: Asps + enumDescriptions: + - 'Not an error; returned on success. HTTP Mapping: 200 OK' + - >- + The operation was cancelled, typically by the caller. HTTP + Mapping: 499 Client Closed Request + - >- + Unknown error. For example, this error may be returned when a + `Status` value received from another address space belongs to an + error space that is not known in this address space. Also errors + raised by APIs that do not return enough error information may be + converted to this error. HTTP Mapping: 500 Internal Server Error + - >- + The client specified an invalid argument. Note that this differs + from `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates arguments + that are problematic regardless of the state of the system (e.g., + a malformed file name). HTTP Mapping: 400 Bad Request + - >- + The deadline expired before the operation could complete. For + operations that change the state of the system, this error may be + returned even if the operation has completed successfully. For + example, a successful response from a server could have been + delayed long enough for the deadline to expire. HTTP Mapping: 504 + Gateway Timeout + - >- + Some requested entity (e.g., file or directory) was not found. + Note to server developers: if a request is denied for an entire + class of users, such as gradual feature rollout or undocumented + allowlist, `NOT_FOUND` may be used. If a request is denied for + some users within a class of users, such as user-based access + control, `PERMISSION_DENIED` must be used. HTTP Mapping: 404 Not + Found + - >- + The entity that a client attempted to create (e.g., file or + directory) already exists. HTTP Mapping: 409 Conflict + - >- + The caller does not have permission to execute the specified + operation. `PERMISSION_DENIED` must not be used for rejections + caused by exhausting some resource (use `RESOURCE_EXHAUSTED` + instead for those errors). `PERMISSION_DENIED` must not be used if + the caller can not be identified (use `UNAUTHENTICATED` instead + for those errors). This error code does not imply the request is + valid or the requested entity exists or satisfies other + pre-conditions. HTTP Mapping: 403 Forbidden + - >- + The request does not have valid authentication credentials for the + operation. HTTP Mapping: 401 Unauthorized + - >- + Some resource has been exhausted, perhaps a per-user quota, or + perhaps the entire file system is out of space. HTTP Mapping: 429 + Too Many Requests + - >- + The operation was rejected because the system is not in a state + required for the operation's execution. For example, the directory + to be deleted is non-empty, an rmdir operation is applied to a + non-directory, etc. Service implementors can use the following + guidelines to decide between `FAILED_PRECONDITION`, `ABORTED`, and + `UNAVAILABLE`: (a) Use `UNAVAILABLE` if the client can retry just + the failing call. (b) Use `ABORTED` if the client should retry at + a higher level. For example, when a client-specified test-and-set + fails, indicating the client should restart a read-modify-write + sequence. (c) Use `FAILED_PRECONDITION` if the client should not + retry until the system state has been explicitly fixed. For + example, if an "rmdir" fails because the directory is non-empty, + `FAILED_PRECONDITION` should be returned since the client should + not retry unless the files are deleted from the directory. HTTP + Mapping: 400 Bad Request + - >- + The operation was aborted, typically due to a concurrency issue + such as a sequencer check failure or transaction abort. See the + guidelines above for deciding between `FAILED_PRECONDITION`, + `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 409 Conflict + - >- + The operation was attempted past the valid range. E.g., seeking or + reading past end-of-file. Unlike `INVALID_ARGUMENT`, this error + indicates a problem that may be fixed if the system state changes. + For example, a 32-bit file system will generate `INVALID_ARGUMENT` + if asked to read at an offset that is not in the range [0,2^32-1], + but it will generate `OUT_OF_RANGE` if asked to read from an + offset past the current file size. There is a fair bit of overlap + between `FAILED_PRECONDITION` and `OUT_OF_RANGE`. We recommend + using `OUT_OF_RANGE` (the more specific error) when it applies so + that callers who are iterating through a space can easily look for + an `OUT_OF_RANGE` error to detect when they are done. HTTP + Mapping: 400 Bad Request + - >- + The operation is not implemented or is not supported/enabled in + this service. HTTP Mapping: 501 Not Implemented + - >- + Internal errors. This means that some invariants expected by the + underlying system have been broken. This error code is reserved + for serious errors. HTTP Mapping: 500 Internal Server Error + - >- + The service is currently unavailable. This is most likely a + transient condition, which can be corrected by retrying with a + backoff. Note that it is not always safe to retry non-idempotent + operations. See the guidelines above for deciding between + `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: + 503 Service Unavailable + - >- + Unrecoverable data loss or corruption. HTTP Mapping: 500 Internal + Server Error + enum: + - OK + - CANCELLED + - UNKNOWN + - INVALID_ARGUMENT + - DEADLINE_EXCEEDED + - NOT_FOUND + - ALREADY_EXISTS + - PERMISSION_DENIED + - UNAUTHENTICATED + - RESOURCE_EXHAUSTED + - FAILED_PRECONDITION + - ABORTED + - OUT_OF_RANGE + - UNIMPLEMENTED + - INTERNAL + - UNAVAILABLE + - DATA_LOSS + errorMessage: + description: Failure reason message. + type: string + BatchDeletePrintServersRequest: + id: BatchDeletePrintServersRequest + description: Request to delete multiple existing print servers in a batch. type: object - BatchDeletePrintServersResponse: properties: - failedPrintServers: - items: - $ref: '#/components/schemas/PrintServerFailureInfo' - type: array - description: A list of update failures. printServerIds: + description: >- + A list of print server IDs that should be deleted (max `100` per + batch). type: array items: type: string - description: A list of print server IDs that were successfully deleted. + BatchDeletePrintServersResponse: id: BatchDeletePrintServersResponse type: object - DomainAliases: - type: object - id: DomainAliases properties: - domainAliases: + printServerIds: + description: A list of print server IDs that were successfully deleted. type: array - description: A list of domain alias objects. items: - $ref: '#/components/schemas/DomainAlias' - etag: - type: string - description: ETag of the resource. - kind: - description: Kind of resource this is. - type: string - default: admin#directory#domainAliases - UserExternalId: - description: JSON template for an externalId entry. + type: string + failedPrintServers: + description: A list of update failures. + type: array + items: + $ref: '#/components/schemas/PrintServerFailureInfo' + ChromeOsDeviceAction: + id: ChromeOsDeviceAction + description: Data about an update to the status of a Chrome OS device. + type: object properties: - type: - description: The type of the Id. - type: string - customType: + action: + description: Action to be taken on the Chrome OS device. + annotations: + required: + - directory.chromeosdevices.action type: string - description: Custom type. - value: + deprovisionReason: + description: >- + Only used when the action is `deprovision`. With the `deprovision` + action, this field is required. *Note*: The deprovision reason is + audited because it might have implications on licenses for perpetual + subscription customers. type: string - description: The value of the id. - type: object - id: UserExternalId - Alias: - description: JSON template for Alias object in Directory API. + ChromeOsDevice: + id: ChromeOsDevice + description: >- + Google Chrome devices run on the [Chrome + OS](https://support.google.com/chromeos). For more information about + common API tasks, see the [Developer's + Guide](https://developers.google.com/workspace/admin/directory/v1/guides/manage-chrome-devices). type: object - id: Alias properties: - id: + deviceId: + description: The unique ID of the Chrome device. type: string - primaryEmail: + serialNumber: + description: >- + The Chrome device serial number entered when the device was enabled. + This value is the same as the Admin console's *Serial Number* in the + *Chrome OS Devices* tab. type: string - kind: - default: admin#directory#alias + status: + description: The status of the device. type: string - alias: + lastSync: + description: >- + Date and time the device was last synchronized with the policy + settings in the G Suite administrator control panel (Read-only) type: string - etag: + format: date-time + supportEndDate: + description: Final date the device will be supported (Read-only) type: string - DomainAlias: - type: object - properties: - creationTime: - format: int64 + format: date-time + annotatedUser: + description: >- + The user of the device as noted by the administrator. Maximum length + is 100 characters. Empty values are allowed. type: string - description: The creation time of the domain alias. (Read-only). - domainAliasName: + annotatedLocation: + description: >- + The address or location of the device as noted by the administrator. + Maximum length is `200` characters. Empty values are allowed. type: string - description: The domain alias name. - verified: - description: Indicates the verification state of a domain alias. (Read-only) - type: boolean - etag: + notes: + description: >- + Notes about this device added by the administrator. This property + can be + [searched](https://support.google.com/chrome/a/answer/1698333) with + the + [list](https://developers.google.com/workspace/admin/directory/v1/reference/chromeosdevices/list) + method's `query` parameter. Maximum length is 500 characters. Empty + values are allowed. type: string - description: ETag of the resource. - parentDomainName: + model: + description: >- + The device's model information. If the device does not have this + information, this property is not included in the response. type: string - description: The parent domain name that the domain alias is associated with. This can either be a primary or secondary domain name within a customer. - annotations: - required: - - directory.domains.insert - kind: - type: string - default: admin#directory#domainAlias - description: Kind of resource this is. - id: DomainAlias - Schema: - description: 'The type of API resource. For Schema resources, this is always `admin#directory#schema`.' - type: object - id: Schema - properties: - kind: - type: string - description: Kind of resource this is. - default: admin#directory#schema - schemaId: - description: The unique identifier of the schema (Read-only) - type: string - displayName: - type: string - description: Display name for the schema. - annotations: - required: - - directory.schemas.insert - schemaName: - description: 'The schema''s name. Each `schema_name` must be unique within a customer. Reusing a name results in a `409: Entity already exists` error.' - type: string - annotations: - required: - - directory.schemas.insert - etag: - description: The ETag of the resource. - type: string - fields: - annotations: - required: - - directory.schemas.insert - - directory.schemas.update - items: - $ref: '#/components/schemas/SchemaFieldSpec' - type: array - description: A list of fields in the schema. - ListPrintersResponse: - type: object - id: ListPrintersResponse - properties: - nextPageToken: - description: 'A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.' - type: string - printers: - description: 'List of printers. If `org_unit_id` was given in the request, then only printers visible for this OU will be returned. If `org_unit_id` was not given in the request, then all printers will be returned.' - items: - $ref: '#/components/schemas/Printer' - type: array - description: Response for listing printers. - PrintServerFailureInfo: - id: PrintServerFailureInfo - description: Info about failures - type: object - properties: - errorCode: - enumDescriptions: - - 'Not an error; returned on success. HTTP Mapping: 200 OK' - - 'The operation was cancelled, typically by the caller. HTTP Mapping: 499 Client Closed Request' - - 'Unknown error. For example, this error may be returned when a `Status` value received from another address space belongs to an error space that is not known in this address space. Also errors raised by APIs that do not return enough error information may be converted to this error. HTTP Mapping: 500 Internal Server Error' - - 'The client specified an invalid argument. Note that this differs from `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates arguments that are problematic regardless of the state of the system (e.g., a malformed file name). HTTP Mapping: 400 Bad Request' - - 'The deadline expired before the operation could complete. For operations that change the state of the system, this error may be returned even if the operation has completed successfully. For example, a successful response from a server could have been delayed long enough for the deadline to expire. HTTP Mapping: 504 Gateway Timeout' - - 'Some requested entity (e.g., file or directory) was not found. Note to server developers: if a request is denied for an entire class of users, such as gradual feature rollout or undocumented allowlist, `NOT_FOUND` may be used. If a request is denied for some users within a class of users, such as user-based access control, `PERMISSION_DENIED` must be used. HTTP Mapping: 404 Not Found' - - 'The entity that a client attempted to create (e.g., file or directory) already exists. HTTP Mapping: 409 Conflict' - - 'The caller does not have permission to execute the specified operation. `PERMISSION_DENIED` must not be used for rejections caused by exhausting some resource (use `RESOURCE_EXHAUSTED` instead for those errors). `PERMISSION_DENIED` must not be used if the caller can not be identified (use `UNAUTHENTICATED` instead for those errors). This error code does not imply the request is valid or the requested entity exists or satisfies other pre-conditions. HTTP Mapping: 403 Forbidden' - - 'The request does not have valid authentication credentials for the operation. HTTP Mapping: 401 Unauthorized' - - 'Some resource has been exhausted, perhaps a per-user quota, or perhaps the entire file system is out of space. HTTP Mapping: 429 Too Many Requests' - - 'The operation was rejected because the system is not in a state required for the operation''s execution. For example, the directory to be deleted is non-empty, an rmdir operation is applied to a non-directory, etc. Service implementors can use the following guidelines to decide between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`: (a) Use `UNAVAILABLE` if the client can retry just the failing call. (b) Use `ABORTED` if the client should retry at a higher level. For example, when a client-specified test-and-set fails, indicating the client should restart a read-modify-write sequence. (c) Use `FAILED_PRECONDITION` if the client should not retry until the system state has been explicitly fixed. For example, if an "rmdir" fails because the directory is non-empty, `FAILED_PRECONDITION` should be returned since the client should not retry unless the files are deleted from the directory. HTTP Mapping: 400 Bad Request' - - 'The operation was aborted, typically due to a concurrency issue such as a sequencer check failure or transaction abort. See the guidelines above for deciding between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 409 Conflict' - - 'The operation was attempted past the valid range. E.g., seeking or reading past end-of-file. Unlike `INVALID_ARGUMENT`, this error indicates a problem that may be fixed if the system state changes. For example, a 32-bit file system will generate `INVALID_ARGUMENT` if asked to read at an offset that is not in the range [0,2^32-1], but it will generate `OUT_OF_RANGE` if asked to read from an offset past the current file size. There is a fair bit of overlap between `FAILED_PRECONDITION` and `OUT_OF_RANGE`. We recommend using `OUT_OF_RANGE` (the more specific error) when it applies so that callers who are iterating through a space can easily look for an `OUT_OF_RANGE` error to detect when they are done. HTTP Mapping: 400 Bad Request' - - 'The operation is not implemented or is not supported/enabled in this service. HTTP Mapping: 501 Not Implemented' - - 'Internal errors. This means that some invariants expected by the underlying system have been broken. This error code is reserved for serious errors. HTTP Mapping: 500 Internal Server Error' - - 'The service is currently unavailable. This is most likely a transient condition, which can be corrected by retrying with a backoff. Note that it is not always safe to retry non-idempotent operations. See the guidelines above for deciding between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 503 Service Unavailable' - - 'Unrecoverable data loss or corruption. HTTP Mapping: 500 Internal Server Error' - description: Canonical code for why the update failed to apply. - type: string - enum: - - OK - - CANCELLED - - UNKNOWN - - INVALID_ARGUMENT - - DEADLINE_EXCEEDED - - NOT_FOUND - - ALREADY_EXISTS - - PERMISSION_DENIED - - UNAUTHENTICATED - - RESOURCE_EXHAUSTED - - FAILED_PRECONDITION - - ABORTED - - OUT_OF_RANGE - - UNIMPLEMENTED - - INTERNAL - - UNAVAILABLE - - DATA_LOSS - printServerId: - description: ID of a failed print server. - type: string - errorMessage: - type: string - description: Failure reason message. - printServer: - $ref: '#/components/schemas/PrintServer' - description: Failed print server. - User: - description: 'The Directory API allows you to create and manage your account''s users, user aliases, and user Google profile photos. For more information about common tasks, see the [User Accounts Developer''s Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer''s Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).' - properties: - addresses: - type: any - description: The list of the user's addresses. The maximum allowed data size for this field is 10KB. - languages: - description: The user's languages. The maximum allowed data size for this field is 1KB. - type: any - primaryEmail: - type: string - annotations: - required: - - directory.users.insert - description: The user's primary email address. This property is required in a request to create a user account. The `primaryEmail` must be unique and cannot be an alias of another user. - customerId: - readOnly: true - type: string - description: 'Output only. The customer ID to [retrieve all account users](/admin-sdk/directory/v1/guides/manage-users.html#get_all_users). You can use the alias `my_customer` to represent your account''s `customerId`. As a reseller administrator, you can use the resold customer account''s `customerId`. To get a `customerId`, use the account''s primary domain in the `domain` parameter of a [users.list](/admin-sdk/directory/v1/reference/users/list) request.' - relations: - type: any - description: The list of the user's relationships to other users. The maximum allowed data size for this field is 2KB. - gender: - type: any - description: The user's gender. The maximum allowed data size for this field is 1KB. - notes: - type: any - description: Notes for the user. - ims: - description: 'The list of the user''s Instant Messenger (IM) accounts. A user account can have multiple ims properties. But, only one of these ims properties can be the primary IM contact. The maximum allowed data size for this field is 2KB.' - type: any - name: - $ref: '#/components/schemas/UserName' - description: 'Holds the given and family names of the user, and the read-only `fullName` value. The maximum number of characters in the `givenName` and in the `familyName` values is 60. In addition, name values support unicode/UTF-8 characters, and can contain spaces, letters (a-z), numbers (0-9), dashes (-), forward slashes (/), and periods (.). For more information about character usage rules, see the [administration help center](https://support.google.com/a/answer/9193374). Maximum allowed data size for this field is 1KB.' - annotations: - required: - - directory.users.insert - lastLoginTime: - format: date-time - description: User's last login time. (Read-only) - readOnly: true - type: string - sshPublicKeys: - description: A list of SSH public keys. - type: any - isDelegatedAdmin: - description: 'Output only. Indicates if the user is a delegated administrator. Delegated administrators are supported by the API but cannot create or undelete users, or make users administrators. These requests are ignored by the API service. Roles and privileges for administrators are assigned using the [Admin console](https://support.google.com/a/answer/33325).' - readOnly: true - type: boolean - creationTime: - description: User's G Suite account creation time. (Read-only) - readOnly: true - format: date-time - type: string - ipWhitelisted: - description: 'If `true`, the user''s IP address is subject to a deprecated IP address [`allowlist`](https://support.google.com/a/answer/60752) configuration.' - type: boolean - websites: - description: The user's websites. The maximum allowed data size for this field is 2KB. - type: any - locations: - type: any - description: The user's locations. The maximum allowed data size for this field is 10KB. - agreedToTerms: - description: Output only. This property is `true` if the user has completed an initial login and accepted the Terms of Service agreement. - type: boolean - readOnly: true - posixAccounts: - type: any - description: 'The list of [POSIX](https://www.opengroup.org/austin/papers/posix_faq.html) account information for the user.' - hashFunction: - type: string - description: 'Stores the hash format of the `password` property. The following `hashFunction` values are allowed: * `MD5` - Accepts simple hex-encoded values. * `SHA-1` - Accepts simple hex-encoded values. * `crypt` - Compliant with the [C crypt library](https://en.wikipedia.org/wiki/Crypt_%28C%29). Supports the DES, MD5 (hash prefix `$1$`), SHA-256 (hash prefix `$5$`), and SHA-512 (hash prefix `$6$`) hash algorithms. If rounds are specified as part of the prefix, they must be 10,000 or fewer.' - phones: - description: The list of the user's phone numbers. The maximum allowed data size for this field is 1KB. - type: any - customSchemas: - description: 'Custom fields of the user. The key is a `schema_name` and its values are `''field_name'': ''field_value''`.' - type: object - additionalProperties: - $ref: '#/components/schemas/UserCustomProperties' - changePasswordAtNextLogin: - description: 'Indicates if the user is forced to change their password at next login. This setting doesn''t apply when [the user signs in via a third-party identity provider](https://support.google.com/a/answer/60224).' - type: boolean - deletionTime: - format: date-time - type: string - readOnly: true - archived: - description: Indicates if user is archived. - type: boolean - isEnrolledIn2Sv: - description: Output only. Is enrolled in 2-step verification (Read-only) - type: boolean - readOnly: true - emails: - type: any - description: The list of the user's email addresses. The maximum allowed data size for this field is 10KB. - password: - type: string - description: User's password - annotations: - required: - - directory.users.insert - nonEditableAliases: - items: - type: string - readOnly: true - type: array - description: Output only. The list of the user's non-editable alias email addresses. These are typically outside the account's primary domain or sub-domain. - orgUnitPath: - description: 'The full path of the parent organization associated with the user. If the parent organization is the top-level, it is represented as a forward slash (`/`).' - type: string - externalIds: - description: 'The list of external IDs for the user, such as an employee or network ID. The maximum allowed data size for this field is 2KB.' - type: any - thumbnailPhotoUrl: - readOnly: true - description: Output only. The URL of the user's profile photo. The URL might be temporary or private. - type: string - recoveryEmail: - description: Recovery email of the user. - type: string - suspended: - type: boolean - description: Indicates if user is suspended. - thumbnailPhotoEtag: - type: string - readOnly: true - description: Output only. ETag of the user's photo (Read-only) - isAdmin: - description: 'Output only. Indicates a user with super admininistrator privileges. The `isAdmin` property can only be edited in the [Make a user an administrator](/admin-sdk/directory/v1/guides/manage-users.html#make_admin) operation ( [makeAdmin](/admin-sdk/directory/v1/reference/users/makeAdmin.html) method). If edited in the user [insert](/admin-sdk/directory/v1/reference/users/insert.html) or [update](/admin-sdk/directory/v1/reference/users/update.html) methods, the edit is ignored by the API service.' - readOnly: true - type: boolean - aliases: - readOnly: true - type: array - description: Output only. The list of the user's alias email addresses. - items: - type: string - includeInGlobalAddressList: - description: 'Indicates if the user''s profile is visible in the Google Workspace global address list when the contact sharing feature is enabled for the domain. For more information about excluding user profiles, see the [administration help center](https://support.google.com/a/answer/1285988).' - type: boolean - id: - description: The unique ID for the user. A user `id` can be used as a user request URI's `userKey`. - type: string - recoveryPhone: - description: 'Recovery phone of the user. The phone number must be in the E.164 format, starting with the plus sign (+). Example: *+16506661212*.' - type: string - organizations: - description: The list of organizations the user belongs to. The maximum allowed data size for this field is 10KB. - type: any - etag: - type: string - description: Output only. ETag of the resource. - readOnly: true - kind: - description: 'Output only. The type of the API resource. For Users resources, the value is `admin#directory#user`.' - readOnly: true - default: admin#directory#user - type: string - isEnforcedIn2Sv: - description: Output only. Is 2-step verification enforced (Read-only) - type: boolean - readOnly: true - suspensionReason: - description: Output only. Has the reason a user account is suspended either by the administrator or by Google at the time of suspension. The property is returned only if the `suspended` property is `true`. - type: string - readOnly: true - isMailboxSetup: - type: boolean - description: Output only. Indicates if the user's Google mailbox is created. This property is only applicable if the user has been assigned a Gmail license. - readOnly: true - keywords: - type: any - description: The list of the user's keywords. The maximum allowed data size for this field is 1KB. - type: object - id: User - MobileDevices: - id: MobileDevices - properties: - kind: - type: string - description: Kind of resource this is. - default: admin#directory#mobiledevices - mobiledevices: - items: - $ref: '#/components/schemas/MobileDevice' - type: array - description: A list of Mobile Device objects. - etag: - description: ETag of the resource. - type: string - nextPageToken: - type: string - description: Token used to access next page of this result. - type: object - DirectoryChromeosdevicesIssueCommandResponse: - description: A response for issuing a command. - properties: - commandId: - description: 'The unique ID of the issued command, used to retrieve the command status.' - format: int64 - type: string - type: object - id: DirectoryChromeosdevicesIssueCommandResponse - UserAlias: - id: UserAlias - type: object - properties: - etag: - type: string - description: ETag of the resource. - alias: - type: string - description: The alias email address. - kind: - type: string - description: 'The type of the API resource. For Alias resources, the value is `admin#directory#alias`.' - primaryEmail: - description: The user's primary email address. - type: string - id: - description: The unique ID for the user. - type: string - description: 'The Directory API manages aliases, which are alternative email addresses.' - VerificationCode: - type: object - properties: - userId: - type: string - description: The obfuscated unique ID of the user. - verificationCode: - description: A current verification code for the user. Invalidated or used verification codes are not returned as part of the result. - type: string - etag: - description: ETag of the resource. - type: string - kind: - type: string - default: admin#directory#verificationCode - description: The type of the resource. This is always `admin#directory#verificationCode`. - id: VerificationCode - description: 'The Directory API allows you to view, generate, and invalidate backup verification codes for a user.' - Empty: - id: Empty - type: object - properties: {} - description: 'A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }' - Group: - description: 'Google Groups provide your users the ability to send messages to groups of people using the group''s email address. For more information about common tasks, see the [Developer''s Guide](https://developers.google.com/admin-sdk/directory/v1/guides/manage-groups). For information about other types of groups, see the [Cloud Identity Groups API documentation](https://cloud.google.com/identity/docs/groups). Note: The user calling the API (or being impersonated by a service account) must have an assigned [role](https://developers.google.com/admin-sdk/directory/v1/guides/manage-roles) that includes Admin API Groups permissions, such as Super Admin or Groups Admin.' - id: Group - properties: - description: - type: string - description: 'An extended description to help users determine the purpose of a group. For example, you can include information about who should join the group, the types of messages to send to the group, links to FAQs about the group, or related groups. Maximum length is `4,096` characters.' - adminCreated: - type: boolean - description: Read-only. Value is `true` if this group was created by an administrator rather than a user. - aliases: - description: 'Read-only. The list of a group''s alias email addresses. To add, update, or remove a group''s aliases, use the `groups.aliases` methods. If edited in a group''s POST or PUT request, the edit is ignored.' - type: array - items: - type: string - nonEditableAliases: - description: 'Read-only. The list of the group''s non-editable alias email addresses that are outside of the account''s primary domain or subdomains. These are functioning email addresses used by the group. This is a read-only property returned in the API''s response for a group. If edited in a group''s POST or PUT request, the edit is ignored.' - type: array - items: - type: string - etag: - type: string - description: ETag of the resource. - id: - description: Read-only. The unique ID of a group. A group `id` can be used as a group request URI's `groupKey`. - type: string - directMembersCount: - format: int64 - description: 'The number of users that are direct members of the group. If a group is a member (child) of this group (the parent), members of the child group are not counted in the `directMembersCount` property of the parent group.' - type: string - kind: - default: admin#directory#group - description: 'The type of the API resource. For Groups resources, the value is `admin#directory#group`.' - type: string - name: - type: string - description: The group's display name. - email: - description: 'The group''s email address. If your account has multiple domains, select the appropriate domain for the email address. The `email` must be unique. This property is required when creating a group. Group email addresses are subject to the same character usage rules as usernames, see the [help center](https://support.google.com/a/answer/9193374) for details.' - type: string - annotations: - required: - - directory.groups.insert - type: object - CreatePrintServerRequest: - id: CreatePrintServerRequest - properties: - parent: - description: 'Required. The [unique ID](https://developers.google.com/admin-sdk/directory/reference/rest/v1/customers) of the customer''s Google Workspace account. Format: `customers/{id}`' - type: string - printServer: - $ref: '#/components/schemas/PrintServer' - description: 'Required. A print server to create. If you want to place the print server under a specific organizational unit (OU), then populate the `org_unit_id`. Otherwise the print server is created under the root OU. The `org_unit_id` can be retrieved using the [Directory API](https://developers.google.com/admin-sdk/directory/v1/guides/manage-org-units).' - type: object - description: Request for adding a new print server. - BatchCreatePrintServersResponse: - type: object - id: BatchCreatePrintServersResponse - properties: - failures: - type: array - description: 'A list of create failures. `PrintServer` IDs are not populated, as print servers were not created.' - items: - $ref: '#/components/schemas/PrintServerFailureInfo' - printServers: - description: A list of successfully created print servers with their IDs populated. - items: - $ref: '#/components/schemas/PrintServer' - type: array - MobileDevice: - properties: - email: - description: 'The list of the owner''s email addresses. If your application needs the current list of user emails, use the [get](/admin-sdk/directory/v1/reference/mobiledevices/get.html) method. For additional information, see the [retrieve a user](/admin-sdk/directory/v1/guides/manage-users#get_user) method.' - items: - type: string - type: array - devicePasswordStatus: - description: DevicePasswordStatus (Read-only) + meid: + description: >- + The Mobile Equipment Identifier (MEID) or the International Mobile + Equipment Identity (IMEI) for the 3G mobile card in a mobile device. + A MEID/IMEI is typically used when adding a device to a wireless + carrier's post-pay service plan. If the device does not have this + information, this property is not included in the response. For more + information on how to export a MEID/IMEI list, see the [Developer's + Guide](https://developers.google.com/workspace/admin/directory/v1/guides/manage-chrome-devices.html#export_meid). type: string - bootloaderVersion: + orderNumber: + description: >- + The device's order number. Only devices directly purchased from + Google have an order number. type: string - description: Mobile Device Bootloader version (Read-only) - type: - description: The type of mobile device. + willAutoRenew: + description: >- + Determines if the device will auto renew its support after the + support end date. This is a read-only property. + type: boolean + osVersion: + description: The Chrome device's operating system version. type: string - basebandVersion: - description: The device's baseband version. + platformVersion: + description: The Chrome device's platform version. type: string - hardware: + firmwareVersion: + description: The Chrome device's firmware version. type: string - description: Mobile Device Hardware (Read-only) - name: - type: array - description: 'The list of the owner''s user names. If your application needs the current list of device owner names, use the [get](/admin-sdk/directory/v1/reference/mobiledevices/get.html) method. For more information about retrieving mobile device user information, see the [Developer''s Guide](/admin-sdk/directory/v1/guides/manage-users#get_user).' - items: - type: string - brand: - description: Mobile Device Brand (Read-only) + macAddress: + description: >- + The device's wireless MAC address. If the device does not have this + information, it is not included in the response. type: string - hardwareId: - description: 'The IMEI/MEID unique identifier for Android hardware. It is not applicable to Google Sync devices. When adding an Android mobile device, this is an optional property. When updating one of these devices, this is a read-only property.' + bootMode: + description: >- + The boot mode for the device. The possible values are: * `Verified`: + The device is running a valid version of the Chrome OS. * `Dev`: The + devices's developer hardware switch is enabled. When booted, the + device has a command line shell. For an example of a developer + switch, see the [Chromebook developer + information](https://www.chromium.org/chromium-os/developer-information-for-chrome-os-devices/samsung-series-5-chromebook#TOC-Developer-switch). type: string - kernelVersion: - description: The device's kernel version. + lastEnrollmentTime: + description: Date and time the device was last enrolled (Read-only) type: string - releaseVersion: - description: Mobile Device release version version (Read-only) + format: date-time + kind: + description: >- + The type of resource. For the Chromeosdevices resource, the value is + `admin#directory#chromeosdevice`. + default: admin#directory#chromeosdevice type: string - adbStatus: - type: boolean - description: Adb (USB debugging) enabled or disabled on device (Read-only) - unknownSourcesStatus: - type: boolean - description: Unknown sources enabled or disabled on device (Read-only) - deviceCompromisedStatus: - description: The compromised device status. + recentUsers: + description: >- + A list of recent device users, in descending order, by last login + time. + type: array + items: + description: >- + A list of recent device users, in descending order, by last login + time. + type: object + properties: + type: + description: The type of the user. + type: string + email: + description: >- + The user's email address. This is only present if the user + type is `USER_TYPE_MANAGED`. + type: string + activeTimeRanges: + description: A list of active time ranges (Read-only). + type: array + items: + type: object + properties: + activeTime: + description: Duration of usage in milliseconds. + type: integer + format: int32 + date: + description: Date of usage + type: string + format: date + ethernetMacAddress: + description: The device's MAC address on the ethernet network interface. type: string - etag: + annotatedAssetId: + description: >- + The asset identifier as noted by an administrator or specified + during enrollment. type: string + etag: description: ETag of the resource. - manufacturer: type: string - description: Mobile Device manufacturer (Read-only) - kind: + diskVolumeReports: + description: >- + Reports of disk space and other info about mounted/connected + volumes. + type: array + items: + type: object + properties: + volumeInfo: + description: Disk volumes + type: array + items: + type: object + properties: + volumeId: + description: Volume id + type: string + storageTotal: + description: Total disk space [in bytes] + type: string + format: int64 + storageFree: + description: Free disk space [in bytes] + type: string + format: int64 + systemRamTotal: + description: Total RAM on the device [in bytes] (Read-only) type: string - description: 'The type of the API resource. For Mobiledevices resources, the value is `admin#directory#mobiledevice`.' - default: admin#directory#mobiledevice - privilege: - description: DMAgentPermission (Read-only) + format: int64 + cpuStatusReports: + description: Reports of CPU utilization and temperature (Read-only) + type: array + items: + type: object + properties: + reportTime: + description: Date and time the report was received. + type: string + format: date-time + cpuUtilizationPercentageInfo: + type: array + items: + type: integer + format: int32 + cpuTemperatureInfo: + description: A list of CPU temperature samples. + type: array + items: + type: object + properties: + temperature: + description: Temperature in Celsius degrees. + type: integer + format: int32 + label: + description: CPU label + type: string + cpuInfo: + description: Information regarding CPU specs in the device. + type: array + items: + description: CPU specs for a CPU. + type: object + properties: + model: + description: The CPU model name. + type: string + architecture: + description: The CPU architecture. + type: string + maxClockSpeedKhz: + description: The max CPU clock speed in kHz. + type: integer + format: int32 + logicalCpus: + description: Information for the Logical CPUs + type: array + items: + description: Status of a single logical CPU. + type: object + properties: + maxScalingFrequencyKhz: + description: >- + Maximum frequency the CPU is allowed to run at, by + policy. + type: integer + format: int32 + currentScalingFrequencyKhz: + description: Current frequency the CPU is running at. + type: integer + format: int32 + idleDuration: + description: Idle time since last boot. + type: string + format: google-duration + cStates: + description: >- + C-States indicate the power consumption state of the + CPU. For more information look at documentation + published by the CPU maker. + type: array + items: + description: >- + Status of a single C-state. C-states are various modes + the CPU can transition to in order to use more or less + power. + type: object + properties: + displayName: + description: Name of the state. + type: string + sessionDuration: + description: Time spent in the state since the last reboot. + type: string + format: google-duration + deviceFiles: + description: A list of device files to download (Read-only) + type: array + items: + type: object + properties: + name: + description: File name + type: string + type: + description: File type + type: string + downloadUrl: + description: File download URL + type: string + createTime: + description: Date and time the file was created + type: string + format: date-time + systemRamFreeReports: + description: Reports of amounts of available RAM memory (Read-only) + type: array + items: + type: object + properties: + reportTime: + description: Date and time the report was received. + type: string + format: date-time + systemRamFreeInfo: + type: array + items: + type: string + format: int64 + lastKnownNetwork: + description: Contains last known network (Read-only) + type: array + items: + description: Information for an ip address. + type: object + properties: + ipAddress: + description: The IP address. + type: string + wanIpAddress: + description: The WAN IP address. + type: string + autoUpdateExpiration: + description: >- + (Read-only) The timestamp after which the device will stop receiving + Chrome updates or support. Please use "autoUpdateThrough" instead. + deprecated: true type: string - managedAccountIsOnOwnerProfile: - type: boolean - description: Boolean indicating if this account is on owner/primary profile or not. - serialNumber: + format: int64 + ethernetMacAddress0: + description: >- + (Read-only) MAC address used by the Chromebook’s internal ethernet + port, and for onboard network (ethernet) interface. The format is + twelve (12) hexadecimal digits without any delimiter (uppercase + letters). This is only relevant for some devices. type: string - description: The device's serial number. - resourceId: - description: The unique ID the API service uses to identify the mobile device. + dockMacAddress: + description: >- + (Read-only) Built-in MAC address for the docking station that the + device connected to. Factory sets Media access control address (MAC + address) assigned for use by a dock. It is reserved specifically for + MAC pass through device policy. The format is twelve (12) + hexadecimal digits without any delimiter (uppercase letters). This + is only relevant for some devices. type: string - os: + manufactureDate: + description: >- + (Read-only) The date the device was manufactured in yyyy-mm-dd + format. type: string - description: 'The mobile device''s operating system, for example IOS 4.3 or Android 2.3.5. This property can be [updated](/admin-sdk/directory/v1/reference/mobiledevices/update.html). For more information, see the [Developer''s Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices#update_mobile_device).' - applications: + orgUnitPath: + description: >- + The full parent path with the organizational unit's name associated + with the device. Path names are case insensitive. If the parent + organizational unit is the top-level organization, it is represented + as a forward slash, `/`. This property can be + [updated](https://developers.google.com/workspace/admin/directory/v1/guides/manage-chrome-devices#move_chrome_devices_to_ou) + using the API. For more information about how to create an + organizational structure for your device, see the [administration + help center](https://support.google.com/a/answer/182433). + type: string + tpmVersionInfo: + description: Trusted Platform Module (TPM) (Read-only) + type: object + properties: + family: + description: >- + TPM family. We use the TPM 2.0 style encoding, e.g.: TPM 1.2: + "1.2" -> 312e3200 TPM 2.0: "2.0" -> 322e3000 + type: string + specLevel: + description: >- + TPM specification level. See Library Specification for TPM 2.0 + and Main Specification for TPM 1.2. + type: string + manufacturer: + description: TPM manufacturer code. + type: string + tpmModel: + description: TPM model number. + type: string + firmwareVersion: + description: TPM firmware version. + type: string + vendorSpecific: + description: Vendor-specific information such as Vendor ID. + type: string + screenshotFiles: + description: >- + A list of screenshot files to download. Type is always + "SCREENSHOT_FILE". (Read-only) + type: array items: type: object properties: - versionCode: - format: int32 - type: integer - description: The application's version code. An example is `13`. - versionName: - description: The application's version name. An example is `3.2-140714`. + name: + description: File name type: string - permission: - type: array - description: 'The list of permissions of this application. These can be either a standard Android permission or one defined by the application, and are found in an application''s [Android manifest](https://developer.android.com/guide/topics/manifest/uses-permission-element.html). Examples of a Calendar application''s permissions are `READ_CALENDAR`, or `MANAGE_ACCOUNTS`.' - items: - type: string - packageName: + type: + description: File type type: string - description: The application's package name. An example is `com.android.browser`. - displayName: + downloadUrl: + description: File download URL type: string - description: The application's display name. An example is `Browser`. - description: 'The list of applications installed on an Android mobile device. It is not applicable to Google Sync and iOS devices. The list includes any Android applications that access Google Workspace data. When updating an applications list, it is important to note that updates replace the existing list. If the Android device has two existing applications and the API updates the list with five applications, the is now the updated list of five applications.' - type: array - otherAccountsInfo: - type: array - description: The list of accounts added on device (Read-only) - items: - type: string - userAgent: - type: string - description: 'Gives information about the device such as `os` version. This property can be [updated](/admin-sdk/directory/v1/reference/mobiledevices/update.html). For more information, see the [Developer''s Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices#update_mobile_device).' - deviceId: - type: string - description: 'The serial number for a Google Sync mobile device. For Android and iOS devices, this is a software generated unique identifier.' - imei: + createTime: + description: Date and time the file was created + type: string + format: date-time + orgUnitId: + description: >- + The unique ID of the organizational unit. orgUnitPath is the human + readable version of orgUnitId. While orgUnitPath may change by + renaming an organizational unit within the path, orgUnitId is + unchangeable for one organizational unit. This property can be + [updated](https://developers.google.com/workspace/admin/directory/v1/guides/manage-chrome-devices#move_chrome_devices_to_ou) + using the API. For more information about how to create an + organizational structure for your device, see the [administration + help center](https://support.google.com/a/answer/182433). type: string - description: The device's IMEI number. - securityPatchLevel: + osUpdateStatus: + description: The status of the OS updates for the device. + $ref: '#/components/schemas/OsUpdateStatus' + firstEnrollmentTime: + description: Date and time for the first time the device was enrolled. type: string - description: Mobile Device Security patch level (Read-only) - format: int64 - status: - description: The device's status. + lastDeprovisionTimestamp: + description: (Read-only) Date and time for the last deprovision of the device. type: string - encryptionStatus: + deprovisionReason: + description: (Read-only) Deprovision reason. type: string - description: Mobile Device Encryption Status (Read-only) - model: + enumDescriptions: + - The deprovision reason is unknown. + - >- + Same model replacement. You have return materials authorization + (RMA) or you are replacing a malfunctioning device under warranty + with the same device model. + - The device was upgraded. + - The device's domain was changed. + - Service expired for the device. + - >- + The device was deprovisioned for a legacy reason that is no longer + supported. + - >- + Different model replacement. You are replacing this device with an + upgraded or newer device model. + - >- + Retiring from fleet. You are donating, discarding, or otherwise + removing the device from use. + - >- + ChromeOS Flex upgrade transfer. This is a ChromeOS Flex device + that you are replacing with a Chromebook within a year. + - >- + A reason was not required. For example, the licenses were returned + to the customer's license pool. + - >- + The device was deprovisioned by the Repair Service Center. Can + only be set by Repair Service Center during RMA. + enumDeprecated: + - false + - false + - true + - true + - true + - true + - false + - false + - false + - false + - false + enum: + - DEPROVISION_REASON_UNSPECIFIED + - DEPROVISION_REASON_SAME_MODEL_REPLACEMENT + - DEPROVISION_REASON_UPGRADE + - DEPROVISION_REASON_DOMAIN_MOVE + - DEPROVISION_REASON_SERVICE_EXPIRATION + - DEPROVISION_REASON_OTHER + - DEPROVISION_REASON_DIFFERENT_MODEL_REPLACEMENT + - DEPROVISION_REASON_RETIRING_DEVICE + - DEPROVISION_REASON_UPGRADE_TRANSFER + - DEPROVISION_REASON_NOT_REQUIRED + - DEPROVISION_REASON_REPAIR_CENTER + deviceLicenseType: + description: Output only. Device license type. + readOnly: true type: string - description: 'The mobile device''s model name, for example Nexus S. This property can be [updated](/admin-sdk/directory/v1/reference/mobiledevices/update.html). For more information, see the [Developer''s Guide](/admin-sdk/directory/v1/guides/manage-mobile=devices#update_mobile_device).' - wifiMacAddress: - description: The device's MAC address on Wi-Fi networks. + enumDescriptions: + - The license type is unknown. + - The device is bundled with a perpetual Chrome Enterprise Upgrade. + - The device has an annual standalone Chrome Enterprise Upgrade. + - The device has a perpetual standalone Chrome Education Upgrade. + - The device is bundled with a perpetual Chrome Education Upgrade. + - The device has an annual Kiosk Upgrade. + - >- + Indicates that the device is consuming a standalone, perpetual + Chrome Enterprise Upgrade, a Chrome Enterprise license. + - >- + Indicates that the device is consuming a standalone, fixed-term + Chrome Enterprise Upgrade, a Chrome Enterprise license. + - >- + Indicates that the device is consuming a standalone, perpetual + Chrome Education Upgrade(AKA Chrome EDU perpetual license). + - >- + Indicates that the device is consuming a standalone, fixed-term + Chrome Education Upgrade(AKA Chrome EDU fixed-term license). + enumDeprecated: + - false + - false + - true + - true + - false + - false + - false + - false + - false + - false + enum: + - deviceLicenseTypeUnspecified + - enterprise + - enterpriseUpgrade + - educationUpgrade + - education + - kioskUpgrade + - enterpriseUpgradePerpetual + - enterpriseUpgradeFixedTerm + - educationUpgradePerpetual + - educationUpgradeFixedTerm + backlightInfo: + description: Output only. Contains backlight information for the device. + readOnly: true + type: array + items: + $ref: '#/components/schemas/BacklightInfo' + autoUpdateThrough: + description: >- + Output only. The timestamp after which the device will stop + receiving Chrome updates or support. + readOnly: true type: string - supportsWorkProfile: + extendedSupportEligible: + description: >- + Output only. Whether or not the device requires the extended support + opt in. + readOnly: true type: boolean - description: Work profile supported on device (Read-only) - defaultLanguage: - description: The default locale used on the device. - type: string - buildNumber: - description: The device's operating system build number. - type: string - lastSync: - description: Date and time the device was last synchronized with the policy settings in the G Suite administrator control panel (Read-only) - format: date-time + extendedSupportStart: + description: >- + Output only. Date of the device when extended support policy for + automatic updates starts. + readOnly: true type: string - developerOptionsStatus: + extendedSupportEnabled: + description: >- + Output only. Whether extended support policy is enabled on the + device. + readOnly: true type: boolean - description: Developer options enabled or disabled on device (Read-only) - networkOperator: - description: Mobile Device mobile or network operator (if available) (Read-only) - type: string - meid: - description: The device's MEID number. - type: string - firstSync: - description: Date and time the device was first synchronized with the policy settings in the G Suite administrator control panel (Read-only) - type: string - format: date-time - description: 'Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer''s Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).' - id: MobileDevice - type: object - Building: - properties: - buildingName: - type: string - description: 'The building name as seen by users in Calendar. Must be unique for the customer. For example, "NYC-CHEL". The maximum length is 100 characters.' - kind: - default: admin#directory#resources#buildings#Building - description: Kind of resource this is. - type: string - floorNames: - description: 'The display names for all floors in this building. The floors are expected to be sorted in ascending order, from lowest floor to highest floor. For example, ["B2", "B1", "L", "1", "2", "2M", "3", "PH"] Must contain at least one entry.' + fanInfo: + description: Output only. Fan information for the device. + readOnly: true type: array items: - type: string - coordinates: - $ref: '#/components/schemas/BuildingCoordinates' - description: 'The geographic coordinates of the center of the building, expressed as latitude and longitude in decimal degrees.' - description: - description: 'A brief description of the building. For example, "Chelsea Market".' - type: string - address: - description: 'The postal address of the building. See [`PostalAddress`](/my-business/reference/rest/v4/PostalAddress) for details. Note that only a single address line and region code are required.' - $ref: '#/components/schemas/BuildingAddress' - etags: + $ref: '#/components/schemas/FanInfo' + chromeOsType: + description: Output only. Chrome OS type of the device. + readOnly: true type: string - description: ETag of the resource. - buildingId: + enumDescriptions: + - Chrome OS Type unspecified. + - Chrome OS Type Chrome OS Flex. + - Chrome OS Type Chrome OS. + enum: + - chromeOsTypeUnspecified + - chromeOsFlex + - chromeOs + diskSpaceUsage: + description: >- + Output only. How much disk space the device has available and is + currently using. + readOnly: true + $ref: '#/components/schemas/ByteUsage' + osVersionCompliance: + description: Output only. Compliance status of the OS version. + readOnly: true type: string - description: Unique identifier for the building. The maximum length is 100 characters. - type: object - id: Building - description: 'Public API: Resources.buildings' - UserSshPublicKey: + enumDescriptions: + - Compliance status unspecified. + - Compliance status compliant. + - Compliance status pending. + - Compliance status not compliant. + enum: + - complianceUnspecified + - compliant + - pending + - notCompliant + OsUpdateStatus: + id: OsUpdateStatus + description: Contains information regarding the current OS update status. type: object properties: - expirationTimeUsec: - description: An expiration time in microseconds since epoch. - format: int64 - type: string - key: - description: An SSH public key. - type: string - fingerprint: - description: A SHA-256 fingerprint of the SSH public key. (Read-only) - type: string - readOnly: true - description: JSON template for a POSIX account entry. - id: UserSshPublicKey - CustomerPostalAddress: - id: CustomerPostalAddress - properties: - locality: - type: string - description: Name of the locality. An example of a locality value is the city of `San Francisco`. - countryCode: - description: 'This is a required property. For `countryCode` information see the [ISO 3166 country code elements](https://www.iso.org/iso/country_codes.htm).' - type: string - addressLine2: - description: Address line 2 of the address. - type: string - contactName: + state: + description: The update state of an OS update. type: string - description: The customer contact's name. - postalCode: + enumDescriptions: + - The update state is unspecified. + - There is an update pending but it hasn't started. + - The pending update is being downloaded. + - The device is ready to install the update, but must reboot. + enum: + - updateStateUnspecified + - updateStateNotStarted + - updateStateDownloadInProgress + - updateStateNeedReboot + targetOsVersion: + description: >- + New platform version of the OS image being downloaded and applied. + It is only set when update status is + UPDATE_STATUS_DOWNLOAD_IN_PROGRESS or UPDATE_STATUS_NEED_REBOOT. + Note this could be a dummy "0.0.0.0" for UPDATE_STATUS_NEED_REBOOT + for some edge cases, e.g. update engine is restarted without a + reboot. type: string - description: 'The postal code. A postalCode example is a postal zip code such as `10009`. This is in accordance with - http: //portablecontacts.net/draft-spec.html#address_element.' - region: - description: Name of the region. An example of a region value is `NY` for the state of New York. + targetKioskAppVersion: + description: New required platform version from the pending updated kiosk app. type: string - addressLine1: + updateTime: + description: Date and time of the last successful OS update. type: string - description: A customer's physical address. The address can be composed of one to three lines. - organizationName: + updateCheckTime: + description: Date and time of the last update check. type: string - description: The company or company division name. - addressLine3: - description: Address line 3 of the address. + rebootTime: + description: Date and time of the last reboot. type: string + BacklightInfo: + id: BacklightInfo + description: Information about the device's backlights. type: object - UserKeyword: - id: UserKeyword properties: - type: - type: string - description: Each entry can have a type which indicates standard type of that entry. For example keyword could be of type occupation or outlook. In addition to the standard type an entry can have a custom type and can give it any name. Such types should have the CUSTOM value as type and also have a customType value. - customType: - type: string - description: Custom Type. - value: + path: + description: >- + Output only. Path to this backlight on the system. Useful if the + caller needs to correlate with other information. + readOnly: true type: string - description: Keyword. - type: object - description: JSON template for a keyword entry. - UserMakeAdmin: - id: UserMakeAdmin + maxBrightness: + description: Output only. Maximum brightness for the backlight. + readOnly: true + type: integer + format: int32 + brightness: + description: >- + Output only. Current brightness of the backlight, between 0 and + max_brightness. + readOnly: true + type: integer + format: int32 + FanInfo: + id: FanInfo + description: Information about the device's fan. type: object properties: - status: - annotations: - required: - - directory.users.makeAdmin - description: Indicates the administrator status of the user. - type: boolean - ListPrintServersResponse: - properties: - nextPageToken: - type: string - description: 'A token that can be sent as `page_token` in a request to retrieve the next page. If this field is omitted, there are no subsequent pages.' - printServers: - description: List of print servers. - type: array - items: - $ref: '#/components/schemas/PrintServer' - id: ListPrintServersResponse + speedRpm: + description: Output only. Fan speed in RPM. + readOnly: true + type: integer + format: int32 + ByteUsage: + id: ByteUsage + description: Represents a data capacity with some amount of current usage in bytes. type: object - RoleAssignment: properties: - kind: - default: admin#directory#roleAssignment - description: The type of the API resource. This is always `admin#directory#roleAssignment`. - type: string - etag: - type: string - description: ETag of the resource. - scopeType: - type: string - description: The scope in which this role is assigned. - roleId: + capacityBytes: + description: Output only. The total capacity value, in bytes. + readOnly: true type: string - description: The ID of the role that is assigned. format: int64 - assignedTo: - description: 'The unique ID of the entity this role is assigned to—either the `user_id` of a user, the `group_id` of a group, or the `uniqueId` of a service account as defined in [Identity and Access Management (IAM)](https://cloud.google.com/iam/docs/reference/rest/v1/projects.serviceAccounts).' - type: string - assigneeType: - enumDescriptions: - - An individual user within the domain. - - A group within the domain. - type: string + usedBytes: + description: Output only. The current usage value, in bytes. readOnly: true - enum: - - user - - group - description: Output only. The type of the assignee (`USER` or `GROUP`). - orgUnitId: - description: 'If the role is restricted to an organization unit, this contains the ID for the organization unit the exercise of this role is restricted to.' - type: string - roleAssignmentId: type: string format: int64 - description: ID of this roleAssignment. - description: Defines an assignment of a role. - type: object - id: RoleAssignment - ChromeOsDevice: - description: 'Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer''s Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).' + ChromeOsDevices: + id: ChromeOsDevices type: object properties: - serialNumber: + kind: + description: Kind of resource this is. + default: admin#directory#chromeosdevices type: string - description: The Chrome device serial number entered when the device was enabled. This value is the same as the Admin console's *Serial Number* in the *Chrome OS Devices* tab. - annotatedUser: - description: The user of the device as noted by the administrator. Maximum length is 100 characters. Empty values are allowed. + etag: + description: ETag of the resource. type: string - deviceFiles: + chromeosdevices: + description: A list of Chrome OS Device objects. type: array items: - type: object - properties: - downloadUrl: - description: File download URL - type: string - name: - type: string - description: File name - type: - type: string - description: File type - createTime: - format: date-time - description: Date and time the file was created - type: string - description: A list of device files to download (Read-only) - systemRamFreeReports: + $ref: '#/components/schemas/ChromeOsDevice' + nextPageToken: + description: >- + Token used to access the next page of this result. To access the + next page, use this token's value in the `pageToken` query string of + this request. + type: string + ChromeOsMoveDevicesToOu: + id: ChromeOsMoveDevicesToOu + type: object + properties: + deviceIds: + description: Chrome OS devices to be moved to OU + annotations: + required: + - directory.chromeosdevices.moveDevicesToOu type: array - description: Reports of amounts of available RAM memory (Read-only) items: - type: object - properties: - systemRamFreeInfo: - items: - format: int64 - type: string - type: array - reportTime: - description: Date and time the report was received. - format: date-time - type: string - kind: - type: string - default: admin#directory#chromeosdevice - description: 'The type of resource. For the Chromeosdevices resource, the value is `admin#directory#chromeosdevice`.' - systemRamTotal: - format: int64 + type: string + DirectoryChromeosdevicesIssueCommandRequest: + id: DirectoryChromeosdevicesIssueCommandRequest + description: A request for issuing a command. + type: object + properties: + commandType: + description: The type of command. type: string - description: 'Total RAM on the device [in bytes] (Read-only)' - ethernetMacAddress: - description: The device's MAC address on the ethernet network interface. + enumDescriptions: + - The command type was unspecified. + - >- + Reboot the device. Can be issued to Kiosk and managed guest + session devices, and regular devices running ChromeOS version 113 + or later. + - >- + Take a screenshot of the device. Only available if the device is + in Kiosk Mode. + - >- + Set the volume of the device. Can only be issued to Kiosk and + managed guest session devices. + - >- + Wipe all the users off of the device. Executing this command in + the device will remove all user profile data, but it will keep + device policy and enrollment. + - >- + Wipes the device by performing a power wash. Executing this + command in the device will remove all data including user + policies, device policies and enrollment policies. Warning: This + will revert the device back to a factory state with no enrollment + unless the device is subject to forced or auto enrollment. Use + with caution, as this is an irreversible action! + - Starts a Chrome Remote Desktop session. + - >- + Capture the system logs of a kiosk device. The logs can be + downloaded from the downloadUrl link present in `deviceFiles` + field of + [chromeosdevices](https://developers.google.com/workspace/admin/directory/reference/rest/v1/chromeosdevices) + - >- + Fetches available type(s) of Chrome Remote Desktop sessions + (private or shared) that can be used to remotely connect to the + device. + - >- + Fetch support packet from a device remotely. Support packet is a + zip archive that contains various system logs and debug data from + a ChromeOS device. The support packet can be downloaded from the + downloadURL link present in the `deviceFiles` field of + [`chromeosdevices`](https://developers.google.com/workspace/admin/directory/reference/rest/v1/chromeosdevices) + enum: + - COMMAND_TYPE_UNSPECIFIED + - REBOOT + - TAKE_A_SCREENSHOT + - SET_VOLUME + - WIPE_USERS + - REMOTE_POWERWASH + - DEVICE_START_CRD_SESSION + - CAPTURE_LOGS + - FETCH_CRD_AVAILABILITY_INFO + - FETCH_SUPPORT_PACKET + payload: + description: >- + The payload for the command, provide it only if command supports it. + The following commands support adding payload: * `SET_VOLUME`: + Payload is a stringified JSON object in the form: { "volume": 50 }. + The volume has to be an integer in the range [0,100]. * + `DEVICE_START_CRD_SESSION`: Payload is optionally a stringified JSON + object in the form: { "ackedUserPresence": true, "crdSessionType": + string }. `ackedUserPresence` is a boolean. By default, + `ackedUserPresence` is set to `false`. To start a Chrome Remote + Desktop session for an active device, set `ackedUserPresence` to + `true`. `crdSessionType` can only select from values `private` + (which grants the remote admin exclusive control of the ChromeOS + device) or `shared` (which allows the admin and the local user to + share control of the ChromeOS device). If not set, `crdSessionType` + defaults to `shared`. The `FETCH_CRD_AVAILABILITY_INFO` command can + be used to determine available session types on the device. * + `REBOOT`: Payload is a stringified JSON object in the form: { + "user_session_delay_seconds": 300 }. The + `user_session_delay_seconds` is the amount of seconds to wait before + rebooting the device if a user is logged in. It has to be an integer + in the range [0,300]. When payload is not present for reboot, 0 + delay is the default. Note: This only applies if an actual user is + logged in, including a Guest. If the device is in the login screen + or in Kiosk mode the value is not respected and the device + immediately reboots. * `FETCH_SUPPORT_PACKET`: Payload is optionally + a stringified JSON object in the form: {"supportPacketDetails":{ + "issueCaseId": optional_support_case_id_string, "issueDescription": + optional_issue_description_string, "requestedDataCollectors": []}} + The list of available `data_collector_enums` are as following: + Chrome System Information (1), Crash IDs (2), Memory Details (3), UI + Hierarchy (4), Additional ChromeOS Platform Logs (5), Device Event + (6), Intel WiFi NICs Debug Dump (7), Touch Events (8), Lacros (9), + Lacros System Information (10), ChromeOS Flex Logs (11), DBus + Details (12), ChromeOS Network Routes (13), ChromeOS Shill + (Connection Manager) Logs (14), Policies (15), ChromeOS System State + and Logs (16), ChromeOS System Logs (17), ChromeOS Chrome User Logs + (18), ChromeOS Bluetooth (19), ChromeOS Connected Input Devices + (20), ChromeOS Traffic Counters (21), ChromeOS Virtual Keyboard + (22), ChromeOS Network Health (23). See more details in [help + article](https://support.google.com/chrome/a?p=remote-log). type: string - orderNumber: - description: The device's order number. Only devices directly purchased from Google have an order number. + DirectoryChromeosdevicesIssueCommandResponse: + id: DirectoryChromeosdevicesIssueCommandResponse + description: A response for issuing a command. + type: object + properties: + commandId: + description: >- + The unique ID of the issued command, used to retrieve the command + status. type: string - macAddress: - description: 'The device''s wireless MAC address. If the device does not have this information, it is not included in the response.' + format: int64 + DirectoryChromeosdevicesCommand: + id: DirectoryChromeosdevicesCommand + description: Information regarding a command that was issued to a device. + type: object + properties: + commandId: + description: Unique ID of a device command. type: string - model: + format: int64 + type: + description: The type of the command. type: string - description: 'The device''s model information. If the device does not have this information, this property is not included in the response.' - tpmVersionInfo: - properties: - firmwareVersion: - description: TPM firmware version. - type: string - tpmModel: - description: TPM model number. - type: string - specLevel: - type: string - description: TPM specification level. See Library Specification for TPM 2.0 and Main Specification for TPM 1.2. - manufacturer: - type: string - description: TPM manufacturer code. - family: - description: 'TPM family. We use the TPM 2.0 style encoding, e.g.: TPM 1.2: "1.2" -> 312e3200 TPM 2.0: "2.0" -> 322e3000' - type: string - vendorSpecific: - type: string - description: Vendor-specific information such as Vendor ID. - description: Trusted Platform Module (TPM) (Read-only) - type: object - manufactureDate: + enumDescriptions: + - The command type was unspecified. + - >- + Reboot the device. Can be issued to Kiosk and managed guest + session devices, and regular devices running ChromeOS version 113 + or later. + - >- + Take a screenshot of the device. Only available if the device is + in Kiosk Mode. + - >- + Set the volume of the device. Can only be issued to Kiosk and + managed guest session devices. + - >- + Wipe all the users off of the device. Executing this command in + the device will remove all user profile data, but it will keep + device policy and enrollment. + - >- + Wipes the device by performing a power wash. Executing this + command in the device will remove all data including user + policies, device policies and enrollment policies. Warning: This + will revert the device back to a factory state with no enrollment + unless the device is subject to forced or auto enrollment. Use + with caution, as this is an irreversible action! + - Starts a Chrome Remote Desktop session. + - >- + Capture the system logs of a kiosk device. The logs can be + downloaded from the downloadUrl link present in `deviceFiles` + field of + [chromeosdevices](https://developers.google.com/workspace/admin/directory/reference/rest/v1/chromeosdevices) + - >- + Fetches available type(s) of Chrome Remote Desktop sessions + (private or shared) that can be used to remotely connect to the + device. + - >- + Fetch support packet from a device remotely. Support packet is a + zip archive that contains various system logs and debug data from + a ChromeOS device. The support packet can be downloaded from the + downloadURL link present in the `deviceFiles` field of + [`chromeosdevices`](https://developers.google.com/workspace/admin/directory/reference/rest/v1/chromeosdevices) + enum: + - COMMAND_TYPE_UNSPECIFIED + - REBOOT + - TAKE_A_SCREENSHOT + - SET_VOLUME + - WIPE_USERS + - REMOTE_POWERWASH + - DEVICE_START_CRD_SESSION + - CAPTURE_LOGS + - FETCH_CRD_AVAILABILITY_INFO + - FETCH_SUPPORT_PACKET + issueTime: + description: The timestamp when the command was issued by the admin. type: string - description: (Read-only) The date the device was manufactured in yyyy-mm-dd format. - bootMode: + format: google-datetime + state: + description: Indicates the command state. type: string - description: 'The boot mode for the device. The possible values are: * `Verified`: The device is running a valid version of the Chrome OS. * `Dev`: The devices''s developer hardware switch is enabled. When booted, the device has a command line shell. For an example of a developer switch, see the [Chromebook developer information](https://www.chromium.org/chromium-os/developer-information-for-chrome-os-devices/samsung-series-5-chromebook#TOC-Developer-switch).' - etag: + enumDescriptions: + - The command status was unspecified. + - An unexpired command not yet sent to the client. + - >- + The command didn't get executed by the client within the expected + time. + - The command is cancelled by admin while in PENDING. + - The command has been sent to the client. + - The client has responded that it received the command. + - The client has (un)successfully executed the command. + enum: + - STATE_UNSPECIFIED + - PENDING + - EXPIRED + - CANCELLED + - SENT_TO_CLIENT + - ACKED_BY_CLIENT + - EXECUTED_BY_CLIENT + commandExpireTime: + description: >- + The time at which the command will expire. If the device doesn't + execute the command within this time the command will become + expired. type: string - description: ETag of the resource. - notes: + format: google-datetime + commandResult: + description: The result of the command execution. + $ref: '#/components/schemas/DirectoryChromeosdevicesCommandResult' + payload: + description: The payload that the command specified, if any. type: string - description: 'Notes about this device added by the administrator. This property can be [searched](https://support.google.com/chrome/a/answer/1698333) with the [list](/admin-sdk/directory/v1/reference/chromeosdevices/list) method''s `query` parameter. Maximum length is 500 characters. Empty values are allowed.' - lastEnrollmentTime: - description: Date and time the device was last enrolled (Read-only) - format: date-time + DirectoryChromeosdevicesCommandResult: + id: DirectoryChromeosdevicesCommandResult + description: The result of executing a command. + type: object + properties: + result: + description: The result of the command. type: string - platformVersion: - description: The Chrome device's platform version. + enumDescriptions: + - The command result was unspecified. + - The command was ignored as obsolete. + - The command could not be executed successfully. + - The command was successfully executed. + enum: + - COMMAND_RESULT_TYPE_UNSPECIFIED + - IGNORED + - FAILURE + - SUCCESS + executeTime: + description: The time at which the command was executed or failed to execute. type: string - cpuInfo: - description: Information regarding CPU specs in the device. - type: array - items: - type: object - properties: - model: - description: The CPU model name. - type: string - logicalCpus: - items: - description: Status of a single logical CPU. - type: object - properties: - currentScalingFrequencyKhz: - format: int32 - type: integer - description: Current frequency the CPU is running at. - maxScalingFrequencyKhz: - format: int32 - type: integer - description: 'Maximum frequency the CPU is allowed to run at, by policy.' - idleDuration: - description: Idle time since last boot. - format: google-duration - type: string - cStates: - items: - properties: - sessionDuration: - format: google-duration - type: string - description: Time spent in the state since the last reboot. - displayName: - type: string - description: Name of the state. - type: object - description: Status of a single C-state. C-states are various modes the CPU can transition to in order to use more or less power. - description: C-States indicate the power consumption state of the CPU. For more information look at documentation published by the CPU maker. - type: array - type: array - description: Information for the Logical CPUs - maxClockSpeedKhz: - type: integer - description: The max CPU clock speed in kHz. - format: int32 - architecture: - type: string - description: The CPU architecture. - description: CPU specs for a CPU. - lastKnownNetwork: - items: - description: Information for an ip address. - properties: - wanIpAddress: - description: The WAN IP address. - type: string - ipAddress: - type: string - description: The IP address. - type: object - type: array - description: Contains last known network (Read-only) - lastDeprovisionTimestamp: + format: google-datetime + errorMessage: + description: >- + The error message with a short explanation as to why the command + failed. Only present if the command failed. type: string - description: (Read-only) Date and time for the last deprovision of the device. - annotatedAssetId: + commandResultPayload: + description: >- + The payload for the command result. The following commands respond + with a payload: * `DEVICE_START_CRD_SESSION`: Payload is a + stringified JSON object in the form: { "url": url }. The provided + URL links to the Chrome Remote Desktop session and requires + authentication using only the `email` associated with the command's + issuance. * `FETCH_CRD_AVAILABILITY_INFO`: Payload is a stringified + JSON object in the form: { "deviceIdleTimeInSeconds": number, + "userSessionType": string, "remoteSupportAvailability": string, + "remoteAccessAvailability": string }. The + "remoteSupportAvailability" field is set to "AVAILABLE" if `shared` + CRD session to the device is available. The + "remoteAccessAvailability" field is set to "AVAILABLE" if `private` + CRD session to the device is available. + type: string + BatchChangeChromeOsDeviceStatusRequest: + id: BatchChangeChromeOsDeviceStatusRequest + description: A request for changing the status of a batch of ChromeOS devices. + type: object + properties: + deviceIds: + description: >- + Required. List of the IDs of the ChromeOS devices to change. Maximum + 50. + type: array + items: + type: string + changeChromeOsDeviceStatusAction: + description: >- + Required. The action to take on the ChromeOS device in order to + change its status. type: string - description: The asset identifier as noted by an administrator or specified during enrollment. - orgUnitPath: - description: 'The full parent path with the organizational unit''s name associated with the device. Path names are case insensitive. If the parent organizational unit is the top-level organization, it is represented as a forward slash, `/`. This property can be [updated](/admin-sdk/directory/v1/guides/manage-chrome-devices#move_chrome_devices_to_ou) using the API. For more information about how to create an organizational structure for your device, see the [administration help center](https://support.google.com/a/answer/182433).' + enumDescriptions: + - Default value. Value is unused. + - >- + Deprovisions a ChromeOS device. If you have ChromeOS devices that + are no longer being used in your organization, you should + deprovision them so that you’re no longer managing them. + Deprovisioning the device removes all policies that were on the + device as well as device-level printers and the ability to use the + device as a kiosk. Depending on the upgrade that’s associated with + the device this action might release the license back into the + license pool; which allows you to use the license on a different + device. + - >- + Disables a ChromeOS device. Use this action if a user loses their + device or it’s stolen, this makes it such that the device is still + managed, so it will still receive policies, but no one can use it. + Depending on the upgrade that’s associated with the device this + action might release the license back into the license pool; which + allows you to use the license on a different device. + - >- + Reenables a ChromeOS device to be used after being disabled. + Reenables the device once it's no longer lost or it's been + recovered. This allows the device to be used again. Depending on + the upgrade associated with the device this might consume one + license from the license pool, meaning that if there aren't enough + licenses available the operation will fail. + enum: + - CHANGE_CHROME_OS_DEVICE_STATUS_ACTION_UNSPECIFIED + - CHANGE_CHROME_OS_DEVICE_STATUS_ACTION_DEPROVISION + - CHANGE_CHROME_OS_DEVICE_STATUS_ACTION_DISABLE + - CHANGE_CHROME_OS_DEVICE_STATUS_ACTION_REENABLE + deprovisionReason: + description: >- + Optional. The reason behind a device deprovision. Must be provided + if 'changeChromeOsDeviceStatusAction' is set to + 'CHANGE_CHROME_OS_DEVICE_STATUS_ACTION_DEPROVISION'. Otherwise, omit + this field. type: string - recentUsers: + enumDescriptions: + - The deprovision reason is unknown. + - >- + Same model replacement. You have return materials authorization + (RMA) or you are replacing a malfunctioning device under warranty + with the same device model. + - The device was upgraded. + - The device's domain was changed. + - Service expired for the device. + - >- + The device was deprovisioned for a legacy reason that is no longer + supported. + - >- + Different model replacement. You are replacing this device with an + upgraded or newer device model. + - >- + Retiring from fleet. You are donating, discarding, or otherwise + removing the device from use. + - >- + ChromeOS Flex upgrade transfer. This is a ChromeOS Flex device + that you are replacing with a Chromebook within a year. + - >- + A reason was not required. For example, the licenses were returned + to the customer's license pool. + - >- + The device was deprovisioned by the Repair Service Center. Can + only be set by Repair Service Center during RMA. + enumDeprecated: + - false + - false + - true + - true + - true + - true + - false + - false + - false + - false + - false + enum: + - DEPROVISION_REASON_UNSPECIFIED + - DEPROVISION_REASON_SAME_MODEL_REPLACEMENT + - DEPROVISION_REASON_UPGRADE + - DEPROVISION_REASON_DOMAIN_MOVE + - DEPROVISION_REASON_SERVICE_EXPIRATION + - DEPROVISION_REASON_OTHER + - DEPROVISION_REASON_DIFFERENT_MODEL_REPLACEMENT + - DEPROVISION_REASON_RETIRING_DEVICE + - DEPROVISION_REASON_UPGRADE_TRANSFER + - DEPROVISION_REASON_NOT_REQUIRED + - DEPROVISION_REASON_REPAIR_CENTER + BatchChangeChromeOsDeviceStatusResponse: + id: BatchChangeChromeOsDeviceStatusResponse + description: The response of changing the status of a batch of ChromeOS devices. + type: object + properties: + changeChromeOsDeviceStatusResults: + description: >- + The results for each of the ChromeOS devices provided in the + request. type: array - description: 'A list of recent device users, in descending order, by last login time.' items: - type: object - properties: - email: - type: string - description: The user's email address. This is only present if the user type is `USER_TYPE_MANAGED`. - type: - description: The type of the user. - type: string - description: 'A list of recent device users, in descending order, by last login time.' - cpuStatusReports: - description: Reports of CPU utilization and temperature (Read-only) + $ref: '#/components/schemas/ChangeChromeOsDeviceStatusResult' + ChangeChromeOsDeviceStatusResult: + id: ChangeChromeOsDeviceStatusResult + description: The result of a single ChromeOS device for a Change state operation. + type: object + properties: + deviceId: + description: The unique ID of the ChromeOS device. + type: string + error: + description: The error result of the operation in case of failure. + $ref: '#/components/schemas/Status' + response: + description: The device could change its status successfully. + $ref: '#/components/schemas/ChangeChromeOsDeviceStatusSucceeded' + Status: + id: Status + description: >- + 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](https://github.com/grpc). Each `Status` message + contains three pieces of data: error code, error message, and error + details. You can find out more about this error model and how to work + with it in the [API Design + Guide](https://cloud.google.com/apis/design/errors). + type: object + properties: + code: + description: The status code, which should be an enum value of google.rpc.Code. + type: integer + format: int32 + message: + description: >- + 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 field, or localized by the client. + type: string + details: + description: >- + A list of messages that carry the error details. There is a common + set of message types for APIs to use. + type: array items: - properties: - reportTime: - description: Date and time the report was received. - format: date-time - type: string - cpuUtilizationPercentageInfo: - items: - type: integer - format: int32 - type: array - cpuTemperatureInfo: - items: - type: object - properties: - label: - description: CPU label - type: string - temperature: - type: integer - format: int32 - description: Temperature in Celsius degrees. - type: array - description: A list of CPU temperature samples. type: object - type: array - firmwareVersion: - description: The Chrome device's firmware version. + additionalProperties: + type: any + description: Properties of the object. Contains field @type with type URL. + ChangeChromeOsDeviceStatusSucceeded: + id: ChangeChromeOsDeviceStatusSucceeded + description: Response for a successful ChromeOS device status change. + type: object + properties: {} + Asp: + id: Asp + description: >- + An application-specific password (ASP) is used with applications that do + not accept a verification code when logging into the application on + certain devices. The ASP access code is used instead of the login and + password you commonly use when accessing an application through a + browser. For more information about ASPs and how to create one, see the + [help center](https://support.google.com/a/answer/2537800#asp). + type: object + properties: + codeId: + description: The unique ID of the ASP. + type: integer + format: int32 + name: + description: >- + The name of the application that the user, represented by their + `userId`, entered when the ASP was created. type: string - orgUnitId: - description: 'The unique ID of the organizational unit. orgUnitPath is the human readable version of orgUnitId. While orgUnitPath may change by renaming an organizational unit within the path, orgUnitId is unchangeable for one organizational unit. This property can be [updated](/admin-sdk/directory/v1/guides/manage-chrome-devices#move_chrome_devices_to_ou) using the API. For more information about how to create an organizational structure for your device, see the [administration help center](https://support.google.com/a/answer/182433).' + creationTime: + description: >- + The time when the ASP was created. Expressed in [Unix + time](https://en.wikipedia.org/wiki/Epoch_time) format. type: string - deviceId: + format: int64 + lastTimeUsed: + description: >- + The time when the ASP was last used. Expressed in [Unix + time](https://en.wikipedia.org/wiki/Epoch_time) format. type: string - description: The unique ID of the Chrome device. - screenshotFiles: - items: - properties: - name: - description: File name - type: string - downloadUrl: - description: File download URL - type: string - createTime: - type: string - format: date-time - description: Date and time the file was created - type: - description: File type - type: string - type: object - description: A list of screenshot files to download. Type is always "SCREENSHOT_FILE". (Read-only) + format: int64 + userKey: + description: The unique ID of the user who issued the ASP. + type: string + kind: + description: The type of the API resource. This is always `admin#directory#asp`. + default: admin#directory#asp + type: string + etag: + description: ETag of the ASP. + type: string + Asps: + id: Asps + type: object + properties: + kind: + description: >- + The type of the API resource. This is always + `admin#directory#aspList`. + default: admin#directory#aspList + type: string + etag: + description: ETag of the resource. + type: string + items: + description: A list of ASP resources. type: array - firstEnrollmentTime: + items: + $ref: '#/components/schemas/Asp' + Channel: + id: Channel + description: An notification channel used to watch for resource changes. + type: object + properties: + id: + description: A UUID or similar unique string that identifies this channel. type: string - description: Date and time for the first time the device was enrolled. - supportEndDate: + token: + description: >- + An arbitrary string delivered to the target address with each + notification delivered over this channel. Optional. type: string - format: date-time - description: Final date the device will be supported (Read-only) - meid: + expiration: + description: >- + Date and time of notification channel expiration, expressed as a + Unix timestamp, in milliseconds. Optional. type: string - description: 'The Mobile Equipment Identifier (MEID) or the International Mobile Equipment Identity (IMEI) for the 3G mobile card in a mobile device. A MEID/IMEI is typically used when adding a device to a wireless carrier''s post-pay service plan. If the device does not have this information, this property is not included in the response. For more information on how to export a MEID/IMEI list, see the [Developer''s Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices.html#export_meid).' - willAutoRenew: - type: boolean - description: Determines if the device will auto renew its support after the support end date. This is a read-only property. - autoUpdateExpiration: format: int64 + type: + description: The type of delivery mechanism used for this channel. type: string - description: (Read-only) The timestamp after which the device will stop receiving Chrome updates or support - status: + address: + description: The address where notifications are delivered for this channel. type: string - description: The status of the device. - annotatedLocation: - description: The address or location of the device as noted by the administrator. Maximum length is `200` characters. Empty values are allowed. + payload: + description: A Boolean value to indicate whether payload is wanted. Optional. + type: boolean + params: + description: >- + Additional parameters controlling delivery channel behavior. + Optional. For example, `params.ttl` specifies the time-to-live in + seconds for the notification channel, where the default is 2 hours + and the maximum TTL is 2 days. + type: object + additionalProperties: + type: string + resourceId: + description: >- + An opaque ID that identifies the resource being watched on this + channel. Stable across different API versions. type: string - activeTimeRanges: - description: A list of active time ranges (Read-only). - items: - type: object - properties: - date: - description: Date of usage - format: date - type: string - activeTime: - type: integer - format: int32 - description: Duration of usage in milliseconds. - type: array - dockMacAddress: + resourceUri: + description: A version-specific identifier for the watched resource. type: string - description: (Read-only) Built-in MAC address for the docking station that the device connected to. Factory sets Media access control address (MAC address) assigned for use by a dock. It is reserved specifically for MAC pass through device policy. The format is twelve (12) hexadecimal digits without any delimiter (uppercase letters). This is only relevant for some devices. - lastSync: - description: Date and time the device was last synchronized with the policy settings in the G Suite administrator control panel (Read-only) + kind: + description: >- + Identifies this as a notification channel used to watch for changes + to a resource, which is `api#channel`. + default: api#channel type: string - format: date-time - deprovisionReason: - description: (Read-only) Deprovision reason. + Customer: + id: Customer + type: object + properties: + id: + description: >- + The unique ID for the customer's Google Workspace account. + (Readonly) type: string - enumDescriptions: - - The deprovision reason is unknown. - - The device was replaced by a device with the same model. - - The device was upgraded. - - The device's domain was changed. - - Service expired for the device. - - The device was deprovisioned for a legacy reason that is no longer supported. - - The device was replaced by a device with a different model. - - The device was retired. - - The device's perpetual upgrade was transferred to a new device. - - 'A reason was not required. For example, the licenses were returned to the customer''s license pool.' - - The device was deprovisioned by a repair service center. - enum: - - deprovisionReasonUnspecified - - deprovisionReasonSameModelReplacement - - deprovisionReasonUpgrade - - deprovisionReasonDomainMove - - deprovisionReasonServiceExpiration - - deprovisionReasonOther - - deprovisionReasonDifferentModelReplacement - - deprovisionReasonRetiringDevice - - deprovisionReasonUpgradeTransfer - - deprovisionReasonNotRequired - - deprovisionReasonRepairCenter - diskVolumeReports: - description: Reports of disk space and other info about mounted/connected volumes. - items: - properties: - volumeInfo: - type: array - items: - properties: - storageFree: - type: string - format: int64 - description: 'Free disk space [in bytes]' - storageTotal: - description: 'Total disk space [in bytes]' - type: string - format: int64 - volumeId: - description: Volume id - type: string - type: object - description: Disk volumes - type: object - type: array - osUpdateStatus: - $ref: '#/components/schemas/OsUpdateStatus' - description: The status of the OS updates for the device. - ethernetMacAddress0: + customerDomain: + description: >- + The customer's primary domain name string. Do not include the `www` + prefix when creating a new customer. type: string - description: '(Read-only) MAC address used by the Chromebook’s internal ethernet port, and for onboard network (ethernet) interface. The format is twelve (12) hexadecimal digits without any delimiter (uppercase letters). This is only relevant for some devices.' - osVersion: - description: The Chrome device's operating system version. + kind: + description: >- + Identifies the resource as a customer. Value: + `admin#directory#customer` + default: admin#directory#customer type: string - id: ChromeOsDevice - AuxiliaryMessage: + etag: + description: ETag of the resource. + type: string + alternateEmail: + description: >- + The customer's secondary contact email address. This email address + cannot be on the same domain as the `customerDomain` + type: string + customerCreationTime: + description: The customer's creation time (Readonly) + type: string + format: date-time + postalAddress: + description: The customer's postal address information. + $ref: '#/components/schemas/CustomerPostalAddress' + phoneNumber: + description: >- + The customer's contact phone number in + [E.164](https://en.wikipedia.org/wiki/E.164) format. + type: string + language: + description: >- + The customer's ISO 639-2 language code. See the [Language + Codes](https://developers.google.com/workspace/admin/directory/v1/languages) + page for the list of supported codes. Valid language codes outside + the supported set will be accepted by the API but may lead to + unexpected behavior. The default value is `en`. + type: string + CustomerPostalAddress: + id: CustomerPostalAddress + type: object properties: - severity: - description: Message severity - enum: - - SEVERITY_UNSPECIFIED - - SEVERITY_INFO - - SEVERITY_WARNING - - SEVERITY_ERROR + countryCode: + description: >- + This is a required property. For `countryCode` information see the + [ISO 3166 country code + elements](https://www.iso.org/iso/country_codes.htm). + type: string + addressLine2: + description: Address line 2 of the address. + type: string + region: + description: >- + Name of the region. An example of a region value is `NY` for the + state of New York. + type: string + addressLine3: + description: Address line 3 of the address. + type: string + locality: + description: >- + Name of the locality. An example of a locality value is the city of + `San Francisco`. + type: string + postalCode: + description: >- + The postal code. A postalCode example is a postal zip code such as + `10009`. This is in accordance with - http: + //portablecontacts.net/draft-spec.html#address_element. + type: string + addressLine1: + description: >- + A customer's physical address. The address can be composed of one to + three lines. type: string - enumDescriptions: - - Message type unspecified. - - 'Message of severity: info.' - - 'Message of severity: warning.' - - 'Message of severity: error.' - fieldMask: - description: Field that this message concerns. - format: google-fieldmask + organizationName: + description: The company or company division name. type: string - auxiliaryMessage: + contactName: + description: The customer contact's name. type: string - description: 'Human readable message in English. Example: "Given printer is invalid or no longer supported."' - id: AuxiliaryMessage + DomainAlias: + id: DomainAlias type: object - description: 'Auxiliary message about issues with printers or settings. Example: {message_type:AUXILIARY_MESSAGE_WARNING, field_mask:make_and_model, message:"Given printer is invalid or no longer supported."}' - Feature: - description: JSON template for Feature object in Directory API. - id: Feature properties: kind: description: Kind of resource this is. - default: admin#directory#resources#features#Feature + default: admin#directory#domainAlias type: string - etags: + parentDomainName: + description: >- + The parent domain name that the domain alias is associated with. + This can either be a primary or secondary domain name within a + customer. + annotations: + required: + - directory.domains.insert + type: string + verified: + description: Indicates the verification state of a domain alias. (Read-only) + type: boolean + creationTime: + description: The creation time of the domain alias. (Read-only). + type: string + format: int64 + etag: description: ETag of the resource. type: string - name: - description: The name of the feature. + domainAliasName: + description: The domain alias name. type: string - annotations: - required: - - directory.resources.features.insert - type: object - GroupAlias: - id: GroupAlias - description: 'The Directory API manages aliases, which are alternative email addresses.' + DomainAliases: + id: DomainAliases type: object properties: kind: - description: 'The type of the API resource. For Alias resources, the value is `admin#directory#alias`.' - type: string - alias: - type: string - description: The alias email address. - primaryEmail: - description: The primary email address of the group. + description: Kind of resource this is. + default: admin#directory#domainAliases type: string etag: - type: string description: ETag of the resource. - id: - description: The unique ID of the group. type: string - OrgUnit: - description: 'Managing your account''s organizational units allows you to configure your users'' access to services and custom settings. For more information about common organizational unit tasks, see the [Developer''s Guide](/admin-sdk/directory/v1/guides/manage-org-units.html). The customer''s organizational unit hierarchy is limited to 35 levels of depth.' - id: OrgUnit + domainAliases: + description: A list of domain alias objects. + type: array + items: + $ref: '#/components/schemas/DomainAlias' + Domains: + id: Domains + type: object properties: - description: - description: Description of the organizational unit. - type: string kind: + description: Kind of resource this is. + default: admin#directory#domain type: string - description: 'The type of the API resource. For Orgunits resources, the value is `admin#directory#orgUnit`.' - default: admin#directory#orgUnit + domainAliases: + description: A list of domain alias objects. (Read-only) + type: array + items: + $ref: '#/components/schemas/DomainAlias' + verified: + description: Indicates the verification state of a domain. (Read-only). + type: boolean etag: - type: string description: ETag of the resource. - orgUnitPath: - type: string - description: 'The full path to the organizational unit. The `orgUnitPath` is a derived property. When listed, it is derived from `parentOrgunitPath` and organizational unit''s `name`. For example, for an organizational unit named ''apps'' under parent organization ''/engineering'', the orgUnitPath is ''/engineering/apps''. In order to edit an `orgUnitPath`, either update the name of the organization or the `parentOrgunitPath`. A user''s organizational unit determines which Google Workspace services the user has access to. If the user is moved to a new organization, the user''s access changes. For more information about organization structures, see the [administration help center](https://support.google.com/a/answer/4352075). For more information about moving a user to a different organization, see [Update a user](/admin-sdk/directory/v1/guides/manage-users.html#update_user).' - blockInheritance: - description: 'Determines if a sub-organizational unit can inherit the settings of the parent organization. The default value is `false`, meaning a sub-organizational unit inherits the settings of the nearest parent organizational unit. We recommend using the default value because setting `block_inheritance` to `true` can have _unintended consequences_. For more information about inheritance and users in an organization structure, see the [administration help center](https://support.google.com/a/answer/4352075).' - type: boolean - parentOrgUnitPath: - description: 'The organizational unit''s parent path. For example, /corp/sales is the parent path for /corp/sales/sales_support organizational unit. Required, unless `parentOrgUnitId` is set.' type: string - parentOrgUnitId: + creationTime: + description: >- + Creation time of the domain. Expressed in [Unix + time](https://en.wikipedia.org/wiki/Epoch_time) format. (Read-only). type: string - description: 'The unique ID of the parent organizational unit. Required, unless `parentOrgUnitPath` is set.' - name: + format: int64 + isPrimary: + description: Indicates if the domain is a primary domain (Read-only). + type: boolean + domainName: + description: The domain name of the customer. annotations: required: - - directory.orgunits.insert - description: 'The organizational unit''s path name. For example, an organizational unit''s name within the /corp/support/sales_support parent path is sales_support. Required.' - type: string - orgUnitId: + - directory.domains.insert type: string - description: The unique ID of the organizational unit. + Domains2: + id: Domains2 type: object - Schemas: + properties: + kind: + description: Kind of resource this is. + default: admin#directory#domains + type: string + etag: + description: ETag of the resource. + type: string + domains: + description: A list of domain objects. + type: array + items: + $ref: '#/components/schemas/Domains' + Group: + id: Group + description: >- + Google Groups provide your users the ability to send messages to groups + of people using the group's email address. For more information about + common tasks, see the [Developer's + Guide](https://developers.google.com/workspace/admin/directory/v1/guides/manage-groups). + For information about other types of groups, see the [Cloud Identity + Groups API + documentation](https://cloud.google.com/identity/docs/groups). Note: The + user calling the API (or being impersonated by a service account) must + have an assigned + [role](https://developers.google.com/workspace/admin/directory/v1/guides/manage-roles) + that includes Admin API Groups permissions, such as Super Admin or + Groups Admin. type: object properties: + id: + description: >- + Read-only. The unique ID of a group. A group `id` can be used as a + group request URI's `groupKey`. + type: string + email: + description: >- + The group's email address. If your account has multiple domains, + select the appropriate domain for the email address. The `email` + must be unique. This property is required when creating a group. + Group email addresses are subject to the same character usage rules + as usernames, see the [help + center](https://support.google.com/a/answer/9193374) for details. + annotations: + required: + - directory.groups.insert + type: string + name: + description: The group's display name. + type: string + description: + description: >- + An extended description to help users determine the purpose of a + group. For example, you can include information about who should + join the group, the types of messages to send to the group, links to + FAQs about the group, or related groups. Maximum length is `4,096` + characters. + type: string + adminCreated: + description: >- + Read-only. Value is `true` if this group was created by an + administrator rather than a user. + type: boolean + directMembersCount: + description: >- + The number of users that are direct members of the group. If a group + is a member (child) of this group (the parent), members of the child + group are not counted in the `directMembersCount` property of the + parent group. + type: string + format: int64 + kind: + description: >- + The type of the API resource. For Groups resources, the value is + `admin#directory#group`. + default: admin#directory#group + type: string etag: description: ETag of the resource. type: string + aliases: + description: >- + Read-only. The list of a group's alias email addresses. To add, + update, or remove a group's aliases, use the `groups.aliases` + methods. If edited in a group's POST or PUT request, the edit is + ignored. + type: array + items: + type: string + nonEditableAliases: + description: >- + Read-only. The list of the group's non-editable alias email + addresses that are outside of the account's primary domain or + subdomains. These are functioning email addresses used by the group. + This is a read-only property returned in the API's response for a + group. If edited in a group's POST or PUT request, the edit is + ignored. + type: array + items: + type: string + Groups: + id: Groups + type: object + properties: kind: description: Kind of resource this is. - default: admin#directory#schemas + default: admin#directory#groups type: string - schemas: - description: A list of UserSchema objects. - items: - $ref: '#/components/schemas/Schema' + etag: + description: ETag of the resource. + type: string + groups: + description: A list of group objects. type: array - id: Schemas - description: JSON response template for List Schema operation in Directory API. - SchemaFieldSpec: - id: SchemaFieldSpec - description: 'You can use schemas to add custom fields to user profiles. You can use these fields to store information such as the projects your users work on, their physical locations, their hire dates, or whatever else fits your business needs. For more information, see [Custom User Fields](/admin-sdk/directory/v1/guides/manage-schemas).' + items: + $ref: '#/components/schemas/Group' + nextPageToken: + description: Token used to access next page of this result. + type: string + GroupAlias: + id: GroupAlias + description: >- + The Directory API manages aliases, which are alternative email + addresses. type: object properties: - displayName: - description: Display Name of the field. + id: + description: The unique ID of the group. type: string - annotations: - required: - - directory.schemas.insert - - directory.schemas.update - fieldType: - annotations: - required: - - directory.schemas.insert - - directory.schemas.update + primaryEmail: + description: The primary email address of the group. type: string - description: The type of the field. - indexed: - default: 'true' - type: boolean - description: 'Boolean specifying whether the field is indexed or not. Default: `true`.' - readAccessType: - description: 'Specifies who can view values of this field. See [Retrieve users as a non-administrator](/admin-sdk/directory/v1/guides/manage-users#retrieve_users_non_admin) for more information. Note: It may take up to 24 hours for changes to this field to be reflected.' - default: ALL_DOMAIN_USERS + alias: + description: The alias email address. type: string - fieldId: - description: The unique identifier of the field (Read-only) + kind: + description: >- + The type of the API resource. For Alias resources, the value is + `admin#directory#alias`. type: string etag: + description: ETag of the resource. type: string - description: The ETag of the field. + Member: + id: Member + description: >- + A Google Groups member can be a user or another group. This member can + be inside or outside of your account's domains. For more information + about common group member tasks, see the [Developer's + Guide](https://developers.google.com/workspace/admin/directory/v1/guides/manage-group-members). + type: object + properties: kind: + description: >- + The type of the API resource. For Members resources, the value is + `admin#directory#member`. + default: admin#directory#member type: string - default: admin#directory#schema#fieldspec - description: The kind of resource this is. For schema fields this is always `admin#directory#schema#fieldspec`. - multiValued: + email: + description: >- + The member's email address. A member can be a user or another group. + This property is required when adding a member to a group. The + `email` must be unique and cannot be an alias of another group. If + the email address is changed, the API automatically reflects the + email address changes. + type: string + role: + description: >- + The member's role in a group. The API returns an error for cycles in + group memberships. For example, if `group1` is a member of `group2`, + `group2` cannot be a member of `group1`. For more information about + a member's role, see the [administration help + center](https://support.google.com/a/answer/167094). + type: string + etag: + description: ETag of the resource. + type: string + type: + description: The type of group member. + type: string + status: + description: Status of member (Immutable) + type: string + delivery_settings: + description: >- + Defines mail delivery preferences of member. This field is only + supported by `insert`, `update`, and `get` methods. + type: string + id: + description: >- + The unique ID of the group member. A member `id` can be used as a + member request URI's `memberKey`. + type: string + MembersHasMember: + id: MembersHasMember + description: JSON template for Has Member response in Directory API. + type: object + properties: + isMember: + description: >- + Output only. Identifies whether the given user is a member of the + group. Membership can be direct or nested. + readOnly: true type: boolean - description: 'A boolean specifying whether this is a multi-valued field or not. Default: `false`.' - numericIndexingSpec: - description: 'Indexing spec for a numeric field. By default, only exact match queries will be supported for numeric fields. Setting the `numericIndexingSpec` allows range queries to be supported.' - properties: - maxValue: - type: number - format: double - description: 'Maximum value of this field. This is meant to be indicative rather than enforced. Values outside this range will still be indexed, but search may not be as performant.' - minValue: - format: double - type: number - description: 'Minimum value of this field. This is meant to be indicative rather than enforced. Values outside this range will still be indexed, but search may not be as performant.' - type: object - fieldName: - annotations: - required: - - directory.schemas.insert - - directory.schemas.update - description: The name of the field. + Members: + id: Members + type: object + properties: + kind: + description: Kind of resource this is. + default: admin#directory#members + type: string + etag: + description: ETag of the resource. + type: string + members: + description: A list of member objects. + type: array + items: + $ref: '#/components/schemas/Member' + nextPageToken: + description: Token used to access next page of this result. type: string MobileDeviceAction: id: MobileDeviceAction + type: object properties: action: - type: string + description: The action to be performed on the device. annotations: required: - directory.mobiledevices.action - description: The action to be performed on the device. + type: string + MobileDevice: + id: MobileDevice + description: >- + Google Workspace Mobile Management includes Android, [Google + Sync](https://support.google.com/a/answer/135937), and iOS devices. For + more information about common group mobile device API tasks, see the + [Developer's + Guide](https://developers.google.com/workspace/admin/directory/v1/guides/manage-mobile-devices.html). type: object - Domains2: properties: kind: - default: admin#directory#domains - description: Kind of resource this is. + description: >- + The type of the API resource. For Mobiledevices resources, the value + is `admin#directory#mobiledevice`. + default: admin#directory#mobiledevice type: string etag: - type: string description: ETag of the resource. - domains: + type: string + resourceId: + description: The unique ID the API service uses to identify the mobile device. + type: string + deviceId: + description: >- + The serial number for a Google Sync mobile device. For Android and + iOS devices, this is a software generated unique identifier. + type: string + name: + description: >- + The list of the owner's user names. If your application needs the + current list of device owner names, use the + [get](https://developers.google.com/workspace/admin/directory/v1/reference/mobiledevices/get.html) + method. For more information about retrieving mobile device user + information, see the [Developer's + Guide](https://developers.google.com/workspace/admin/directory/v1/guides/manage-users#get_user). type: array items: - $ref: '#/components/schemas/Domains' - description: A list of domain objects. - type: object - id: Domains2 - UserPosixAccount: - type: object - id: UserPosixAccount - description: JSON template for a POSIX account entry. - properties: - uid: - description: The POSIX compliant user ID. - format: uint64 + type: string + email: + description: >- + The list of the owner's email addresses. If your application needs + the current list of user emails, use the + [get](https://developers.google.com/workspace/admin/directory/v1/reference/mobiledevices/get.html) + method. For additional information, see the [retrieve a + user](https://developers.google.com/workspace/admin/directory/v1/guides/manage-users#get_user) + method. + type: array + items: + type: string + model: + description: >- + The mobile device's model name, for example Nexus S. This property + can be + [updated](https://developers.google.com/workspace/admin/directory/v1/reference/mobiledevices/update.html). + For more information, see the [Developer's + Guide](https://developers.google.com/workspace/admin/directory/v1/guides/manage-mobile=devices#update_mobile_device). type: string - homeDirectory: - description: The path to the home directory for this account. + os: + description: >- + The mobile device's operating system, for example IOS 4.3 or Android + 2.3.5. This property can be + [updated](https://developers.google.com/workspace/admin/directory/v1/reference/mobiledevices/update.html). + For more information, see the [Developer's + Guide](https://developers.google.com/workspace/admin/directory/v1/guides/manage-mobile-devices#update_mobile_device). type: string - shell: + type: + description: The type of mobile device. type: string - description: The path to the login shell for this account. - gid: + status: + description: The device's status. type: string - format: uint64 - description: The default group ID. - username: - description: The username of the account. + hardwareId: + description: >- + The IMEI/MEID unique identifier for Android hardware. It is not + applicable to Google Sync devices. When adding an Android mobile + device, this is an optional property. When updating one of these + devices, this is a read-only property. type: string - systemId: - description: System identifier for which account Username or Uid apply to. + firstSync: + description: >- + Date and time the device was first synchronized with the policy + settings in the G Suite administrator control panel (Read-only) type: string - accountId: + format: date-time + lastSync: + description: >- + Date and time the device was last synchronized with the policy + settings in the G Suite administrator control panel (Read-only) type: string - description: A POSIX account field identifier. - gecos: - description: The GECOS (user information) for this account. + format: date-time + userAgent: + description: >- + Gives information about the device such as `os` version. This + property can be + [updated](https://developers.google.com/workspace/admin/directory/v1/reference/mobiledevices/update.html). + For more information, see the [Developer's + Guide](https://developers.google.com/workspace/admin/directory/v1/guides/manage-mobile-devices#update_mobile_device). type: string - primary: + serialNumber: + description: The device's serial number. + type: string + imei: + description: The device's IMEI number. + type: string + meid: + description: The device's MEID number. + type: string + wifiMacAddress: + description: The device's MAC address on Wi-Fi networks. + type: string + networkOperator: + description: Mobile Device mobile or network operator (if available) (Read-only) + type: string + defaultLanguage: + description: The default locale used on the device. + type: string + managedAccountIsOnOwnerProfile: + description: >- + Boolean indicating if this account is on owner/primary profile or + not. type: boolean - description: If this is user's primary account within the SystemId. - operatingSystemType: - description: The operating system type for this account. + deviceCompromisedStatus: + description: The compromised device status. type: string - UserAddress: + buildNumber: + description: The device's operating system build number. + type: string + kernelVersion: + description: The device's kernel version. + type: string + basebandVersion: + description: The device's baseband version. + type: string + unknownSourcesStatus: + description: Unknown sources enabled or disabled on device (Read-only) + type: boolean + developerOptionsStatus: + description: Developer options enabled or disabled on device (Read-only) + type: boolean + otherAccountsInfo: + description: The list of accounts added on device (Read-only) + type: array + items: + type: string + adbStatus: + description: Adb (USB debugging) enabled or disabled on device (Read-only) + type: boolean + supportsWorkProfile: + description: Work profile supported on device (Read-only) + type: boolean + manufacturer: + description: Mobile Device manufacturer (Read-only) + type: string + releaseVersion: + description: Mobile Device release version version (Read-only) + type: string + securityPatchLevel: + description: Mobile Device Security patch level (Read-only) + type: string + format: int64 + brand: + description: Mobile Device Brand (Read-only) + type: string + bootloaderVersion: + description: Mobile Device Bootloader version (Read-only) + type: string + hardware: + description: Mobile Device Hardware (Read-only) + type: string + encryptionStatus: + description: Mobile Device Encryption Status (Read-only) + type: string + devicePasswordStatus: + description: DevicePasswordStatus (Read-only) + type: string + privilege: + description: DMAgentPermission (Read-only) + type: string + applications: + description: >- + The list of applications installed on an Android mobile device. It + is not applicable to Google Sync and iOS devices. The list includes + any Android applications that access Google Workspace data. When + updating an applications list, it is important to note that updates + replace the existing list. If the Android device has two existing + applications and the API updates the list with five applications, + the is now the updated list of five applications. + type: array + items: + type: object + properties: + packageName: + description: >- + The application's package name. An example is + `com.android.browser`. + type: string + displayName: + description: The application's display name. An example is `Browser`. + type: string + versionName: + description: The application's version name. An example is `3.2-140714`. + type: string + versionCode: + description: The application's version code. An example is `13`. + type: integer + format: int32 + permission: + description: >- + The list of permissions of this application. These can be + either a standard Android permission or one defined by the + application, and are found in an application's [Android + manifest](https://developer.android.com/guide/topics/manifest/uses-permission-element.html). + Examples of a Calendar application's permissions are + `READ_CALENDAR`, or `MANAGE_ACCOUNTS`. + type: array + items: + type: string + MobileDevices: + id: MobileDevices type: object - id: UserAddress - description: JSON template for address. properties: - type: - description: Each entry can have a type which indicates standard values of that entry. For example address could be of home work etc. In addition to the standard type an entry can have a custom type and can take any value. Such type should have the CUSTOM value as type and also have a customType value. + kind: + description: Kind of resource this is. + default: admin#directory#mobiledevices type: string - customType: - description: Custom type. + etag: + description: ETag of the resource. type: string - extendedAddress: + mobiledevices: + description: A list of Mobile Device objects. + type: array + items: + $ref: '#/components/schemas/MobileDevice' + nextPageToken: + description: Token used to access next page of this result. type: string - description: Extended Address. - postalCode: + OrgUnit: + id: OrgUnit + description: >- + Managing your account's organizational units allows you to configure + your users' access to services and custom settings. For more information + about common organizational unit tasks, see the [Developer's + Guide](https://developers.google.com/workspace/admin/directory/v1/guides/manage-org-units.html). + The customer's organizational unit hierarchy is limited to 35 levels of + depth. + type: object + properties: + kind: + description: >- + The type of the API resource. For Orgunits resources, the value is + `admin#directory#orgUnit`. + default: admin#directory#orgUnit type: string - description: Postal code. - sourceIsStructured: - type: boolean - description: User supplied address was structured. Structured addresses are NOT supported at this time. You might be able to write structured addresses but any values will eventually be clobbered. - locality: + name: + description: >- + The organizational unit's path name. For example, an organizational + unit's name within the /corp/support/sales_support parent path is + sales_support. Required. + annotations: + required: + - directory.orgunits.insert type: string - description: Locality. - formatted: + description: + description: Description of the organizational unit. type: string - description: Formatted address. - streetAddress: - description: Street. + etag: + description: ETag of the resource. type: string - region: - description: Region. + blockInheritance: + description: This field is deprecated and setting its value has no effect. + deprecated: true + type: boolean + orgUnitId: + description: The unique ID of the organizational unit. type: string - country: + orgUnitPath: + description: >- + The full path to the organizational unit. The `orgUnitPath` is a + derived property. When listed, it is derived from + `parentOrgunitPath` and organizational unit's `name`. For example, + for an organizational unit named 'apps' under parent organization + '/engineering', the orgUnitPath is '/engineering/apps'. In order to + edit an `orgUnitPath`, either update the name of the organization or + the `parentOrgunitPath`. A user's organizational unit determines + which Google Workspace services the user has access to. If the user + is moved to a new organization, the user's access changes. For more + information about organization structures, see the [administration + help center](https://support.google.com/a/answer/4352075). For more + information about moving a user to a different organization, see + [Update a + user](https://developers.google.com/workspace/admin/directory/v1/guides/manage-users.html#update_user). type: string - description: Country. - primary: - type: boolean - description: If this is user's primary address. Only one entry could be marked as primary. - countryCode: - description: Country code. + parentOrgUnitId: + description: >- + The unique ID of the parent organizational unit. Required, unless + `parentOrgUnitPath` is set. type: string - poBox: - description: Other parts of address. + parentOrgUnitPath: + description: >- + The organizational unit's parent path. For example, /corp/sales is + the parent path for /corp/sales/sales_support organizational unit. + Required, unless `parentOrgUnitId` is set. type: string - UserUndelete: + OrgUnits: + id: OrgUnits + type: object + properties: + kind: + description: >- + The type of the API resource. For Org Unit resources, the type is + `admin#directory#orgUnits`. + default: admin#directory#orgUnits + type: string + etag: + description: ETag of the resource. + type: string + organizationUnits: + description: A list of organizational unit objects. + type: array + items: + $ref: '#/components/schemas/OrgUnit' + Privileges: + id: Privileges type: object properties: - orgUnitPath: - description: OrgUnit of User + kind: + description: >- + The type of the API resource. This is always + `admin#directory#privileges`. + default: admin#directory#privileges type: string - id: UserUndelete + etag: + description: ETag of the resource. + type: string + items: + description: A list of Privilege resources. + type: array + items: + $ref: '#/components/schemas/Privilege' Privilege: + id: Privilege type: object properties: - privilegeName: - description: The name of the privilege. + serviceId: + description: >- + The obfuscated ID of the service this privilege is for. This value + is returned with + [`Privileges.list()`](https://developers.google.com/workspace/admin/directory/v1/reference/privileges/list). type: string - serviceName: - description: The name of the service this privilege is for. + kind: + description: >- + The type of the API resource. This is always + `admin#directory#privilege`. + default: admin#directory#privilege type: string etag: description: ETag of the resource. type: string - kind: - description: The type of the API resource. This is always `admin#directory#privilege`. - type: string - default: admin#directory#privilege + isOuScopable: + description: If the privilege can be restricted to an organization unit. + type: boolean childPrivileges: + description: >- + A list of child privileges. Privileges for a service form a tree. + Each privilege can have a list of child privileges; this list is + empty for a leaf privilege. + type: array items: $ref: '#/components/schemas/Privilege' - type: array - description: A list of child privileges. Privileges for a service form a tree. Each privilege can have a list of child privileges; this list is empty for a leaf privilege. - serviceId: - description: 'The obfuscated ID of the service this privilege is for. This value is returned with [`Privileges.list()`](/admin-sdk/directory/v1/reference/privileges/list).' + privilegeName: + description: The name of the privilege. type: string - isOuScopable: - description: If the privilege can be restricted to an organization unit. - type: boolean - id: Privilege - Asp: - id: Asp - description: 'An application-specific password (ASP) is used with applications that do not accept a verification code when logging into the application on certain devices. The ASP access code is used instead of the login and password you commonly use when accessing an application through a browser. For more information about ASPs and how to create one, see the [help center](https://support.google.com/a/answer/2537800#asp).' + serviceName: + description: The name of the service this privilege is for. + type: string + RoleAssignment: + id: RoleAssignment + description: Defines an assignment of a role. type: object properties: - kind: - type: string - description: The type of the API resource. This is always `admin#directory#asp`. - default: admin#directory#asp - etag: - description: ETag of the ASP. + roleAssignmentId: + description: ID of this roleAssignment. type: string - userKey: - description: The unique ID of the user who issued the ASP. + format: int64 + roleId: + description: The ID of the role that is assigned. type: string - creationTime: - description: 'The time when the ASP was created. Expressed in [Unix time](https://en.wikipedia.org/wiki/Epoch_time) format.' format: int64 + kind: + description: >- + The type of the API resource. This is always + `admin#directory#roleAssignment`. + default: admin#directory#roleAssignment type: string - name: - description: 'The name of the application that the user, represented by their `userId`, entered when the ASP was created.' + etag: + description: ETag of the resource. type: string - codeId: - format: int32 - description: The unique ID of the ASP. - type: integer - lastTimeUsed: + assignedTo: + description: >- + The unique ID of the entity this role is assigned to—either the + `user_id` of a user, the `group_id` of a group, or the `uniqueId` of + a service account as defined in [Identity and Access Management + (IAM)](https://cloud.google.com/iam/docs/reference/rest/v1/projects.serviceAccounts). type: string - format: int64 - description: 'The time when the ASP was last used. Expressed in [Unix time](https://en.wikipedia.org/wiki/Epoch_time) format.' - UserEmail: - id: UserEmail - properties: - primary: - type: boolean - description: If this is user's primary email. Only one entry could be marked as primary. - address: + assigneeType: + description: Output only. The type of the assignee (`USER` or `GROUP`). + readOnly: true type: string - description: Email id of the user. - type: + enumDescriptions: + - An individual user within the domain. + - A group within the domain. + enum: + - user + - group + scopeType: + description: The scope in which this role is assigned. type: string - description: 'Each entry can have a type which indicates standard types of that entry. For example email could be of home, work etc. In addition to the standard type, an entry can have a custom type and can take any value Such types should have the CUSTOM value as type and also have a customType value.' - customType: + orgUnitId: + description: >- + If the role is restricted to an organization unit, this contains the + ID for the organization unit the exercise of this role is restricted + to. + type: string + condition: + description: >- + Optional. The condition associated with this role assignment. Note: + Feature is available to Enterprise Standard, Enterprise Plus, Google + Workspace for Education Plus and Cloud Identity Premium customers. A + `RoleAssignment` with the `condition` field set will only take + effect when the resource being accessed meets the condition. If + `condition` is empty, the role (`role_id`) is applied to the actor + (`assigned_to`) at the scope (`scope_type`) unconditionally. + Currently, the following conditions are supported: - To make the + `RoleAssignment` only applicable to [Security + Groups](https://cloud.google.com/identity/docs/groups#group_types): + `api.getAttribute('cloudidentity.googleapis.com/groups.labels', + []).hasAny(['groups.security']) && resource.type == + 'cloudidentity.googleapis.com/Group'` - To make the `RoleAssignment` + not applicable to [Security + Groups](https://cloud.google.com/identity/docs/groups#group_types): + `!api.getAttribute('cloudidentity.googleapis.com/groups.labels', + []).hasAny(['groups.security']) && resource.type == + 'cloudidentity.googleapis.com/Group'` Currently, the condition + strings have to be verbatim and they only work with the following + [pre-built administrator + roles](https://support.google.com/a/answer/2405986): - Groups Editor + - Groups Reader The condition follows [Cloud IAM condition + syntax](https://cloud.google.com/iam/docs/conditions-overview). - To + make the `RoleAssignment` not applicable to [Locked + Groups](https://cloud.google.com/identity/docs/groups#group_types): + `!api.getAttribute('cloudidentity.googleapis.com/groups.labels', + []).hasAny(['groups.locked']) && resource.type == + 'cloudidentity.googleapis.com/Group'` This condition can also be + used in conjunction with a Security-related condition. type: string - description: Custom Type. + RoleAssignments: + id: RoleAssignments type: object - description: JSON template for an email. - Aliases: properties: - aliases: - items: - type: any - type: array + kind: + description: >- + The type of the API resource. This is always + `admin#directory#roleAssignments`. + default: admin#directory#roleAssignments + type: string etag: + description: ETag of the resource. type: string - kind: + items: + description: A list of RoleAssignment resources. + type: array + items: + $ref: '#/components/schemas/RoleAssignment' + nextPageToken: type: string - default: admin#directory#aliases - description: JSON response template to list aliases in Directory API. - id: Aliases + Building: + id: Building + description: 'Public API: Resources.buildings' type: object - CalendarResource: properties: buildingId: - description: Unique ID for the building a resource is located in. + description: >- + Unique identifier for the building. The maximum length is 100 + characters. type: string - resourceEmail: - description: The read-only email for the calendar resource. Generated as part of creating a new calendar resource. + buildingName: + description: >- + The building name as seen by users in Calendar. Must be unique for + the customer. For example, "NYC-CHEL". The maximum length is 100 + characters. type: string - floorName: - description: Name of the floor a resource is located on. + description: + description: A brief description of the building. For example, "Chelsea Market". + type: string + coordinates: + description: >- + The geographic coordinates of the center of the building, expressed + as latitude and longitude in decimal degrees. + $ref: '#/components/schemas/BuildingCoordinates' + kind: + description: Kind of resource this is. + default: admin#directory#resources#buildings#Building type: string - featureInstances: - type: any - description: Instances of features for the calendar resource. etags: description: ETag of the resource. type: string - floorSection: + floorNames: + description: >- + The display names for all floors in this building. The floors are + expected to be sorted in ascending order, from lowest floor to + highest floor. For example, ["B2", "B1", "L", "1", "2", "2M", "3", + "PH"] Must contain at least one entry. + type: array + items: + type: string + address: + description: >- + The postal address of the building. See + [`PostalAddress`](/my-business/reference/rest/v4/PostalAddress) for + details. Note that only a single address line and region code are + required. + $ref: '#/components/schemas/BuildingAddress' + BuildingCoordinates: + id: BuildingCoordinates + description: 'Public API: Resources.buildings' + type: object + properties: + latitude: + description: Latitude in decimal degrees. + type: number + format: double + longitude: + description: Longitude in decimal degrees. + type: number + format: double + BuildingAddress: + id: BuildingAddress + description: 'Public API: Resources.buildings' + type: object + properties: + regionCode: + description: Required. CLDR region code of the country/region of the address. type: string - description: Name of the section within a floor a resource is located in. - resourceType: - description: 'The type of the calendar resource, intended for non-room resources.' + languageCode: + description: >- + Optional. BCP-47 language code of the contents of this address (if + known). + type: string + postalCode: + description: Optional. Postal code of the address. + type: string + administrativeArea: + description: >- + Optional. Highest administrative subdivision which is used for + postal addresses of a country or region. + type: string + locality: + description: >- + Optional. Generally refers to the city/town portion of the address. + Examples: US city, IT comune, UK post town. In regions of the world + where localities are not well defined or do not fit into this + structure well, leave locality empty and use addressLines. + type: string + sublocality: + description: Optional. Sublocality of the address. + type: string + addressLines: + description: >- + Unstructured address lines describing the lower levels of an + address. + type: array + items: + type: string + Buildings: + id: Buildings + description: 'Public API: Resources.buildings' + type: object + properties: + kind: + description: Kind of resource this is. + default: admin#directory#resources#buildings#buildingsList + type: string + etag: + description: ETag of the resource. + type: string + buildings: + description: The Buildings in this page of results. + type: array + items: + $ref: '#/components/schemas/Building' + nextPageToken: + description: >- + The continuation token, used to page through large result sets. + Provide this value in a subsequent request to return the next page + of results. type: string + CalendarResource: + id: CalendarResource + description: 'Public API: Resources.calendars' + type: object + properties: kind: + description: >- + The type of the resource. For calendar resources, the value is + `admin#directory#resources#calendars#CalendarResource`. default: admin#directory#resources#calendars#CalendarResource - description: 'The type of the resource. For calendar resources, the value is `admin#directory#resources#calendars#CalendarResource`.' type: string - resourceId: - description: The unique ID for the calendar resource. + etags: + description: ETag of the resource. + type: string + resourceName: + description: The name of the calendar resource. For example, "Training Room 1A". annotations: required: - directory.resources.calendars.insert type: string - generatedResourceName: - description: 'The read-only auto-generated name of the calendar resource which includes metadata about the resource such as building name, floor, capacity, etc. For example, "NYC-2-Training Room 1A (16)".' + resourceDescription: + description: Description of the resource, visible only to admins. + type: string + resourceType: + description: The type of the calendar resource, intended for non-room resources. + type: string + resourceEmail: + description: >- + The read-only email for the calendar resource. Generated as part of + creating a new calendar resource. type: string - capacity: - format: int32 - description: 'Capacity of a resource, number of seats in a room.' - type: integer resourceCategory: + description: >- + The category of the calendar resource. Either CONFERENCE_ROOM or + OTHER. Legacy data is set to CATEGORY_UNKNOWN. type: string - description: The category of the calendar resource. Either CONFERENCE_ROOM or OTHER. Legacy data is set to CATEGORY_UNKNOWN. - resourceName: + userVisibleDescription: + description: Description of the resource, visible to users and admins. + type: string + generatedResourceName: + description: >- + The read-only auto-generated name of the calendar resource which + includes metadata about the resource such as building name, floor, + capacity, etc. For example, "NYC-2-Training Room 1A (16)". type: string - description: 'The name of the calendar resource. For example, "Training Room 1A".' + featureInstances: + description: Instances of features for the calendar resource. + type: any + resourceId: + description: The unique ID for the calendar resource. annotations: required: - directory.resources.calendars.insert - userVisibleDescription: - description: 'Description of the resource, visible to users and admins.' type: string - resourceDescription: - description: 'Description of the resource, visible only to admins.' + capacity: + description: Capacity of a resource, number of seats in a room. + type: integer + format: int32 + floorName: + description: Name of the floor a resource is located on. + type: string + buildingId: + description: Unique ID for the building a resource is located in. + type: string + floorSection: + description: Name of the section within a floor a resource is located in. + type: string + CalendarResources: + id: CalendarResources + description: 'Public API: Resources.calendars' + type: object + properties: + kind: + description: >- + Identifies this as a collection of CalendarResources. This is always + `admin#directory#resources#calendars#calendarResourcesList`. + default: admin#directory#resources#calendars#calendarResourcesList + type: string + etag: + description: ETag of the resource. + type: string + items: + description: The CalendarResources in this page of results. + type: array + items: + $ref: '#/components/schemas/CalendarResource' + nextPageToken: + description: >- + The continuation token, used to page through large result sets. + Provide this value in a subsequent request to return the next page + of results. type: string - id: CalendarResource - type: object - description: 'Public API: Resources.calendars' - ChromeOsDevices: + Features: + id: Features + description: 'Public API: Resources.features' type: object properties: kind: description: Kind of resource this is. + default: admin#directory#resources#features#featuresList type: string - default: admin#directory#chromeosdevices - nextPageToken: - description: 'Token used to access the next page of this result. To access the next page, use this token''s value in the `pageToken` query string of this request.' + etag: + description: ETag of the resource. type: string - chromeosdevices: - description: A list of Chrome OS Device objects. + features: + description: The Features in this page of results. type: array items: - $ref: '#/components/schemas/ChromeOsDevice' - etag: - description: ETag of the resource. + $ref: '#/components/schemas/Feature' + nextPageToken: + description: >- + The continuation token, used to page through large result sets. + Provide this value in a subsequent request to return the next page + of results. type: string - id: ChromeOsDevices - Members: + FeatureRename: + id: FeatureRename type: object - id: Members properties: - members: + newName: + description: New name of the feature. + annotations: + required: + - directory.resources.features.rename + type: string + Role: + id: Role + type: object + properties: + roleId: + description: ID of the role. + type: string + format: int64 + roleName: + description: Name of the role. + annotations: + required: + - directory.roles.insert + type: string + roleDescription: + description: A short description of the role. + type: string + rolePrivileges: + description: The set of privileges that are granted to this role. + annotations: + required: + - directory.roles.insert type: array - description: A list of member objects. items: - $ref: '#/components/schemas/Member' - nextPageToken: - description: Token used to access next page of this result. + type: object + properties: + serviceId: + description: >- + The obfuscated ID of the service this privilege is for. This + value is returned with + [`Privileges.list()`](https://developers.google.com/workspace/admin/directory/v1/reference/privileges/list). + type: string + privilegeName: + description: The name of the privilege. + type: string + isSystemRole: + description: Returns `true` if this is a pre-defined system role. + type: boolean + isSuperAdminRole: + description: Returns `true` if the role is a super admin role. + type: boolean + kind: + description: The type of the API resource. This is always `admin#directory#role`. + default: admin#directory#role type: string etag: description: ETag of the resource. type: string + Roles: + id: Roles + type: object + properties: kind: - default: admin#directory#members - description: Kind of resource this is. + description: >- + The type of the API resource. This is always + `admin#directory#roles`. + default: admin#directory#roles type: string - BuildingAddress: - description: 'Public API: Resources.buildings' - properties: - sublocality: - description: Optional. Sublocality of the address. + etag: + description: ETag of the resource. type: string - regionCode: + items: + description: A list of Role resources. + type: array + items: + $ref: '#/components/schemas/Role' + nextPageToken: type: string - description: Required. CLDR region code of the country/region of the address. - postalCode: - description: Optional. Postal code of the address. + Schema: + id: Schema + description: >- + The type of API resource. For Schema resources, this is always + `admin#directory#schema`. + type: object + properties: + schemaId: + description: The unique identifier of the schema (Read-only) type: string - administrativeArea: + schemaName: + description: >- + The schema's name. Each `schema_name` must be unique within a + customer. Reusing a name results in a `409: Entity already exists` + error. + annotations: + required: + - directory.schemas.insert type: string - description: Optional. Highest administrative subdivision which is used for postal addresses of a country or region. - addressLines: + fields: + description: A list of fields in the schema. + annotations: + required: + - directory.schemas.insert + - directory.schemas.update type: array items: - type: string - description: Unstructured address lines describing the lower levels of an address. - locality: - description: 'Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use addressLines.' + $ref: '#/components/schemas/SchemaFieldSpec' + displayName: + description: Display name for the schema. + annotations: + required: + - directory.schemas.insert type: string - languageCode: - description: Optional. BCP-47 language code of the contents of this address (if known). + kind: + description: Kind of resource this is. + default: admin#directory#schema + type: string + etag: + description: The ETag of the resource. type: string + SchemaFieldSpec: + id: SchemaFieldSpec + description: >- + You can use schemas to add custom fields to user profiles. You can use + these fields to store information such as the projects your users work + on, their physical locations, their hire dates, or whatever else fits + your business needs. For more information, see [Custom User + Fields](https://developers.google.com/workspace/admin/directory/v1/guides/manage-schemas). type: object - id: BuildingAddress - PrintServer: - description: Configuration for a print server. - id: PrintServer properties: - description: - description: Editable. Description of the print server (as shown in the Admin console). + fieldName: + description: The name of the field. + annotations: + required: + - directory.schemas.insert + - directory.schemas.update type: string - orgUnitId: - description: 'ID of the organization unit (OU) that owns this print server. This value can only be set when the print server is initially created. If it''s not populated, the print server is placed under the root OU. The `org_unit_id` can be retrieved using the [Directory API](/admin-sdk/directory/reference/rest/v1/orgunits).' + fieldId: + description: The unique identifier of the field (Read-only) type: string - displayName: + fieldType: + description: The type of the field. + annotations: + required: + - directory.schemas.insert + - directory.schemas.update type: string - description: Editable. Display name of the print server (as shown in the Admin console). - uri: - description: Editable. Print server URI. + multiValued: + description: >- + A boolean specifying whether this is a multi-valued field or not. + Default: `false`. + type: boolean + kind: + description: >- + The kind of resource this is. For schema fields this is always + `admin#directory#schema#fieldspec`. + default: admin#directory#schema#fieldspec type: string - createTime: - description: Output only. Time when the print server was created. - readOnly: true - format: google-datetime + etag: + description: The ETag of the field. type: string - name: - description: 'Immutable. Resource name of the print server. Leave empty when creating. Format: `customers/{customer.id}/printServers/{print_server.id}`' + indexed: + description: >- + Boolean specifying whether the field is indexed or not. Default: + `true`. + default: 'true' + type: boolean + displayName: + description: Display Name of the field. + annotations: + required: + - directory.schemas.insert + - directory.schemas.update type: string - id: - description: Immutable. ID of the print server. Leave empty when creating. + readAccessType: + description: >- + Specifies who can view values of this field. See [Retrieve users as + a + non-administrator](https://developers.google.com/workspace/admin/directory/v1/guides/manage-users#retrieve_users_non_admin) + for more information. Note: It may take up to 24 hours for changes + to this field to be reflected. + default: ALL_DOMAIN_USERS type: string + numericIndexingSpec: + description: >- + Indexing spec for a numeric field. By default, only exact match + queries will be supported for numeric fields. Setting the + `numericIndexingSpec` allows range queries to be supported. + type: object + properties: + minValue: + description: >- + Minimum value of this field. This is meant to be indicative + rather than enforced. Values outside this range will still be + indexed, but search may not be as performant. + type: number + format: double + maxValue: + description: >- + Maximum value of this field. This is meant to be indicative + rather than enforced. Values outside this range will still be + indexed, but search may not be as performant. + type: number + format: double + Schemas: + id: Schemas + description: JSON response template for List Schema operation in Directory API. type: object - DirectoryChromeosdevicesIssueCommandRequest: - description: A request for issuing a command. - type: object - id: DirectoryChromeosdevicesIssueCommandRequest properties: - payload: + kind: + description: Kind of resource this is. + default: admin#directory#schemas type: string - description: 'The payload for the command, provide it only if command supports it. The following commands support adding payload: * `SET_VOLUME`: Payload is a stringified JSON object in the form: { "volume": 50 }. The volume has to be an integer in the range [0,100]. * `DEVICE_START_CRD_SESSION`: Payload is optionally a stringified JSON object in the form: { "ackedUserPresence": true }. `ackedUserPresence` is a boolean. By default, `ackedUserPresence` is set to `false`. To start a Chrome Remote Desktop session for an active device, set `ackedUserPresence` to `true`.' - commandType: - enumDescriptions: - - The command type was unspecified. - - Reboot the device. Can only be issued to Kiosk and managed guest session devices. - - Take a screenshot of the device. Only available if the device is in Kiosk Mode. - - Set the volume of the device. Can only be issued to Kiosk and managed guest session devices. - - 'Wipe all the users off of the device. Executing this command in the device will remove all user profile data, but it will keep device policy and enrollment.' - - 'Wipes the device by performing a power wash. Executing this command in the device will remove all data including user policies, device policies and enrollment policies. Warning: This will revert the device back to a factory state with no enrollment unless the device is subject to forced or auto enrollment. Use with caution, as this is an irreversible action!' - - Starts a Chrome Remote Desktop session. - - 'Capture the system logs of a kiosk device. The logs can be downloaded from the downloadUrl link present in `deviceFiles` field of [chromeosdevices](https://developers.google.com/admin-sdk/directory/reference/rest/v1/chromeosdevices)' + etag: + description: ETag of the resource. type: string - enum: - - COMMAND_TYPE_UNSPECIFIED - - REBOOT - - TAKE_A_SCREENSHOT - - SET_VOLUME - - WIPE_USERS - - REMOTE_POWERWASH - - DEVICE_START_CRD_SESSION - - CAPTURE_LOGS - description: The type of command. - FeatureInstance: - properties: - feature: - $ref: '#/components/schemas/Feature' - description: The feature that this is an instance of. A calendar resource may have multiple instances of a feature. - type: object - description: JSON template for a feature instance. - id: FeatureInstance - BatchCreatePrintersResponse: - description: Response for adding new printers in batch. - properties: - failures: - items: - $ref: '#/components/schemas/FailureInfo' + schemas: + description: A list of UserSchema objects. type: array - description: 'A list of create failures. Printer IDs are not populated, as printer were not created.' - printers: - description: A list of successfully created printers with their IDs populated. items: - $ref: '#/components/schemas/Printer' - type: array - id: BatchCreatePrintersResponse + $ref: '#/components/schemas/Schema' + Token: + id: Token + description: JSON template for token resource in Directory API. type: object - UserPhoto: - id: UserPhoto properties: - mimeType: - description: 'The MIME type of the photo. Allowed values are `JPEG`, `PNG`, `GIF`, `BMP`, `TIFF`, and web-safe base64 encoding.' - type: string - etag: - type: string - description: ETag of the resource. - width: - description: Width of the photo in pixels. - format: int32 - type: integer - primaryEmail: - description: The user's primary email address. + clientId: + description: The Client ID of the application the token is issued to. type: string - id: + scopes: + description: A list of authorization scopes the application is granted. + type: array + items: + type: string + userKey: + description: The unique ID of the user that issued the token. type: string - description: The ID the API uses to uniquely identify the user. + anonymous: + description: >- + Whether the application is registered with Google. The value is + `true` if the application has an anonymous Client ID. + type: boolean + displayText: + description: The displayable name of the application the token is issued to. + type: string + nativeApp: + description: >- + Whether the token is issued to an installed application. The value + is `true` if the application is installed to a desktop or mobile + device. + type: boolean kind: - description: 'The type of the API resource. For Photo resources, this is `admin#directory#user#photo`.' - default: admin#directory#user#photo + description: >- + The type of the API resource. This is always + `admin#directory#token`. + default: admin#directory#token type: string - photoData: - format: byte - description: 'The user photo''s upload data in [web-safe Base64](https://en.wikipedia.org/wiki/Base64#URL_applications) format in bytes. This means: * The slash (/) character is replaced with the underscore (_) character. * The plus sign (+) character is replaced with the hyphen (-) character. * The equals sign (=) character is replaced with the asterisk (*). * For padding, the period (.) character is used instead of the RFC-4648 baseURL definition which uses the equals sign (=) for padding. This is done to simplify URL-parsing. * Whatever the size of the photo being uploaded, the API downsizes it to 96x96 pixels.' + etag: + description: ETag of the resource. type: string - annotations: - required: - - directory.users.photos.update - height: - description: Height of the photo in pixels. - format: int32 - type: integer - type: object - ListPrinterModelsResponse: + Tokens: + id: Tokens + description: JSON response template for List tokens operation in Directory API. type: object - id: ListPrinterModelsResponse properties: - printerModels: - description: Printer models that are currently allowed to be configured for ChromeOs. Some printers may be added or removed over time. + kind: + description: >- + The type of the API resource. This is always + `admin#directory#tokenList`. + default: admin#directory#tokenList + type: string + etag: + description: ETag of the resource. + type: string + items: + description: A list of Token resources. type: array items: - $ref: '#/components/schemas/PrinterModel' - nextPageToken: - type: string - description: 'A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.' - description: Response for listing allowed printer models. - OsUpdateStatus: + $ref: '#/components/schemas/Token' + User: + id: User + description: >- + The Directory API allows you to create and manage your account's users, + user aliases, and user Google profile photos. For more information about + common tasks, see the [User Accounts Developer's + Guide](https://developers.google.com/workspace/admin/directory/v1/guides/manage-users.html) + and the [User Aliases Developer's + Guide](https://developers.google.com/workspace/admin/directory/v1/guides/manage-user-aliases.html). type: object - description: Contains information regarding the current OS update status. properties: - state: - description: The update state of an OS update. - type: string - enum: - - updateStateUnspecified - - updateStateNotStarted - - updateStateDownloadInProgress - - updateStateNeedReboot - enumDescriptions: - - The update state is unspecified. - - There is an update pending but it hasn't started. - - The pending update is being downloaded. - - 'The device is ready to install the update, but must reboot.' - targetOsVersion: - description: 'New platform version of the OS image being downloaded and applied. It is only set when update status is UPDATE_STATUS_DOWNLOAD_IN_PROGRESS or UPDATE_STATUS_NEED_REBOOT. Note this could be a dummy "0.0.0.0" for UPDATE_STATUS_NEED_REBOOT for some edge cases, e.g. update engine is restarted without a reboot.' - type: string - targetKioskAppVersion: - description: New required platform version from the pending updated kiosk app. + id: + description: >- + The unique ID for the user. A user `id` can be used as a user + request URI's `userKey`. type: string - updateCheckTime: + primaryEmail: + description: >- + The user's primary email address. This property is required in a + request to create a user account. The `primaryEmail` must be unique + and cannot be an alias of another user. + annotations: + required: + - directory.users.insert type: string - description: Date and time of the last update check. - updateTime: - description: Date and time of the last successful OS update. + password: + description: User's password type: string - rebootTime: - description: Date and time of the last reboot. + annotations: + required: + - directory.users.insert + hashFunction: + description: >- + Stores the hash format of the `password` property. The following + `hashFunction` values are allowed: * `MD5` - Accepts simple + hex-encoded values. * `SHA-1` - Accepts simple hex-encoded values. * + `crypt` - Compliant with the [C crypt + library](https://en.wikipedia.org/wiki/Crypt_%28C%29). Supports the + DES, MD5 (hash prefix `$1$`), SHA-256 (hash prefix `$5$`), and + SHA-512 (hash prefix `$6$`) hash algorithms. If rounds are specified + as part of the prefix, they must be 10,000 or fewer. type: string - id: OsUpdateStatus - Domains: - properties: - isPrimary: - description: Indicates if the domain is a primary domain (Read-only). + isAdmin: + description: >- + Output only. Indicates a user with super administrator privileges. + The `isAdmin` property can only be edited in the [Make a user an + administrator](https://developers.google.com/workspace/admin/directory/v1/guides/manage-users.html#make_admin) + operation ( + [makeAdmin](https://developers.google.com/workspace/admin/directory/v1/reference/users/makeAdmin.html) + method). If edited in the user + [insert](https://developers.google.com/workspace/admin/directory/v1/reference/users/insert.html) + or + [update](https://developers.google.com/workspace/admin/directory/v1/reference/users/update.html) + methods, the edit is ignored by the API service. + readOnly: true + type: boolean + isDelegatedAdmin: + description: >- + Output only. Indicates if the user is a delegated administrator. + Delegated administrators are supported by the API but cannot create + or undelete users, or make users administrators. These requests are + ignored by the API service. Roles and privileges for administrators + are assigned using the [Admin + console](https://support.google.com/a/answer/33325). + readOnly: true type: boolean + agreedToTerms: + description: >- + Output only. This property is `true` if the user has completed an + initial login and accepted the Terms of Service agreement. + readOnly: true + type: boolean + suspended: + description: Indicates if user is suspended. + type: boolean + changePasswordAtNextLogin: + description: >- + Indicates if the user is forced to change their password at next + login. This setting doesn't apply when [the user signs in via a + third-party identity + provider](https://support.google.com/a/answer/60224). + type: boolean + ipWhitelisted: + description: >- + If `true`, the user's IP address is subject to a deprecated IP + address [`allowlist`](https://support.google.com/a/answer/60752) + configuration. + type: boolean + name: + description: >- + Holds the given and family names of the user, and the read-only + `fullName` value. The maximum number of characters in the + `givenName` and in the `familyName` values is 60. In addition, name + values support unicode/UTF-8 characters, and can contain spaces, + letters (a-z), numbers (0-9), dashes (-), forward slashes (/), and + periods (.). For more information about character usage rules, see + the [administration help + center](https://support.google.com/a/answer/9193374). Maximum + allowed data size for this field is 1KB. + annotations: + required: + - directory.users.insert + $ref: '#/components/schemas/UserName' + kind: + description: >- + Output only. The type of the API resource. For Users resources, the + value is `admin#directory#user`. + default: admin#directory#user + readOnly: true + type: string etag: - description: ETag of the resource. + description: Output only. ETag of the resource. + readOnly: true type: string - domainAliases: - items: - $ref: '#/components/schemas/DomainAlias' + emails: + description: >- + The list of the user's email addresses. The maximum allowed data + size for this field is 10KB. This excludes + `publicKeyEncryptionCertificates`. + type: any + externalIds: + description: >- + The list of external IDs for the user, such as an employee or + network ID. The maximum allowed data size for this field is 2KB. + type: any + relations: + description: >- + The list of the user's relationships to other users. The maximum + allowed data size for this field is 2KB. + type: any + aliases: + description: Output only. The list of the user's alias email addresses. + readOnly: true type: array - description: A list of domain alias objects. (Read-only) - verified: - description: Indicates the verification state of a domain. (Read-only). + items: + type: string + isMailboxSetup: + description: >- + Output only. Indicates if the user's Google mailbox is created. This + property is only applicable if the user has been assigned a Gmail + license. + readOnly: true type: boolean - kind: - default: admin#directory#domain - description: Kind of resource this is. + customerId: + description: >- + Output only. The customer ID to [retrieve all account + users](https://developers.google.com/workspace/admin/directory/v1/guides/manage-users.html#get_all_users). + You can use the alias `my_customer` to represent your account's + `customerId`. As a reseller administrator, you can use the resold + customer account's `customerId`. To get a `customerId`, use the + account's primary domain in the `domain` parameter of a + [users.list](https://developers.google.com/workspace/admin/directory/v1/reference/users/list) + request. + readOnly: true type: string - creationTime: + addresses: + description: >- + The list of the user's addresses. The maximum allowed data size for + this field is 10KB. + type: any + organizations: + description: >- + The list of organizations the user belongs to. The maximum allowed + data size for this field is 10KB. + type: any + lastLoginTime: + description: User's last login time. (Read-only) type: string - format: int64 - description: 'Creation time of the domain. Expressed in [Unix time](https://en.wikipedia.org/wiki/Epoch_time) format. (Read-only).' - domainName: + format: date-time + readOnly: true + phones: + description: >- + The list of the user's phone numbers. The maximum allowed data size + for this field is 1KB. + type: any + suspensionReason: + description: >- + Output only. Has the reason a user account is suspended either by + the administrator or by Google at the time of suspension. The + property is returned only if the `suspended` property is `true`. + readOnly: true type: string - annotations: - required: - - directory.domains.insert - description: The domain name of the customer. - type: object - id: Domains - Printer: - description: Printer configuration. - type: object - id: Printer - properties: - name: + thumbnailPhotoUrl: + description: >- + Output only. The URL of the user's profile photo. The URL might be + temporary or private. + readOnly: true type: string - description: 'The resource name of the Printer object, in the format customers/{customer-id}/printers/{printer-id} (During printer creation leave empty)' - orgUnitId: - description: Organization Unit that owns this printer (Only can be set during Printer creation) + languages: + description: >- + The user's languages. The maximum allowed data size for this field + is 1KB. + type: any + posixAccounts: + description: >- + The list of + [POSIX](https://www.opengroup.org/austin/papers/posix_faq.html) + account information for the user. + type: any + creationTime: + description: User's G Suite account creation time. (Read-only) type: string - createTime: - format: google-datetime - description: Output only. Time when printer was created. + format: date-time + readOnly: true + nonEditableAliases: + description: >- + Output only. The list of the user's non-editable alias email + addresses. These are typically outside the account's primary domain + or sub-domain. + readOnly: true + type: array + items: + type: string + sshPublicKeys: + description: A list of SSH public keys. + type: any + notes: + description: Notes for the user. + type: any + websites: + description: >- + The user's websites. The maximum allowed data size for this field is + 2KB. + type: any + locations: + description: >- + The user's locations. The maximum allowed data size for this field + is 10KB. + type: any + includeInGlobalAddressList: + description: >- + Indicates if the user's profile is visible in the Google Workspace + global address list when the contact sharing feature is enabled for + the domain. For more information about excluding user profiles, see + the [administration help + center](https://support.google.com/a/answer/1285988). + type: boolean + keywords: + description: >- + The list of the user's keywords. The maximum allowed data size for + this field is 1KB. + type: any + deletionTime: type: string + format: date-time + readOnly: true + gender: + description: >- + The user's gender. The maximum allowed data size for this field is + 1KB. + type: any + thumbnailPhotoEtag: + description: Output only. ETag of the user's photo (Read-only) readOnly: true - description: - description: Editable. Description of printer. type: string - displayName: - description: Editable. Name of printer. + ims: + description: >- + The list of the user's Instant Messenger (IM) accounts. A user + account can have multiple ims properties. But, only one of these ims + properties can be the primary IM contact. The maximum allowed data + size for this field is 2KB. + type: any + customSchemas: + description: >- + Custom fields of the user. The key is a `schema_name` and its values + are `'field_name': 'field_value'`. + type: object + additionalProperties: + $ref: '#/components/schemas/UserCustomProperties' + isEnrolledIn2Sv: + description: Output only. Is enrolled in 2-step verification (Read-only) + readOnly: true + type: boolean + isEnforcedIn2Sv: + description: Output only. Is 2-step verification enforced (Read-only) + readOnly: true + type: boolean + archived: + description: Indicates if user is archived. + type: boolean + orgUnitPath: + description: >- + The full path of the parent organization associated with the user. + If the parent organization is the top-level, it is represented as a + forward slash (`/`). type: string - uri: + recoveryEmail: + description: Recovery email of the user. type: string - description: Editable. Printer URI. - id: - description: Id of the printer. (During printer creation leave empty) + recoveryPhone: + description: >- + Recovery phone of the user. The phone number must be in the E.164 + format, starting with the plus sign (+). Example: *+16506661212*. + type: string + UserName: + id: UserName + type: object + properties: + fullName: + description: >- + The user's full name formed by concatenating the first and last name + values. + type: string + familyName: + description: The user's last name. Required when creating a user account. + annotations: + required: + - directory.users.insert + type: string + givenName: + description: The user's first name. Required when creating a user account. + annotations: + required: + - directory.users.insert type: string - useDriverlessConfig: - type: boolean - description: 'Editable. flag to use driverless configuration or not. If it''s set to be true, make_and_model can be ignored' - makeAndModel: - description: Editable. Make and model of printer. e.g. Lexmark MS610de Value must be in format as seen in ListPrinterModels response. + displayName: + description: 'The user''s display name. Limit: 256 characters.' type: string - auxiliaryMessages: - items: - $ref: '#/components/schemas/AuxiliaryMessage' - readOnly: true - type: array - description: Output only. Auxiliary messages about issues with the printer configuration if any. - Features: + Users: + id: Users + type: object properties: + kind: + description: Kind of resource this is. + default: admin#directory#users + type: string + trigger_event: + description: >- + Event that triggered this response (only used in case of Push + Response) + type: string etag: description: ETag of the resource. type: string - nextPageToken: - description: 'The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results.' - type: string - features: - items: - $ref: '#/components/schemas/Feature' - description: The Features in this page of results. + users: + description: A list of user objects. type: array - kind: - default: admin#directory#resources#features#featuresList - description: Kind of resource this is. + items: + $ref: '#/components/schemas/User' + nextPageToken: + description: >- + Token used to access next page of this result. The page token is + only valid for three days. type: string - type: object - description: 'Public API: Resources.features' - id: Features - UserWebsite: - description: JSON template for a website entry. + UserMakeAdmin: + id: UserMakeAdmin type: object properties: - value: - description: Website. - type: string - type: - description: Each entry can have a type which indicates standard types of that entry. For example website could be of home work blog etc. In addition to the standard type an entry can have a custom type and can give it any name. Such types should have the CUSTOM value as type and also have a customType value. - type: string - customType: - type: string - description: Custom Type. - primary: + status: + description: Indicates the administrator status of the user. + annotations: + required: + - directory.users.makeAdmin type: boolean - description: If this is user's primary website or not. - id: UserWebsite - CreatePrinterRequest: - id: CreatePrinterRequest - description: Request for adding a new printer. + UserUndelete: + id: UserUndelete type: object properties: - parent: - description: 'Required. The name of the customer. Format: customers/{customer_id}' + orgUnitPath: + description: OrgUnit of User type: string - printer: - description: Required. A printer to create. If you want to place the printer under particular OU then populate printer.org_unit_id filed. Otherwise the printer will be placed under root OU. - $ref: '#/components/schemas/Printer' - Tokens: + UserAlias: + id: UserAlias + description: >- + The Directory API manages aliases, which are alternative email + addresses. + type: object properties: - items: - description: A list of Token resources. - items: - $ref: '#/components/schemas/Token' - type: array + id: + description: The unique ID for the user. + type: string + primaryEmail: + description: The user's primary email address. + type: string + alias: + description: The alias email address. + type: string kind: + description: >- + The type of the API resource. For Alias resources, the value is + `admin#directory#alias`. type: string - default: admin#directory#tokenList - description: The type of the API resource. This is always `admin#directory#tokenList`. etag: description: ETag of the resource. type: string - description: JSON response template for List tokens operation in Directory API. - type: object - id: Tokens - Roles: + UserPhoto: + id: UserPhoto type: object properties: - kind: - default: admin#directory#roles - description: The type of the API resource. This is always `admin#directory#roles`. - type: string - nextPageToken: + id: + description: The ID the API uses to uniquely identify the user. type: string - etag: + primaryEmail: + description: The user's primary email address. type: string - description: ETag of the resource. - items: - type: array - items: - $ref: '#/components/schemas/Role' - description: A list of Role resources. - id: Roles - OrgUnits: - type: object - id: OrgUnits - properties: kind: - default: admin#directory#orgUnits + description: >- + The type of the API resource. For Photo resources, this is + `admin#directory#user#photo`. + default: admin#directory#user#photo type: string - description: 'The type of the API resource. For Org Unit resources, the type is `admin#directory#orgUnits`.' - organizationUnits: - items: - $ref: '#/components/schemas/OrgUnit' - description: A list of organizational unit objects. - type: array etag: description: ETag of the resource. type: string - FeatureRename: - properties: - newName: - type: string - description: New name of the feature. + photoData: + description: >- + The user photo's upload data in [web-safe + Base64](https://en.wikipedia.org/wiki/Base64#URL_applications) + format in bytes. This means: * The slash (/) character is replaced + with the underscore (_) character. * The plus sign (+) character is + replaced with the hyphen (-) character. * The equals sign (=) + character is replaced with the asterisk (*). * For padding, the + period (.) character is used instead of the RFC-4648 baseURL + definition which uses the equals sign (=) for padding. This is done + to simplify URL-parsing. * Whatever the size of the photo being + uploaded, the API downsizes it to 96x96 pixels. annotations: required: - - directory.resources.features.rename - type: object - id: FeatureRename - UserLanguage: - properties: - preference: - description: 'Optional. If present, controls whether the specified `languageCode` is the user''s preferred language. If `customLanguage` is set, this can''t be set. Allowed values are `preferred` and `not_preferred`.' - type: string - languageCode: - description: 'ISO 639 string representation of a language. See [Language Codes](/admin-sdk/directory/v1/languages) for the list of supported codes. Valid language codes outside the supported set will be accepted by the API but may lead to unexpected behavior. Illegal values cause `SchemaException`. If this is set, `customLanguage` can''t be set.' + - directory.users.photos.update type: string - customLanguage: + format: byte + mimeType: + description: >- + The MIME type of the photo. Allowed values are `JPEG`, `PNG`, `GIF`, + `BMP`, `TIFF`, and web-safe base64 encoding. type: string - description: 'Other language. User can provide their own language name if there is no corresponding ISO 639 language code. If this is set, `languageCode` can''t be set.' - description: JSON template for a language entry. - id: UserLanguage + width: + description: Width of the photo in pixels. + type: integer + format: int32 + height: + description: Height of the photo in pixels. + type: integer + format: int32 + VerificationCodes: + id: VerificationCodes + description: >- + JSON response template for list verification codes operation in + Directory API. type: object - DirectoryChromeosdevicesCommand: properties: - issueTime: - format: google-datetime - type: string - description: The timestamp when the command was issued by the admin. - state: - enumDescriptions: - - The command status was unspecified. - - An unexpired command not yet sent to the client. - - The command didn't get executed by the client within the expected time. - - The command is cancelled by admin while in PENDING. - - The command has been sent to the client. - - The client has responded that it received the command. - - The client has (un)successfully executed the command. - description: Indicates the command state. - enum: - - STATE_UNSPECIFIED - - PENDING - - EXPIRED - - CANCELLED - - SENT_TO_CLIENT - - ACKED_BY_CLIENT - - EXECUTED_BY_CLIENT - type: string - commandExpireTime: - type: string - description: The time at which the command will expire. If the device doesn't execute the command within this time the command will become expired. - format: google-datetime - payload: - type: string - description: 'The payload that the command specified, if any.' - type: + kind: + description: >- + The type of the resource. This is always + `admin#directory#verificationCodesList`. + default: admin#directory#verificationCodesList type: string - enumDescriptions: - - The command type was unspecified. - - Reboot the device. Can only be issued to Kiosk and managed guest session devices. - - Take a screenshot of the device. Only available if the device is in Kiosk Mode. - - Set the volume of the device. Can only be issued to Kiosk and managed guest session devices. - - 'Wipe all the users off of the device. Executing this command in the device will remove all user profile data, but it will keep device policy and enrollment.' - - 'Wipes the device by performing a power wash. Executing this command in the device will remove all data including user policies, device policies and enrollment policies. Warning: This will revert the device back to a factory state with no enrollment unless the device is subject to forced or auto enrollment. Use with caution, as this is an irreversible action!' - - Starts a Chrome Remote Desktop session. - - 'Capture the system logs of a kiosk device. The logs can be downloaded from the downloadUrl link present in `deviceFiles` field of [chromeosdevices](https://developers.google.com/admin-sdk/directory/reference/rest/v1/chromeosdevices)' - enum: - - COMMAND_TYPE_UNSPECIFIED - - REBOOT - - TAKE_A_SCREENSHOT - - SET_VOLUME - - WIPE_USERS - - REMOTE_POWERWASH - - DEVICE_START_CRD_SESSION - - CAPTURE_LOGS - description: The type of the command. - commandId: - format: int64 + etag: + description: ETag of the resource. type: string - description: Unique ID of a device command. - commandResult: - description: The result of the command execution. - $ref: '#/components/schemas/DirectoryChromeosdevicesCommandResult' - id: DirectoryChromeosdevicesCommand + items: + description: A list of verification code resources. + type: array + items: + $ref: '#/components/schemas/VerificationCode' + VerificationCode: + id: VerificationCode + description: >- + The Directory API allows you to view, generate, and invalidate backup + verification codes for a user. type: object - description: Information regarding a command that was issued to a device. - Member: properties: - type: - type: string - description: The type of group member. - status: - type: string - description: Status of member (Immutable) - email: - type: string - description: 'The member''s email address. A member can be a user or another group. This property is required when adding a member to a group. The `email` must be unique and cannot be an alias of another group. If the email address is changed, the API automatically reflects the email address changes.' - id: - description: The unique ID of the group member. A member `id` can be used as a member request URI's `memberKey`. - type: string - role: - description: 'The member''s role in a group. The API returns an error for cycles in group memberships. For example, if `group1` is a member of `group2`, `group2` cannot be a member of `group1`. For more information about a member''s role, see the [administration help center](https://support.google.com/a/answer/167094).' + userId: + description: The obfuscated unique ID of the user. type: string - delivery_settings: + verificationCode: + description: >- + A current verification code for the user. Invalidated or used + verification codes are not returned as part of the result. type: string - description: 'Defines mail delivery preferences of member. This field is only supported by `insert`, `update`, and `get` methods.' kind: - default: admin#directory#member + description: >- + The type of the resource. This is always + `admin#directory#verificationCode`. + default: admin#directory#verificationCode type: string - description: 'The type of the API resource. For Members resources, the value is `admin#directory#member`.' etag: description: ETag of the resource. type: string + Alias: + id: Alias + description: JSON template for Alias object in Directory API. type: object - description: 'A Google Groups member can be a user or another group. This member can be inside or outside of your account''s domains. For more information about common group member tasks, see the [Developer''s Guide](/admin-sdk/directory/v1/guides/manage-group-members).' - id: Member - DirectoryChromeosdevicesCommandResult: - type: object - id: DirectoryChromeosdevicesCommandResult properties: - result: - enum: - - COMMAND_RESULT_TYPE_UNSPECIFIED - - IGNORED - - FAILURE - - SUCCESS + alias: type: string - description: The result of the command. - enumDescriptions: - - The command result was unspecified. - - The command was ignored as obsolete. - - The command could not be executed successfully. - - The command was successfully executed. - commandResultPayload: + etag: type: string - description: 'The payload for the command result. The following commands respond with a payload: * `DEVICE_START_CRD_SESSION`: Payload is a stringified JSON object in the form: { "url": url }. The URL provides a link to the Chrome Remote Desktop session.' - executeTime: + id: + type: string + kind: + default: admin#directory#alias type: string - format: google-datetime - description: The time at which the command was executed or failed to execute. - errorMessage: - description: The error message with a short explanation as to why the command failed. Only present if the command failed. + primaryEmail: type: string - description: The result of executing a command. - Buildings: - id: Buildings + Aliases: + id: Aliases + description: JSON response template to list aliases in Directory API. + type: object properties: + aliases: + type: array + items: + type: any etag: - description: ETag of the resource. type: string - buildings: - description: The Buildings in this page of results. - items: - $ref: '#/components/schemas/Building' - type: array kind: - default: admin#directory#resources#buildings#buildingsList - description: Kind of resource this is. - type: string - nextPageToken: + default: admin#directory#aliases type: string - description: 'The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results.' + FeatureInstance: + id: FeatureInstance + description: JSON template for a feature instance. type: object - description: 'Public API: Resources.buildings' - BuildingCoordinates: - id: BuildingCoordinates properties: - longitude: - description: Longitude in decimal degrees. - type: number - format: double - latitude: - description: Latitude in decimal degrees. - format: double - type: number - description: 'Public API: Resources.buildings' + feature: + $ref: '#/components/schemas/Feature' + description: >- + The feature that this is an instance of. A calendar resource may + have multiple instances of a feature. + Feature: + id: Feature + description: JSON template for Feature object in Directory API. type: object - Role: properties: + etags: + description: ETag of the resource. + type: string kind: + description: Kind of resource this is. + default: admin#directory#resources#features#Feature type: string - default: admin#directory#role - description: The type of the API resource. This is always `admin#directory#role`. - roleId: - description: ID of the role. - format: int64 + name: + description: The name of the feature. type: string - isSystemRole: - description: Returns `true` if this is a pre-defined system role. - type: boolean - roleName: annotations: required: - - directory.roles.insert - description: Name of the role. - type: string - isSuperAdminRole: - type: boolean - description: Returns `true` if the role is a super admin role. - etag: + - directory.resources.features.insert + UserAbout: + id: UserAbout + description: JSON template for About (notes) of a user in Directory API. + type: object + properties: + contentType: + description: >- + About entry can have a type which indicates the content type. It can + either be plain or html. By default, notes contents are assumed to + contain plain text. type: string - description: ETag of the resource. - roleDescription: + value: + description: Actual value of notes. type: string - description: A short description of the role. - rolePrivileges: - items: - type: object - properties: - privilegeName: - type: string - description: The name of the privilege. - serviceId: - type: string - description: 'The obfuscated ID of the service this privilege is for. This value is returned with [`Privileges.list()`](/admin-sdk/directory/v1/reference/privileges/list).' - type: array - description: The set of privileges that are granted to this role. - annotations: - required: - - directory.roles.insert - id: Role + UserAddress: + id: UserAddress + description: JSON template for address. type: object - Users: properties: - nextPageToken: - description: Token used to access next page of this result. - type: string - etag: - description: ETag of the resource. + country: + description: Country. type: string - trigger_event: - description: Event that triggered this response (only used in case of Push Response) + countryCode: + description: Country code. type: string - users: - items: - $ref: '#/components/schemas/User' - description: A list of user objects. - type: array - kind: + customType: + description: Custom type. type: string - default: admin#directory#users - description: Kind of resource this is. - id: Users - type: object - Customer: - id: Customer - type: object - properties: - id: + extendedAddress: + description: Extended Address. type: string - description: The unique ID for the customer's Google Workspace account. (Readonly) - phoneNumber: + formatted: + description: Formatted address. type: string - description: 'The customer''s contact phone number in [E.164](https://en.wikipedia.org/wiki/E.164) format.' - language: + locality: + description: Locality. type: string - description: 'The customer''s ISO 639-2 language code. See the [Language Codes](/admin-sdk/directory/v1/languages) page for the list of supported codes. Valid language codes outside the supported set will be accepted by the API but may lead to unexpected behavior. The default value is `en`.' - postalAddress: - description: The customer's postal address information. - $ref: '#/components/schemas/CustomerPostalAddress' - alternateEmail: + poBox: + description: Other parts of address. type: string - description: The customer's secondary contact email address. This email address cannot be on the same domain as the `customerDomain` - customerDomain: - description: The customer's primary domain name string. Do not include the `www` prefix when creating a new customer. + postalCode: + description: Postal code. type: string - kind: + primary: + description: >- + If this is user's primary address. Only one entry could be marked as + primary. + type: boolean + region: + description: Region. type: string - default: admin#directory#customer - description: 'Identifies the resource as a customer. Value: `admin#directory#customer`' - etag: - description: ETag of the resource. + sourceIsStructured: + description: >- + User supplied address was structured. Structured addresses are NOT + supported at this time. You might be able to write structured + addresses but any values will eventually be clobbered. + type: boolean + streetAddress: + description: Street. type: string - customerCreationTime: - format: date-time - description: The customer's creation time (Readonly) + type: + description: >- + Each entry can have a type which indicates standard values of that + entry. For example address could be of home work etc. In addition to + the standard type an entry can have a custom type and can take any + value. Such type should have the CUSTOM value as type and also have + a customType value. type: string - MembersHasMember: - description: JSON template for Has Member response in Directory API. + UserCustomProperties: + id: UserCustomProperties + description: >- + JSON template for a set of custom properties (i.e. all fields in a + particular schema) + type: object + additionalProperties: + type: any + UserEmail: + id: UserEmail + description: JSON template for an email. + type: object properties: - isMember: + address: + description: Email id of the user. + type: string + customType: + description: Custom Type. + type: string + primary: + description: >- + If this is user's primary email. Only one entry could be marked as + primary. type: boolean - description: Output only. Identifies whether the given user is a member of the group. Membership can be direct or nested. - readOnly: true - id: MembersHasMember + type: + description: >- + Each entry can have a type which indicates standard types of that + entry. For example email could be of home, work etc. In addition to + the standard type, an entry can have a custom type and can take any + value Such types should have the CUSTOM value as type and also have + a customType value. + type: string + public_key_encryption_certificates: + description: >- + Public Key Encryption Certificates. Current limit: 1 per email + address, and 5 per user. + type: object + properties: + certificate: + description: >- + X.509 encryption certificate in `PEM` format. Must only be an + end-entity (leaf) certificate. + type: string + is_default: + description: >- + Whether this is the default certificate for the given email + address. + type: boolean + state: + description: >- + Denotes the certificate's state in its lifecycle. Possible + values are `not_yet_validated`, `valid`, `invalid`, `expired`, + and `revoked`. + type: string + UserExternalId: + id: UserExternalId + description: JSON template for an externalId entry. type: object + properties: + customType: + description: Custom type. + type: string + type: + description: The type of the Id. + type: string + value: + description: The value of the id. + type: string UserGender: + id: UserGender + type: object properties: addressMeAs: + description: >- + AddressMeAs. A human-readable string containing the proper way to + refer to the profile owner by humans for example he/him/his or + they/them/their. type: string - description: AddressMeAs. A human-readable string containing the proper way to refer to the profile owner by humans for example he/him/his or they/them/their. customGender: description: Custom gender. type: string type: description: Gender. type: string - id: UserGender + UserIm: + id: UserIm + description: JSON template for instant messenger of an user. type: object - UserLocation: properties: - area: - description: 'Textual location. This is most useful for display purposes to concisely describe the location. For example ''Mountain View, CA'', ''Near Seattle'', ''US-NYC-9TH 9A209A.''''' + customProtocol: + description: Custom protocol. type: string - floorName: + customType: + description: Custom type. type: string - description: Floor name/number. - floorSection: - description: 'Floor section. More specific location within the floor. For example if a floor is divided into sections ''A'', ''B'' and ''C'' this field would identify one of those values.' + im: + description: Instant messenger id. type: string - buildingId: - description: Building Identifier. + primary: + description: >- + If this is user's primary im. Only one entry could be marked as + primary. + type: boolean + protocol: + description: >- + Protocol used in the instant messenger. It should be one of the + values from ImProtocolTypes map. Similar to type it can take a + CUSTOM value and specify the custom name in customProtocol field. type: string type: + description: >- + Each entry can have a type which indicates standard types of that + entry. For example instant messengers could be of home work etc. In + addition to the standard type an entry can have a custom type and + can take any value. Such types should have the CUSTOM value as type + and also have a customType value. type: string - description: Each entry can have a type which indicates standard types of that entry. For example location could be of types default and desk. In addition to standard type an entry can have a custom type and can give it any name. Such types should have 'custom' as type and also have a customType value. + UserKeyword: + id: UserKeyword + description: JSON template for a keyword entry. + type: object + properties: customType: + description: Custom Type. + type: string + type: + description: >- + Each entry can have a type which indicates standard type of that + entry. For example keyword could be of type occupation or outlook. + In addition to the standard type an entry can have a custom type and + can give it any name. Such types should have the CUSTOM value as + type and also have a customType value. + type: string + value: + description: Keyword. + type: string + UserLanguage: + id: UserLanguage + description: JSON template for a language entry. + type: object + properties: + customLanguage: + description: >- + Other language. User can provide their own language name if there is + no corresponding ISO 639 language code. If this is set, + `languageCode` can't be set. type: string + languageCode: + description: >- + ISO 639 string representation of a language. See [Language + Codes](/admin-sdk/directory/v1/languages) for the list of supported + codes. Valid language codes outside the supported set will be + accepted by the API but may lead to unexpected behavior. Illegal + values cause `SchemaException`. If this is set, `customLanguage` + can't be set. + type: string + preference: + description: >- + Optional. If present, controls whether the specified `languageCode` + is the user's preferred language. If `customLanguage` is set, this + can't be set. Allowed values are `preferred` and `not_preferred`. + type: string + UserLocation: + id: UserLocation + description: JSON template for a location entry. + type: object + properties: + area: + description: >- + Textual location. This is most useful for display purposes to + concisely describe the location. For example 'Mountain View, CA', + 'Near Seattle', 'US-NYC-9TH 9A209A.'' + type: string + buildingId: + description: Building Identifier. + type: string + customType: description: Custom Type. + type: string deskCode: description: Most specific textual code of individual desk location. type: string - description: JSON template for a location entry. - type: object - id: UserLocation + floorName: + description: Floor name/number. + type: string + floorSection: + description: >- + Floor section. More specific location within the floor. For example + if a floor is divided into sections 'A', 'B' and 'C' this field + would identify one of those values. + type: string + type: + description: >- + Each entry can have a type which indicates standard types of that + entry. For example location could be of types default and desk. In + addition to standard type an entry can have a custom type and can + give it any name. Such types should have 'custom' as type and also + have a customType value. + type: string UserOrganization: + id: UserOrganization description: JSON template for an organization entry. + type: object properties: - primary: - type: boolean - description: If it user's primary organization. - title: - type: string - description: Title (designation) of the user in the organization. costCenter: - type: string description: The cost center of the users department. - symbol: - description: Symbol of the organization. type: string - name: + customType: + description: Custom type. type: string - description: Name of the organization - type: + department: + description: Department within the organization. + type: string + description: + description: Description of the organization. + type: string + domain: + description: The domain to which the organization belongs to. type: string - description: Each entry can have a type which indicates standard types of that entry. For example organization could be of school work etc. In addition to the standard type an entry can have a custom type and can give it any name. Such types should have the CUSTOM value as type and also have a CustomType value. fullTimeEquivalent: + description: >- + The full-time equivalent millipercent within the organization + (100000 = 100%). type: integer format: int32 - description: The full-time equivalent millipercent within the organization (100000 = 100%). - domain: + location: + description: >- + Location of the organization. This need not be fully qualified + address. type: string - description: The domain to which the organization belongs to. - customType: - description: Custom type. + name: + description: Name of the organization type: string - description: + primary: + description: If it user's primary organization. + type: boolean + symbol: + description: Symbol of the organization. type: string - description: Description of the organization. - department: + title: + description: Title (designation) of the user in the organization. type: string - description: Department within the organization. - location: + type: + description: >- + Each entry can have a type which indicates standard types of that + entry. For example organization could be of school work etc. In + addition to the standard type an entry can have a custom type and + can give it any name. Such types should have the CUSTOM value as + type and also have a CustomType value. type: string - description: Location of the organization. This need not be fully qualified address. - id: UserOrganization - type: object - Token: - description: JSON template for token resource in Directory API. - id: Token + UserPhone: + id: UserPhone + description: JSON template for a phone entry. type: object properties: - anonymous: - description: Whether the application is registered with Google. The value is `true` if the application has an anonymous Client ID. + customType: + description: Custom Type. + type: string + primary: + description: If this is user's primary phone or not. type: boolean - userKey: + type: + description: >- + Each entry can have a type which indicates standard types of that + entry. For example phone could be of home_fax work mobile etc. In + addition to the standard type an entry can have a custom type and + can give it any name. Such types should have the CUSTOM value as + type and also have a customType value. type: string - description: The unique ID of the user that issued the token. - scopes: - type: array - items: - type: string - description: A list of authorization scopes the application is granted. - etag: - description: ETag of the resource. + value: + description: Phone number. type: string - displayText: + UserPosixAccount: + id: UserPosixAccount + description: JSON template for a POSIX account entry. + type: object + properties: + accountId: + description: A POSIX account field identifier. type: string - description: The displayable name of the application the token is issued to. - nativeApp: - description: Whether the token is issued to an installed application. The value is `true` if the application is installed to a desktop or mobile device. + gecos: + description: The GECOS (user information) for this account. + type: string + gid: + description: The default group ID. + type: string + format: uint64 + homeDirectory: + description: The path to the home directory for this account. + type: string + operatingSystemType: + description: The operating system type for this account. + type: string + primary: + description: If this is user's primary account within the SystemId. type: boolean - kind: - default: admin#directory#token - description: The type of the API resource. This is always `admin#directory#token`. + shell: + description: The path to the login shell for this account. type: string - clientId: - description: The Client ID of the application the token is issued to. + systemId: + description: System identifier for which account Username or Uid apply to. type: string - BatchDeletePrintersRequest: - id: BatchDeletePrintersRequest - properties: - printerIds: - items: - type: string - type: array - description: A list of Printer.id that should be deleted. Max 100 at a time. + uid: + description: The POSIX compliant user ID. + type: string + format: uint64 + username: + description: The username of the account. + type: string + UserRelation: + id: UserRelation + description: JSON template for a relation entry. type: object - description: Request for deleting existing printers in batch. - Privileges: - id: Privileges properties: - items: - type: array - items: - $ref: '#/components/schemas/Privilege' - description: A list of Privilege resources. - kind: - default: admin#directory#privileges + customType: + description: Custom Type. type: string - description: The type of the API resource. This is always `admin#directory#privileges`. - etag: - description: ETag of the resource. + type: + description: >- + The relation of the user. Some of the possible values are mother + father sister brother manager assistant partner. + type: string + value: + description: The name of the relation. type: string + UserSshPublicKey: + id: UserSshPublicKey + description: JSON template for a POSIX account entry. type: object - FailureInfo: properties: - errorMessage: + expirationTimeUsec: + description: An expiration time in microseconds since epoch. type: string - description: Failure reason message. - errorCode: - enumDescriptions: - - 'Not an error; returned on success. HTTP Mapping: 200 OK' - - 'The operation was cancelled, typically by the caller. HTTP Mapping: 499 Client Closed Request' - - 'Unknown error. For example, this error may be returned when a `Status` value received from another address space belongs to an error space that is not known in this address space. Also errors raised by APIs that do not return enough error information may be converted to this error. HTTP Mapping: 500 Internal Server Error' - - 'The client specified an invalid argument. Note that this differs from `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates arguments that are problematic regardless of the state of the system (e.g., a malformed file name). HTTP Mapping: 400 Bad Request' - - 'The deadline expired before the operation could complete. For operations that change the state of the system, this error may be returned even if the operation has completed successfully. For example, a successful response from a server could have been delayed long enough for the deadline to expire. HTTP Mapping: 504 Gateway Timeout' - - 'Some requested entity (e.g., file or directory) was not found. Note to server developers: if a request is denied for an entire class of users, such as gradual feature rollout or undocumented allowlist, `NOT_FOUND` may be used. If a request is denied for some users within a class of users, such as user-based access control, `PERMISSION_DENIED` must be used. HTTP Mapping: 404 Not Found' - - 'The entity that a client attempted to create (e.g., file or directory) already exists. HTTP Mapping: 409 Conflict' - - 'The caller does not have permission to execute the specified operation. `PERMISSION_DENIED` must not be used for rejections caused by exhausting some resource (use `RESOURCE_EXHAUSTED` instead for those errors). `PERMISSION_DENIED` must not be used if the caller can not be identified (use `UNAUTHENTICATED` instead for those errors). This error code does not imply the request is valid or the requested entity exists or satisfies other pre-conditions. HTTP Mapping: 403 Forbidden' - - 'The request does not have valid authentication credentials for the operation. HTTP Mapping: 401 Unauthorized' - - 'Some resource has been exhausted, perhaps a per-user quota, or perhaps the entire file system is out of space. HTTP Mapping: 429 Too Many Requests' - - 'The operation was rejected because the system is not in a state required for the operation''s execution. For example, the directory to be deleted is non-empty, an rmdir operation is applied to a non-directory, etc. Service implementors can use the following guidelines to decide between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`: (a) Use `UNAVAILABLE` if the client can retry just the failing call. (b) Use `ABORTED` if the client should retry at a higher level. For example, when a client-specified test-and-set fails, indicating the client should restart a read-modify-write sequence. (c) Use `FAILED_PRECONDITION` if the client should not retry until the system state has been explicitly fixed. For example, if an "rmdir" fails because the directory is non-empty, `FAILED_PRECONDITION` should be returned since the client should not retry unless the files are deleted from the directory. HTTP Mapping: 400 Bad Request' - - 'The operation was aborted, typically due to a concurrency issue such as a sequencer check failure or transaction abort. See the guidelines above for deciding between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 409 Conflict' - - 'The operation was attempted past the valid range. E.g., seeking or reading past end-of-file. Unlike `INVALID_ARGUMENT`, this error indicates a problem that may be fixed if the system state changes. For example, a 32-bit file system will generate `INVALID_ARGUMENT` if asked to read at an offset that is not in the range [0,2^32-1], but it will generate `OUT_OF_RANGE` if asked to read from an offset past the current file size. There is a fair bit of overlap between `FAILED_PRECONDITION` and `OUT_OF_RANGE`. We recommend using `OUT_OF_RANGE` (the more specific error) when it applies so that callers who are iterating through a space can easily look for an `OUT_OF_RANGE` error to detect when they are done. HTTP Mapping: 400 Bad Request' - - 'The operation is not implemented or is not supported/enabled in this service. HTTP Mapping: 501 Not Implemented' - - 'Internal errors. This means that some invariants expected by the underlying system have been broken. This error code is reserved for serious errors. HTTP Mapping: 500 Internal Server Error' - - 'The service is currently unavailable. This is most likely a transient condition, which can be corrected by retrying with a backoff. Note that it is not always safe to retry non-idempotent operations. See the guidelines above for deciding between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 503 Service Unavailable' - - 'Unrecoverable data loss or corruption. HTTP Mapping: 500 Internal Server Error' + format: int64 + fingerprint: + description: A SHA-256 fingerprint of the SSH public key. (Read-only) type: string - description: Canonical code for why the update failed to apply. - enum: - - OK - - CANCELLED - - UNKNOWN - - INVALID_ARGUMENT - - DEADLINE_EXCEEDED - - NOT_FOUND - - ALREADY_EXISTS - - PERMISSION_DENIED - - UNAUTHENTICATED - - RESOURCE_EXHAUSTED - - FAILED_PRECONDITION - - ABORTED - - OUT_OF_RANGE - - UNIMPLEMENTED - - INTERNAL - - UNAVAILABLE - - DATA_LOSS - printer: - $ref: '#/components/schemas/Printer' - description: Failed printer. - printerId: + readOnly: true + key: + description: An SSH public key. type: string - description: Id of a failed printer. - description: Info about failures + UserWebsite: + id: UserWebsite + description: JSON template for a website entry. type: object - id: FailureInfo - UserRelation: properties: + customType: + description: Custom Type. + type: string + primary: + description: If this is user's primary website or not. + type: boolean type: + description: >- + Each entry can have a type which indicates standard types of that + entry. For example website could be of home work blog etc. In + addition to the standard type an entry can have a custom type and + can give it any name. Such types should have the CUSTOM value as + type and also have a customType value. type: string - description: The relation of the user. Some of the possible values are mother father sister brother manager assistant partner. value: + description: Website. type: string - description: The name of the relation. - customType: - type: string - description: Custom Type. - type: object - description: JSON template for a relation entry. - id: UserRelation parameters: - upload_protocol: - description: 'Upload protocol for media (e.g. "raw", "multipart").' + access_token: + description: OAuth access token. in: query - name: upload_protocol + name: access_token schema: type: string - uploadType: - description: 'Legacy upload protocol for media (e.g. "media", "multipart").' + alt: + description: Data format for response. in: query - name: uploadType + name: alt schema: type: string - quotaUser: - description: 'Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.' + enum: + - json + - media + - proto + callback: + description: JSONP in: query - name: quotaUser + name: callback + schema: + type: string + fields: + description: Selector specifying which fields to include in a partial response. + in: query + name: fields schema: type: string key: - description: 'API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.' + description: >- + API key. Your API key identifies your project and provides you with API + access, quota, and reports. Required unless you provide an OAuth 2.0 + token. in: query name: key schema: type: string - alt: - description: Data format for response. + oauth_token: + description: OAuth 2.0 token for the current user. in: query - name: alt + name: oauth_token schema: type: string - enum: - - json - - media - - proto - callback: - description: JSONP + prettyPrint: + description: Returns response with indentations and line breaks. in: query - name: callback + name: prettyPrint + schema: + type: boolean + quotaUser: + description: >- + Available to use for quota purposes for server-side applications. Can be + any arbitrary string assigned to a user, but should not exceed 40 + characters. + in: query + name: quotaUser schema: type: string - oauth_token: - description: OAuth 2.0 token for the current user. + upload_protocol: + description: Upload protocol for media (e.g. "raw", "multipart"). in: query - name: oauth_token + name: upload_protocol schema: type: string - fields: - description: Selector specifying which fields to include in a partial response. + uploadType: + description: Legacy upload protocol for media (e.g. "media", "multipart"). in: query - name: fields + name: uploadType schema: type: string _.xgafv: description: V1 error format. in: query - name: _.xgafv + name: $.xgafv schema: type: string enum: - '1' - '2' - prettyPrint: - description: Returns response with indentations and line breaks. - in: query - name: prettyPrint - schema: - type: boolean - access_token: - description: OAuth access token. - in: query - name: access_token - schema: - type: string x-stackQL-resources: - users: - id: googleadmin.directory.users - name: users - title: Users + chromeosdevices: + id: googleadmin.directory.chromeosdevices + name: chromeosdevices + title: Chromeosdevices methods: - list: - operation: - $ref: '#/paths/~1admin~1directory~1v1~1users/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.users - _list: - operation: - $ref: '#/paths/~1admin~1directory~1v1~1users/get' - response: - mediaType: application/json - openAPIDocKey: '200' - insert: + action: operation: - $ref: '#/paths/~1admin~1directory~1v1~1users/post' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customerId}~1devices~1chromeos~1{resourceId}~1action/post response: mediaType: application/json openAPIDocKey: '200' - delete: + get: operation: - $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}/delete' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customerId}~1devices~1chromeos~1{deviceId}/get response: mediaType: application/json openAPIDocKey: '200' patch: operation: - $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}/patch' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customerId}~1devices~1chromeos~1{deviceId}/patch response: mediaType: application/json openAPIDocKey: '200' update: operation: - $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - get: - operation: - $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customerId}~1devices~1chromeos~1{deviceId}/put response: mediaType: application/json openAPIDocKey: '200' - makeAdmin: + list: operation: - $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}~1makeAdmin/post' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customerId}~1devices~1chromeos/get response: mediaType: application/json openAPIDocKey: '200' - watch: + objectKey: $.chromeosdevices + move_devices_to_ou: operation: - $ref: '#/paths/~1admin~1directory~1v1~1users~1watch/post' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customerId}~1devices~1chromeos~1moveDevicesToOu/post response: mediaType: application/json openAPIDocKey: '200' - signOut: + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/chromeosdevices/methods/get' + - $ref: '#/components/x-stackQL-resources/chromeosdevices/methods/list' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/chromeosdevices/methods/patch' + replace: + - $ref: '#/components/x-stackQL-resources/chromeosdevices/methods/update' + delete: [] + chromeos: + id: googleadmin.directory.chromeos + name: chromeos + title: Chromeos + methods: + issue_command: operation: - $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}~1signOut/post' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customerId}~1devices~1chromeos~1{deviceId}:issueCommand/post response: mediaType: application/json openAPIDocKey: '200' - undelete: + batch_change_status: operation: - $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}~1undelete/post' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customerId}~1devices~1chromeos:batchChangeStatus/post response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/users/methods/list' - - $ref: '#/components/x-stackQL-resources/users/methods/get' - insert: - - $ref: '#/components/x-stackQL-resources/users/methods/insert' + select: [] + insert: [] update: [] - delete: - - $ref: '#/components/x-stackQL-resources/users/methods/delete' - photos: - id: googleadmin.directory.photos - name: photos - title: Photos + replace: [] + delete: [] + commands: + id: googleadmin.directory.commands + name: commands + title: Commands methods: get: operation: - $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}~1photos~1thumbnail/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete: - operation: - $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}~1photos~1thumbnail/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - patch: - operation: - $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}~1photos~1thumbnail/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - update: - operation: - $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}~1photos~1thumbnail/put' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customerId}~1devices~1chromeos~1{deviceId}~1commands~1{commandId}/get response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/photos/methods/get' + - $ref: '#/components/x-stackQL-resources/commands/methods/get' insert: [] update: [] - delete: - - $ref: '#/components/x-stackQL-resources/photos/methods/delete' - aliases: - id: googleadmin.directory.aliases - name: aliases - title: Aliases + replace: [] + delete: [] + asps: + id: googleadmin.directory.asps + name: asps + title: Asps methods: - user_aliases_list: - operation: - $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}~1aliases/get' - response: - mediaType: application/json - openAPIDocKey: '200' - user_aliases_insert: - operation: - $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}~1aliases/post' - response: - mediaType: application/json - openAPIDocKey: '200' - user_aliases_delete: - operation: - $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}~1aliases~1{alias}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - user_aliases_watch: - operation: - $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}~1aliases~1watch/post' - response: - mediaType: application/json - openAPIDocKey: '200' - group_aliases_list: + delete: operation: - $ref: '#/paths/~1admin~1directory~1v1~1groups~1{groupKey}~1aliases/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1users~1{userKey}~1asps~1{codeId}/delete response: mediaType: application/json openAPIDocKey: '200' - group_aliases_insert: + get: operation: - $ref: '#/paths/~1admin~1directory~1v1~1groups~1{groupKey}~1aliases/post' + $ref: >- + #/paths/~1admin~1directory~1v1~1users~1{userKey}~1asps~1{codeId}/get response: mediaType: application/json openAPIDocKey: '200' - group_aliases_delete: + list: operation: - $ref: '#/paths/~1admin~1directory~1v1~1groups~1{groupKey}~1aliases~1{alias}/delete' + $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}~1asps/get' response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/aliases/methods/user_aliases_list' - - $ref: '#/components/x-stackQL-resources/aliases/methods/group_aliases_list' - insert: - - $ref: '#/components/x-stackQL-resources/aliases/methods/user_aliases_insert' - - $ref: '#/components/x-stackQL-resources/aliases/methods/group_aliases_insert' + - $ref: '#/components/x-stackQL-resources/asps/methods/get' + - $ref: '#/components/x-stackQL-resources/asps/methods/list' + insert: [] update: [] + replace: [] delete: - - $ref: '#/components/x-stackQL-resources/aliases/methods/user_aliases_delete' - - $ref: '#/components/x-stackQL-resources/aliases/methods/group_aliases_delete' - roles: - id: googleadmin.directory.roles - name: roles - title: Roles + - $ref: '#/components/x-stackQL-resources/asps/methods/delete' + channels: + id: googleadmin.directory.channels + name: channels + title: Channels methods: - patch: - operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1roles~1{roleId}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - delete: + stop: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1roles~1{roleId}/delete' + $ref: '#/paths/~1admin~1directory_v1~1channels~1stop/post' response: mediaType: application/json openAPIDocKey: '200' + sqlVerbs: + select: [] + insert: [] + update: [] + replace: [] + delete: [] + customers: + id: googleadmin.directory.customers + name: customers + title: Customers + methods: get: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1roles~1{roleId}/get' + $ref: '#/paths/~1admin~1directory~1v1~1customers~1{customerKey}/get' response: mediaType: application/json openAPIDocKey: '200' update: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1roles~1{roleId}/put' + $ref: '#/paths/~1admin~1directory~1v1~1customers~1{customerKey}/put' response: mediaType: application/json openAPIDocKey: '200' - insert: + patch: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1roles/post' + $ref: '#/paths/~1admin~1directory~1v1~1customers~1{customerKey}/patch' response: mediaType: application/json openAPIDocKey: '200' - list: + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/customers/methods/get' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/customers/methods/patch' + replace: + - $ref: '#/components/x-stackQL-resources/customers/methods/update' + delete: [] + printers_printer_models: + id: googleadmin.directory.printers_printer_models + name: printers_printer_models + title: Printers_printer_models + methods: + list_printer_models: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1roles/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printers:listPrinterModels/get response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.printerModels sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/roles/methods/get' - - $ref: '#/components/x-stackQL-resources/roles/methods/list' - insert: - - $ref: '#/components/x-stackQL-resources/roles/methods/insert' + - $ref: >- + #/components/x-stackQL-resources/printers_printer_models/methods/list_printer_models + insert: [] update: [] - delete: - - $ref: '#/components/x-stackQL-resources/roles/methods/delete' - schemas: - id: googleadmin.directory.schemas - name: schemas - title: Schemas + replace: [] + delete: [] + printers: + id: googleadmin.directory.printers + name: printers + title: Printers methods: - insert: - operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customerId}~1schemas/post' - response: - mediaType: application/json - openAPIDocKey: '200' list: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customerId}~1schemas/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.schemas - _list: - operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customerId}~1schemas/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printers/get response: mediaType: application/json openAPIDocKey: '200' - update: - operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customerId}~1schemas~1{schemaKey}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - delete: + objectKey: $.printers + create: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customerId}~1schemas~1{schemaKey}/delete' + $ref: >- + #/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printers/post response: mediaType: application/json openAPIDocKey: '200' get: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customerId}~1schemas~1{schemaKey}/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printers~1{printersId}/get response: mediaType: application/json openAPIDocKey: '200' patch: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customerId}~1schemas~1{schemaKey}/patch' + $ref: >- + #/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printers~1{printersId}/patch response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/schemas/methods/list' - - $ref: '#/components/x-stackQL-resources/schemas/methods/get' - insert: - - $ref: '#/components/x-stackQL-resources/schemas/methods/insert' - update: [] delete: - - $ref: '#/components/x-stackQL-resources/schemas/methods/delete' - verification_codes: - id: googleadmin.directory.verification_codes - name: verification_codes - title: Verification Codes - methods: - list: operation: - $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}~1verificationCodes/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printers~1{printersId}/delete response: mediaType: application/json openAPIDocKey: '200' - generate: + batch_create_printers: operation: - $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}~1verificationCodes~1generate/post' + $ref: >- + #/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printers:batchCreatePrinters/post response: mediaType: application/json openAPIDocKey: '200' - invalidate: + batch_delete_printers: operation: - $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}~1verificationCodes~1invalidate/post' + $ref: >- + #/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printers:batchDeletePrinters/post response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/verification_codes/methods/list' - insert: [] - update: [] - delete: [] - printers: - id: googleadmin.directory.printers - name: printers - title: Printers - methods: + - $ref: '#/components/x-stackQL-resources/printers/methods/get' + - $ref: '#/components/x-stackQL-resources/printers/methods/list' insert: + - $ref: '#/components/x-stackQL-resources/printers/methods/create' + - $ref: >- + #/components/x-stackQL-resources/printers/methods/batch_create_printers + update: + - $ref: '#/components/x-stackQL-resources/printers/methods/patch' + replace: [] + delete: + - $ref: '#/components/x-stackQL-resources/printers/methods/delete' + - $ref: >- + #/components/x-stackQL-resources/printers/methods/batch_delete_printers + print_servers: + id: googleadmin.directory.print_servers + name: print_servers + title: Print_servers + methods: + list: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printers/post' + $ref: >- + #/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printServers/get response: mediaType: application/json openAPIDocKey: '200' - list: + objectKey: $.printServers + create: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printers/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printServers/post response: mediaType: application/json openAPIDocKey: '200' - objectKey: $.printers - _list: + get: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printers/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printServers~1{printServersId}/get response: mediaType: application/json openAPIDocKey: '200' patch: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printers~1{printersId}/patch' + $ref: >- + #/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printServers~1{printServersId}/patch response: mediaType: application/json openAPIDocKey: '200' delete: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printers~1{printersId}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - get: - operation: - $ref: '#/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printers~1{printersId}/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printServers~1{printServersId}/delete response: mediaType: application/json openAPIDocKey: '200' - batchDeletePrinters: + batch_create_print_servers: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printers:batchDeletePrinters/post' + $ref: >- + #/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printServers:batchCreatePrintServers/post response: mediaType: application/json openAPIDocKey: '200' - batchCreatePrinters: + batch_delete_print_servers: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printers:batchCreatePrinters/post' + $ref: >- + #/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printServers:batchDeletePrintServers/post response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/printers/methods/list' - - $ref: '#/components/x-stackQL-resources/printers/methods/get' + - $ref: '#/components/x-stackQL-resources/print_servers/methods/get' + - $ref: '#/components/x-stackQL-resources/print_servers/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/printers/methods/insert' - update: [] + - $ref: '#/components/x-stackQL-resources/print_servers/methods/create' + - $ref: >- + #/components/x-stackQL-resources/print_servers/methods/batch_create_print_servers + update: + - $ref: '#/components/x-stackQL-resources/print_servers/methods/patch' + replace: [] delete: - - $ref: '#/components/x-stackQL-resources/printers/methods/delete' - printer_models: - id: googleadmin.directory.printer_models - name: printer_models - title: Printer Models + - $ref: '#/components/x-stackQL-resources/print_servers/methods/delete' + - $ref: >- + #/components/x-stackQL-resources/print_servers/methods/batch_delete_print_servers + domain_aliases: + id: googleadmin.directory.domain_aliases + name: domain_aliases + title: Domain_aliases methods: - list: - operation: - $ref: '#/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printers:listPrinterModels/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.printerModels - _list: + delete: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printers:listPrinterModels/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1domainaliases~1{domainAliasName}/delete response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/printer_models/methods/list' - insert: [] - update: [] - delete: [] - print_servers: - id: googleadmin.directory.print_servers - name: print_servers - title: Print Servers - methods: get: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printServers~1{printServersId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete: - operation: - $ref: '#/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printServers~1{printServersId}/delete' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1domainaliases~1{domainAliasName}/get response: mediaType: application/json openAPIDocKey: '200' - patch: + insert: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printServers~1{printServersId}/patch' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1domainaliases/post response: mediaType: application/json openAPIDocKey: '200' list: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printServers/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1domainaliases/get response: mediaType: application/json openAPIDocKey: '200' - objectKey: $.printServers - _list: + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/domain_aliases/methods/get' + - $ref: '#/components/x-stackQL-resources/domain_aliases/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/domain_aliases/methods/insert' + update: [] + replace: [] + delete: + - $ref: '#/components/x-stackQL-resources/domain_aliases/methods/delete' + domains: + id: googleadmin.directory.domains + name: domains + title: Domains + methods: + delete: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printServers/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1domains~1{domainName}/delete response: mediaType: application/json openAPIDocKey: '200' - insert: + get: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printServers/post' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1domains~1{domainName}/get response: mediaType: application/json openAPIDocKey: '200' - batchDeletePrintServers: + insert: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printServers:batchDeletePrintServers/post' + $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1domains/post' response: mediaType: application/json openAPIDocKey: '200' - batchCreatePrintServers: + list: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customers~1{customersId}~1chrome~1printServers:batchCreatePrintServers/post' + $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1domains/get' response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/print_servers/methods/get' - - $ref: '#/components/x-stackQL-resources/print_servers/methods/list' + - $ref: '#/components/x-stackQL-resources/domains/methods/get' + - $ref: '#/components/x-stackQL-resources/domains/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/print_servers/methods/insert' + - $ref: '#/components/x-stackQL-resources/domains/methods/insert' update: [] + replace: [] delete: - - $ref: '#/components/x-stackQL-resources/print_servers/methods/delete' - customers: - id: googleadmin.directory.customers - name: customers - title: Customers + - $ref: '#/components/x-stackQL-resources/domains/methods/delete' + groups: + id: googleadmin.directory.groups + name: groups + title: Groups methods: - get: + delete: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customers~1{customerKey}/get' + $ref: '#/paths/~1admin~1directory~1v1~1groups~1{groupKey}/delete' response: mediaType: application/json openAPIDocKey: '200' - patch: + get: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customers~1{customerKey}/patch' + $ref: '#/paths/~1admin~1directory~1v1~1groups~1{groupKey}/get' response: mediaType: application/json openAPIDocKey: '200' update: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customers~1{customerKey}/put' + $ref: '#/paths/~1admin~1directory~1v1~1groups~1{groupKey}/put' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/customers/methods/get' - insert: [] - update: [] - delete: [] - buildings: - id: googleadmin.directory.buildings - name: buildings - title: Buildings - methods: - list: + patch: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1buildings/get' + $ref: '#/paths/~1admin~1directory~1v1~1groups~1{groupKey}/patch' response: mediaType: application/json openAPIDocKey: '200' - objectKey: $.buildings - _list: + insert: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1buildings/get' + $ref: '#/paths/~1admin~1directory~1v1~1groups/post' response: mediaType: application/json openAPIDocKey: '200' - insert: + list: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1buildings/post' + $ref: '#/paths/~1admin~1directory~1v1~1groups/get' response: mediaType: application/json openAPIDocKey: '200' - get: + objectKey: $.groups + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/groups/methods/get' + - $ref: '#/components/x-stackQL-resources/groups/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/groups/methods/insert' + update: + - $ref: '#/components/x-stackQL-resources/groups/methods/patch' + replace: + - $ref: '#/components/x-stackQL-resources/groups/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/groups/methods/delete' + aliases: + id: googleadmin.directory.aliases + name: aliases + title: Aliases + methods: + delete: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1buildings~1{buildingId}/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1users~1{userKey}~1aliases~1{alias}/delete response: mediaType: application/json openAPIDocKey: '200' - patch: + insert: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1buildings~1{buildingId}/patch' + $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}~1aliases/post' response: mediaType: application/json openAPIDocKey: '200' - delete: + list: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1buildings~1{buildingId}/delete' + $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}~1aliases/get' response: mediaType: application/json openAPIDocKey: '200' - update: + watch: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1buildings~1{buildingId}/put' + $ref: >- + #/paths/~1admin~1directory~1v1~1users~1{userKey}~1aliases~1watch/post response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/buildings/methods/list' - - $ref: '#/components/x-stackQL-resources/buildings/methods/get' + - $ref: '#/components/x-stackQL-resources/aliases/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/buildings/methods/insert' + - $ref: '#/components/x-stackQL-resources/aliases/methods/insert' update: [] + replace: [] delete: - - $ref: '#/components/x-stackQL-resources/buildings/methods/delete' - calendars: - id: googleadmin.directory.calendars - name: calendars - title: Calendars + - $ref: '#/components/x-stackQL-resources/aliases/methods/delete' + members: + id: googleadmin.directory.members + name: members + title: Members methods: - list: + delete: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1calendars/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1groups~1{groupKey}~1members~1{memberKey}/delete response: mediaType: application/json openAPIDocKey: '200' - insert: + get: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1calendars/post' + $ref: >- + #/paths/~1admin~1directory~1v1~1groups~1{groupKey}~1members~1{memberKey}/get + response: + mediaType: application/json + openAPIDocKey: '200' + update: + operation: + $ref: >- + #/paths/~1admin~1directory~1v1~1groups~1{groupKey}~1members~1{memberKey}/put response: mediaType: application/json openAPIDocKey: '200' patch: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1calendars~1{calendarResourceId}/patch' + $ref: >- + #/paths/~1admin~1directory~1v1~1groups~1{groupKey}~1members~1{memberKey}/patch response: mediaType: application/json openAPIDocKey: '200' - get: + has_member: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1calendars~1{calendarResourceId}/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1groups~1{groupKey}~1hasMember~1{memberKey}/get response: mediaType: application/json openAPIDocKey: '200' - update: + insert: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1calendars~1{calendarResourceId}/put' + $ref: '#/paths/~1admin~1directory~1v1~1groups~1{groupKey}~1members/post' response: mediaType: application/json openAPIDocKey: '200' - delete: + list: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1calendars~1{calendarResourceId}/delete' + $ref: '#/paths/~1admin~1directory~1v1~1groups~1{groupKey}~1members/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.members sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/calendars/methods/list' - - $ref: '#/components/x-stackQL-resources/calendars/methods/get' + - $ref: '#/components/x-stackQL-resources/members/methods/get' + - $ref: '#/components/x-stackQL-resources/members/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/calendars/methods/insert' - update: [] + - $ref: '#/components/x-stackQL-resources/members/methods/insert' + update: + - $ref: '#/components/x-stackQL-resources/members/methods/patch' + replace: + - $ref: '#/components/x-stackQL-resources/members/methods/update' delete: - - $ref: '#/components/x-stackQL-resources/calendars/methods/delete' - features: - id: googleadmin.directory.features - name: features - title: Features + - $ref: '#/components/x-stackQL-resources/members/methods/delete' + mobiledevices: + id: googleadmin.directory.mobiledevices + name: mobiledevices + title: Mobiledevices methods: - update: + action: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1features~1{featureKey}/put' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customerId}~1devices~1mobile~1{resourceId}~1action/post response: mediaType: application/json openAPIDocKey: '200' - patch: + delete: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1features~1{featureKey}/patch' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customerId}~1devices~1mobile~1{resourceId}/delete response: mediaType: application/json openAPIDocKey: '200' get: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1features~1{featureKey}/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customerId}~1devices~1mobile~1{resourceId}/get response: mediaType: application/json openAPIDocKey: '200' - delete: + list: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1features~1{featureKey}/delete' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customerId}~1devices~1mobile/get response: mediaType: application/json openAPIDocKey: '200' - insert: + objectKey: $.mobiledevices + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/mobiledevices/methods/get' + - $ref: '#/components/x-stackQL-resources/mobiledevices/methods/list' + insert: [] + update: [] + replace: [] + delete: + - $ref: '#/components/x-stackQL-resources/mobiledevices/methods/delete' + orgunits: + id: googleadmin.directory.orgunits + name: orgunits + title: Orgunits + methods: + delete: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1features/post' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customerId}~1orgunits~1{orgunitsId}/delete response: mediaType: application/json openAPIDocKey: '200' - list: + get: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1features/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customerId}~1orgunits~1{orgunitsId}/get response: mediaType: application/json openAPIDocKey: '200' - objectKey: $.features - _list: + update: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1features/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customerId}~1orgunits~1{orgunitsId}/put response: mediaType: application/json openAPIDocKey: '200' - rename: + patch: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1features~1{oldName}~1rename/post' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customerId}~1orgunits~1{orgunitsId}/patch response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/features/methods/get' - - $ref: '#/components/x-stackQL-resources/features/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/features/methods/insert' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/features/methods/delete' - channels: - id: googleadmin.directory.channels - name: channels - title: Channels - methods: - stop: operation: - $ref: '#/paths/~1admin~1directory_v1~1channels~1stop/post' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customerId}~1orgunits/post response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - privileges: - id: googleadmin.directory.privileges - name: privileges - title: Privileges - methods: list: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1roles~1ALL~1privileges/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customerId}~1orgunits/get response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/privileges/methods/list' - insert: [] - update: [] - delete: [] - chromeos: - id: googleadmin.directory.chromeos - name: chromeos - title: Chromeos + - $ref: '#/components/x-stackQL-resources/orgunits/methods/get' + - $ref: '#/components/x-stackQL-resources/orgunits/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/orgunits/methods/insert' + update: + - $ref: '#/components/x-stackQL-resources/orgunits/methods/patch' + replace: + - $ref: '#/components/x-stackQL-resources/orgunits/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/orgunits/methods/delete' + privileges: + id: googleadmin.directory.privileges + name: privileges + title: Privileges methods: - issueCommand: + list: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customerId}~1devices~1chromeos~1{deviceId}:issueCommand/post' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1roles~1ALL~1privileges/get response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/privileges/methods/list' insert: [] update: [] + replace: [] delete: [] - commands: - id: googleadmin.directory.commands - name: commands - title: Commands + role_assignments: + id: googleadmin.directory.role_assignments + name: role_assignments + title: Role_assignments methods: + delete: + operation: + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1roleassignments~1{roleAssignmentId}/delete + response: + mediaType: application/json + openAPIDocKey: '200' get: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customerId}~1devices~1chromeos~1{deviceId}~1commands~1{commandId}/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1roleassignments~1{roleAssignmentId}/get response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/commands/methods/get' - insert: [] - update: [] - delete: [] - chromeosdevices: - id: googleadmin.directory.chromeosdevices - name: chromeosdevices - title: Chromeosdevices - methods: - list: + insert: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customerId}~1devices~1chromeos/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1roleassignments/post response: mediaType: application/json openAPIDocKey: '200' - objectKey: $.chromeosdevices - _list: + list: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customerId}~1devices~1chromeos/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1roleassignments/get response: mediaType: application/json openAPIDocKey: '200' - patch: + objectKey: $.items + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/role_assignments/methods/get' + - $ref: '#/components/x-stackQL-resources/role_assignments/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/role_assignments/methods/insert' + update: [] + replace: [] + delete: + - $ref: '#/components/x-stackQL-resources/role_assignments/methods/delete' + buildings: + id: googleadmin.directory.buildings + name: buildings + title: Buildings + methods: + delete: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customerId}~1devices~1chromeos~1{deviceId}/patch' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1buildings~1{buildingId}/delete response: mediaType: application/json openAPIDocKey: '200' get: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customerId}~1devices~1chromeos~1{deviceId}/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1buildings~1{buildingId}/get response: mediaType: application/json openAPIDocKey: '200' update: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customerId}~1devices~1chromeos~1{deviceId}/put' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1buildings~1{buildingId}/put response: mediaType: application/json openAPIDocKey: '200' - moveDevicesToOu: + patch: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customerId}~1devices~1chromeos~1moveDevicesToOu/post' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1buildings~1{buildingId}/patch response: mediaType: application/json openAPIDocKey: '200' - action: + insert: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customerId}~1devices~1chromeos~1{resourceId}~1action/post' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1buildings/post response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/chromeosdevices/methods/list' - - $ref: '#/components/x-stackQL-resources/chromeosdevices/methods/get' - insert: [] - update: [] - delete: [] - orgunits: - id: googleadmin.directory.orgunits - name: orgunits - title: Orgunits - methods: list: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customerId}~1orgunits/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1buildings/get response: mediaType: application/json openAPIDocKey: '200' - objectKey: $.organizationUnits - _list: + objectKey: $.buildings + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/buildings/methods/get' + - $ref: '#/components/x-stackQL-resources/buildings/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/buildings/methods/insert' + update: + - $ref: '#/components/x-stackQL-resources/buildings/methods/patch' + replace: + - $ref: '#/components/x-stackQL-resources/buildings/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/buildings/methods/delete' + calendars: + id: googleadmin.directory.calendars + name: calendars + title: Calendars + methods: + delete: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customerId}~1orgunits/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1calendars~1{calendarResourceId}/delete response: mediaType: application/json openAPIDocKey: '200' - insert: + get: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customerId}~1orgunits/post' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1calendars~1{calendarResourceId}/get response: mediaType: application/json openAPIDocKey: '200' - patch: + update: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customerId}~1orgunits~1{orgunitsId}/patch' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1calendars~1{calendarResourceId}/put response: mediaType: application/json openAPIDocKey: '200' - get: + patch: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customerId}~1orgunits~1{orgunitsId}/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1calendars~1{calendarResourceId}/patch response: mediaType: application/json openAPIDocKey: '200' - update: + insert: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customerId}~1orgunits~1{orgunitsId}/put' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1calendars/post response: mediaType: application/json openAPIDocKey: '200' - delete: + list: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customerId}~1orgunits~1{orgunitsId}/delete' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1calendars/get response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.items sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/orgunits/methods/list' - - $ref: '#/components/x-stackQL-resources/orgunits/methods/get' + - $ref: '#/components/x-stackQL-resources/calendars/methods/get' + - $ref: '#/components/x-stackQL-resources/calendars/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/orgunits/methods/insert' - update: [] + - $ref: '#/components/x-stackQL-resources/calendars/methods/insert' + update: + - $ref: '#/components/x-stackQL-resources/calendars/methods/patch' + replace: + - $ref: '#/components/x-stackQL-resources/calendars/methods/update' delete: - - $ref: '#/components/x-stackQL-resources/orgunits/methods/delete' - two_step_verification: - id: googleadmin.directory.two_step_verification - name: two_step_verification - title: Two Step Verification + - $ref: '#/components/x-stackQL-resources/calendars/methods/delete' + features: + id: googleadmin.directory.features + name: features + title: Features methods: - turnOff: + delete: operation: - $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}~1twoStepVerification~1turnOff/post' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1features~1{featureKey}/delete response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - groups: - id: googleadmin.directory.groups - name: groups - title: Groups - methods: - update: + get: operation: - $ref: '#/paths/~1admin~1directory~1v1~1groups~1{groupKey}/put' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1features~1{featureKey}/get response: mediaType: application/json openAPIDocKey: '200' - get: + update: operation: - $ref: '#/paths/~1admin~1directory~1v1~1groups~1{groupKey}/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1features~1{featureKey}/put response: mediaType: application/json openAPIDocKey: '200' patch: operation: - $ref: '#/paths/~1admin~1directory~1v1~1groups~1{groupKey}/patch' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1features~1{featureKey}/patch response: mediaType: application/json openAPIDocKey: '200' - delete: + insert: operation: - $ref: '#/paths/~1admin~1directory~1v1~1groups~1{groupKey}/delete' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1features/post response: mediaType: application/json openAPIDocKey: '200' list: operation: - $ref: '#/paths/~1admin~1directory~1v1~1groups/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.groups - _list: - operation: - $ref: '#/paths/~1admin~1directory~1v1~1groups/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1features/get response: mediaType: application/json openAPIDocKey: '200' - insert: + objectKey: $.features + rename: operation: - $ref: '#/paths/~1admin~1directory~1v1~1groups/post' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1resources~1features~1{oldName}~1rename/post response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/groups/methods/get' - - $ref: '#/components/x-stackQL-resources/groups/methods/list' + - $ref: '#/components/x-stackQL-resources/features/methods/get' + - $ref: '#/components/x-stackQL-resources/features/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/groups/methods/insert' - update: [] + - $ref: '#/components/x-stackQL-resources/features/methods/insert' + update: + - $ref: '#/components/x-stackQL-resources/features/methods/patch' + replace: + - $ref: '#/components/x-stackQL-resources/features/methods/update' delete: - - $ref: '#/components/x-stackQL-resources/groups/methods/delete' - asps: - id: googleadmin.directory.asps - name: asps - title: Asps + - $ref: '#/components/x-stackQL-resources/features/methods/delete' + roles: + id: googleadmin.directory.roles + name: roles + title: Roles methods: - list: + delete: operation: - $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}~1asps/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1roles~1{roleId}/delete response: mediaType: application/json openAPIDocKey: '200' get: operation: - $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}~1asps~1{codeId}/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1roles~1{roleId}/get response: mediaType: application/json openAPIDocKey: '200' - delete: + update: operation: - $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}~1asps~1{codeId}/delete' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1roles~1{roleId}/put response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/asps/methods/list' - - $ref: '#/components/x-stackQL-resources/asps/methods/get' - insert: [] - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/asps/methods/delete' - mobiledevices: - id: googleadmin.directory.mobiledevices - name: mobiledevices - title: Mobiledevices - methods: - action: + patch: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customerId}~1devices~1mobile~1{resourceId}~1action/post' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customer}~1roles~1{roleId}/patch response: mediaType: application/json openAPIDocKey: '200' - get: + insert: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customerId}~1devices~1mobile~1{resourceId}/get' + $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1roles/post' response: mediaType: application/json openAPIDocKey: '200' - delete: + list: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customerId}~1devices~1mobile~1{resourceId}/delete' + $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1roles/get' response: mediaType: application/json openAPIDocKey: '200' - list: + objectKey: $.items + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/roles/methods/get' + - $ref: '#/components/x-stackQL-resources/roles/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/roles/methods/insert' + update: + - $ref: '#/components/x-stackQL-resources/roles/methods/patch' + replace: + - $ref: '#/components/x-stackQL-resources/roles/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/roles/methods/delete' + schemas: + id: googleadmin.directory.schemas + name: schemas + title: Schemas + methods: + delete: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customerId}~1devices~1mobile/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customerId}~1schemas~1{schemaKey}/delete response: mediaType: application/json openAPIDocKey: '200' - objectKey: $.mobiledevices - _list: + get: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customerId}~1devices~1mobile/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customerId}~1schemas~1{schemaKey}/get response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/mobiledevices/methods/get' - - $ref: '#/components/x-stackQL-resources/mobiledevices/methods/list' - insert: [] - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/mobiledevices/methods/delete' - domains: - id: googleadmin.directory.domains - name: domains - title: Domains - methods: - list: + patch: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1domains/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customerId}~1schemas~1{schemaKey}/patch response: mediaType: application/json openAPIDocKey: '200' - objectKey: $.domains - _list: + update: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1domains/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customerId}~1schemas~1{schemaKey}/put response: mediaType: application/json openAPIDocKey: '200' insert: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1domains/post' + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customerId}~1schemas/post + response: + mediaType: application/json + openAPIDocKey: '200' + list: + operation: + $ref: >- + #/paths/~1admin~1directory~1v1~1customer~1{customerId}~1schemas/get response: mediaType: application/json openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/schemas/methods/get' + - $ref: '#/components/x-stackQL-resources/schemas/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/schemas/methods/insert' + update: + - $ref: '#/components/x-stackQL-resources/schemas/methods/patch' + replace: + - $ref: '#/components/x-stackQL-resources/schemas/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/schemas/methods/delete' + tokens: + id: googleadmin.directory.tokens + name: tokens + title: Tokens + methods: delete: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1domains~1{domainName}/delete' + $ref: >- + #/paths/~1admin~1directory~1v1~1users~1{userKey}~1tokens~1{clientId}/delete response: mediaType: application/json openAPIDocKey: '200' get: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1domains~1{domainName}/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1users~1{userKey}~1tokens~1{clientId}/get + response: + mediaType: application/json + openAPIDocKey: '200' + list: + operation: + $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}~1tokens/get' response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/domains/methods/list' - - $ref: '#/components/x-stackQL-resources/domains/methods/get' - insert: - - $ref: '#/components/x-stackQL-resources/domains/methods/insert' + - $ref: '#/components/x-stackQL-resources/tokens/methods/get' + - $ref: '#/components/x-stackQL-resources/tokens/methods/list' + insert: [] update: [] + replace: [] delete: - - $ref: '#/components/x-stackQL-resources/domains/methods/delete' - role_assignments: - id: googleadmin.directory.role_assignments - name: role_assignments - title: Role Assignments + - $ref: '#/components/x-stackQL-resources/tokens/methods/delete' + two_step_verification: + id: googleadmin.directory.two_step_verification + name: two_step_verification + title: Two_step_verification methods: - delete: - operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1roleassignments~1{roleAssignmentId}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - get: + turn_off: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1roleassignments~1{roleAssignmentId}/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1users~1{userKey}~1twoStepVerification~1turnOff/post response: mediaType: application/json openAPIDocKey: '200' - list: + sqlVerbs: + select: [] + insert: [] + update: [] + replace: [] + delete: [] + users: + id: googleadmin.directory.users + name: users + title: Users + methods: + delete: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1roleassignments/get' + $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}/delete' response: mediaType: application/json openAPIDocKey: '200' - insert: + get: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1roleassignments/post' + $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}/get' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/role_assignments/methods/get' - - $ref: '#/components/x-stackQL-resources/role_assignments/methods/list' - insert: - - $ref: '#/components/x-stackQL-resources/role_assignments/methods/insert' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/role_assignments/methods/delete' - members: - id: googleadmin.directory.members - name: members - title: Members - methods: - list: + patch: operation: - $ref: '#/paths/~1admin~1directory~1v1~1groups~1{groupKey}~1members/get' + $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}/patch' response: mediaType: application/json openAPIDocKey: '200' - objectKey: $.members - _list: + update: operation: - $ref: '#/paths/~1admin~1directory~1v1~1groups~1{groupKey}~1members/get' + $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}/put' response: mediaType: application/json openAPIDocKey: '200' insert: operation: - $ref: '#/paths/~1admin~1directory~1v1~1groups~1{groupKey}~1members/post' + $ref: '#/paths/~1admin~1directory~1v1~1users/post' response: mediaType: application/json openAPIDocKey: '200' - update: + list: operation: - $ref: '#/paths/~1admin~1directory~1v1~1groups~1{groupKey}~1members~1{memberKey}/put' + $ref: '#/paths/~1admin~1directory~1v1~1users/get' response: mediaType: application/json openAPIDocKey: '200' - delete: + objectKey: $.users + make_admin: operation: - $ref: '#/paths/~1admin~1directory~1v1~1groups~1{groupKey}~1members~1{memberKey}/delete' + $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}~1makeAdmin/post' response: mediaType: application/json openAPIDocKey: '200' - get: + undelete: operation: - $ref: '#/paths/~1admin~1directory~1v1~1groups~1{groupKey}~1members~1{memberKey}/get' + $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}~1undelete/post' response: mediaType: application/json openAPIDocKey: '200' - patch: + watch: operation: - $ref: '#/paths/~1admin~1directory~1v1~1groups~1{groupKey}~1members~1{memberKey}/patch' + $ref: '#/paths/~1admin~1directory~1v1~1users~1watch/post' response: mediaType: application/json openAPIDocKey: '200' - hasMember: + sign_out: operation: - $ref: '#/paths/~1admin~1directory~1v1~1groups~1{groupKey}~1hasMember~1{memberKey}/get' + $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}~1signOut/post' response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/members/methods/list' - - $ref: '#/components/x-stackQL-resources/members/methods/get' + - $ref: '#/components/x-stackQL-resources/users/methods/get' + - $ref: '#/components/x-stackQL-resources/users/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/members/methods/insert' - update: [] + - $ref: '#/components/x-stackQL-resources/users/methods/insert' + update: + - $ref: '#/components/x-stackQL-resources/users/methods/patch' + replace: + - $ref: '#/components/x-stackQL-resources/users/methods/update' delete: - - $ref: '#/components/x-stackQL-resources/members/methods/delete' - tokens: - id: googleadmin.directory.tokens - name: tokens - title: Tokens + - $ref: '#/components/x-stackQL-resources/users/methods/delete' + photos: + id: googleadmin.directory.photos + name: photos + title: Photos methods: delete: operation: - $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}~1tokens~1{clientId}/delete' + $ref: >- + #/paths/~1admin~1directory~1v1~1users~1{userKey}~1photos~1thumbnail/delete response: mediaType: application/json openAPIDocKey: '200' get: operation: - $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}~1tokens~1{clientId}/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1users~1{userKey}~1photos~1thumbnail/get response: mediaType: application/json openAPIDocKey: '200' - list: + update: operation: - $ref: '#/paths/~1admin~1directory~1v1~1users~1{userKey}~1tokens/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1users~1{userKey}~1photos~1thumbnail/put + response: + mediaType: application/json + openAPIDocKey: '200' + patch: + operation: + $ref: >- + #/paths/~1admin~1directory~1v1~1users~1{userKey}~1photos~1thumbnail/patch response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/tokens/methods/get' - - $ref: '#/components/x-stackQL-resources/tokens/methods/list' + - $ref: '#/components/x-stackQL-resources/photos/methods/get' insert: [] - update: [] + update: + - $ref: '#/components/x-stackQL-resources/photos/methods/patch' + replace: + - $ref: '#/components/x-stackQL-resources/photos/methods/update' delete: - - $ref: '#/components/x-stackQL-resources/tokens/methods/delete' - domain_aliases: - id: googleadmin.directory.domain_aliases - name: domain_aliases - title: Domain Aliases + - $ref: '#/components/x-stackQL-resources/photos/methods/delete' + verification_codes: + id: googleadmin.directory.verification_codes + name: verification_codes + title: Verification_codes methods: - list: - operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1domainaliases/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.domainAliases - _list: - operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1domainaliases/get' - response: - mediaType: application/json - openAPIDocKey: '200' - insert: + generate: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1domainaliases/post' + $ref: >- + #/paths/~1admin~1directory~1v1~1users~1{userKey}~1verificationCodes~1generate/post response: mediaType: application/json openAPIDocKey: '200' - delete: + invalidate: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1domainaliases~1{domainAliasName}/delete' + $ref: >- + #/paths/~1admin~1directory~1v1~1users~1{userKey}~1verificationCodes~1invalidate/post response: mediaType: application/json openAPIDocKey: '200' - get: + list: operation: - $ref: '#/paths/~1admin~1directory~1v1~1customer~1{customer}~1domainaliases~1{domainAliasName}/get' + $ref: >- + #/paths/~1admin~1directory~1v1~1users~1{userKey}~1verificationCodes/get response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/domain_aliases/methods/list' - - $ref: '#/components/x-stackQL-resources/domain_aliases/methods/get' - insert: - - $ref: '#/components/x-stackQL-resources/domain_aliases/methods/insert' + - $ref: '#/components/x-stackQL-resources/verification_codes/methods/list' + insert: [] update: [] - delete: - - $ref: '#/components/x-stackQL-resources/domain_aliases/methods/delete' + replace: [] + delete: [] paths: - /admin/directory/v1/users: + /admin/directory/v1/customer/{customerId}/devices/chromeos/{resourceId}/action: parameters: &ref_1 - - $ref: '#/components/parameters/upload_protocol' - - $ref: '#/components/parameters/uploadType' - - $ref: '#/components/parameters/quotaUser' - - $ref: '#/components/parameters/key' + - $ref: '#/components/parameters/access_token' - $ref: '#/components/parameters/alt' - $ref: '#/components/parameters/callback' - - $ref: '#/components/parameters/oauth_token' - $ref: '#/components/parameters/fields' - - $ref: '#/components/parameters/_.xgafv' + - $ref: '#/components/parameters/key' + - $ref: '#/components/parameters/oauth_token' - $ref: '#/components/parameters/prettyPrint' - - $ref: '#/components/parameters/access_token' + - $ref: '#/components/parameters/quotaUser' + - $ref: '#/components/parameters/upload_protocol' + - $ref: '#/components/parameters/uploadType' + - $ref: '#/components/parameters/_.xgafv' + post: + description: >- + Use + [BatchChangeChromeOsDeviceStatus](https://developers.google.com/workspace/admin/directory/reference/rest/v1/customer.devices.chromeos/batchChangeStatus) + instead. Takes an action that affects a Chrome OS Device. This includes + deprovisioning, disabling, and re-enabling devices. *Warning:* * + Deprovisioning a device will stop device policy syncing and remove + device-level printers. After a device is deprovisioned, it must be wiped + before it can be re-enrolled. * Lost or stolen devices should use the + disable action. * Re-enabling a disabled device will consume a device + license. If you do not have sufficient licenses available when + completing the re-enable action, you will receive an error. For more + information about deprovisioning and disabling devices, visit the [help + center](https://support.google.com/chrome/a/answer/3523633). + operationId: directory.chromeosdevices.action + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ChromeOsDeviceAction' + security: + - Oauth2: + - https://www.googleapis.com/auth/admin.directory.device.chromeos + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.device.chromeos + responses: + '204': + description: No Content + parameters: + - in: path + name: customerId + required: true + schema: + type: string + - in: path + name: resourceId + required: true + schema: + type: string + /admin/directory/v1/customer/{customerId}/devices/chromeos/{deviceId}: + parameters: *ref_1 get: - description: Retrieves a paginated list of either deleted users or all users in a domain. - operationId: directory.users.list + description: Retrieves a Chrome OS device's properties. + operationId: directory.chromeosdevices.get + security: + - Oauth2: + - https://www.googleapis.com/auth/admin.directory.device.chromeos + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.device.chromeos + - Oauth2: + - >- + https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly + Oauth2c: + - >- + https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/ChromeOsDevice' + parameters: + - in: path + name: customerId + required: true + schema: + type: string + - in: path + name: deviceId + required: true + schema: + type: string + - in: query + name: projection + schema: + type: string + patch: + description: >- + Updates a device's updatable properties, such as `annotatedUser`, + `annotatedLocation`, `notes`, `orgUnitPath`, or `annotatedAssetId`. This + method supports [patch + semantics](https://developers.google.com/workspace/admin/directory/v1/guides/performance#patch). + operationId: directory.chromeosdevices.patch + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ChromeOsDevice' + security: + - Oauth2: + - https://www.googleapis.com/auth/admin.directory.device.chromeos + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.device.chromeos + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/ChromeOsDevice' + parameters: + - in: path + name: customerId + required: true + schema: + type: string + - in: path + name: deviceId + required: true + schema: + type: string + - in: query + name: projection + schema: + type: string + put: + description: >- + Updates a device's updatable properties, such as `annotatedUser`, + `annotatedLocation`, `notes`, `orgUnitPath`, or `annotatedAssetId`. + operationId: directory.chromeosdevices.update + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ChromeOsDevice' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user' + - https://www.googleapis.com/auth/admin.directory.device.chromeos Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user' + - https://www.googleapis.com/auth/admin.directory.device.chromeos + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/ChromeOsDevice' + parameters: + - in: path + name: customerId + required: true + schema: + type: string + - in: path + name: deviceId + required: true + schema: + type: string + - in: query + name: projection + schema: + type: string + /admin/directory/v1/customer/{customerId}/devices/chromeos: + parameters: *ref_1 + get: + description: Retrieves a paginated list of Chrome OS devices within an account. + operationId: directory.chromeosdevices.list + security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user.readonly' + - https://www.googleapis.com/auth/admin.directory.device.chromeos Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user.readonly' + - https://www.googleapis.com/auth/admin.directory.device.chromeos - Oauth2: - - 'https://www.googleapis.com/auth/cloud-platform' + - >- + https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly Oauth2c: - - 'https://www.googleapis.com/auth/cloud-platform' + - >- + https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Users' + $ref: '#/components/schemas/ChromeOsDevices' parameters: - - in: query - name: viewType - schema: - type: string - - in: query - name: projection + - in: path + name: customerId + required: true schema: type: string - in: query - name: domain - required: true + name: maxResults schema: - type: string + type: integer + format: int32 - in: query name: orderBy schema: type: string - in: query - name: event + name: orgUnitPath schema: type: string - in: query @@ -4194,1811 +5862,1738 @@ paths: schema: type: string - in: query - name: maxResults - schema: - type: integer - - in: query - name: sortOrder - schema: - type: string - - in: query - name: customFieldMask + name: projection schema: type: string - in: query - name: customer + name: query schema: type: string - in: query - name: query + name: sortOrder schema: type: string - in: query - name: showDeleted + name: includeChildOrgunits schema: - type: string - x-stackQL-resource: users - x-stackQL-verb: select + type: boolean + /admin/directory/v1/customer/{customerId}/devices/chromeos/moveDevicesToOu: + parameters: *ref_1 post: - description: Creates a user. Mutate calls immediately following user creation might sometimes fail as the user isn't fully created due to propagation delay in our backends. Check the error details for the "User creation is not complete" message to see if this is the case. Retrying the calls after some time can help in this case. - operationId: directory.users.insert + description: >- + Moves or inserts multiple Chrome OS devices to an organizational unit. + You can move up to 50 devices at once. + operationId: directory.chromeosdevices.moveDevicesToOu requestBody: content: application/json: schema: - $ref: '#/components/schemas/User' + $ref: '#/components/schemas/ChromeOsMoveDevicesToOu' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user' + - https://www.googleapis.com/auth/admin.directory.device.chromeos Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user' + - https://www.googleapis.com/auth/admin.directory.device.chromeos responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/User' - parameters: [] - x-stackQL-resource: users - x-stackQL-verb: insert - '/admin/directory/v1/users/{userKey}': - parameters: *ref_1 - delete: - description: Deletes a user. - operationId: directory.users.delete - security: - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user' + '204': + description: No Content parameters: - in: path - name: userKey + name: customerId required: true schema: type: string - x-stackQL-resource: users - x-stackQL-verb: delete - patch: - description: 'Updates a user using patch semantics. The update method should be used instead, because it also supports patch semantics and has better performance. If you''re mapping an external identity to a Google identity, use the [`update`](https://developers.google.com/admin-sdk/directory/v1/reference/users/update) method instead of the `patch` method. This method is unable to clear fields that contain repeated objects (`addresses`, `phones`, etc). Use the update method instead.' - operationId: directory.users.patch + - in: query + name: orgUnitPath + required: true + schema: + type: string + /admin/directory/v1/customer/{customerId}/devices/chromeos/{deviceId}:issueCommand: + parameters: *ref_1 + post: + description: Issues a command for the device to execute. + operationId: admin.customer.devices.chromeos.issueCommand requestBody: content: application/json: schema: - $ref: '#/components/schemas/User' + $ref: '#/components/schemas/DirectoryChromeosdevicesIssueCommandRequest' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user' + - https://www.googleapis.com/auth/admin.directory.device.chromeos Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user' + - https://www.googleapis.com/auth/admin.directory.device.chromeos responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/User' + $ref: >- + #/components/schemas/DirectoryChromeosdevicesIssueCommandResponse parameters: - in: path - name: userKey + name: customerId required: true schema: type: string - x-stackQL-resource: users - x-stackQL-verb: exec - put: - description: 'Updates a user. This method supports patch semantics, meaning that you only need to include the fields you wish to update. Fields that are not present in the request will be preserved, and fields set to `null` will be cleared. For repeating fields that contain arrays, individual items in the array can''t be patched piecemeal; they must be supplied in the request body with the desired values for all items. See the [user accounts guide](https://developers.google.com/admin-sdk/directory/v1/guides/manage-users#update_user) for more information.' - operationId: directory.users.update + - in: path + name: deviceId + required: true + schema: + type: string + /admin/directory/v1/customer/{customerId}/devices/chromeos:batchChangeStatus: + parameters: *ref_1 + post: + description: >- + Changes the status of a batch of ChromeOS devices. For more information + about changing a ChromeOS device state [Repair, repurpose, or retire + ChromeOS devices](https://support.google.com/chrome/a/answer/3523633). + operationId: admin.customer.devices.chromeos.batchChangeStatus requestBody: content: application/json: schema: - $ref: '#/components/schemas/User' + $ref: '#/components/schemas/BatchChangeChromeOsDeviceStatusRequest' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user' + - https://www.googleapis.com/auth/admin.directory.device.chromeos Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user' + - https://www.googleapis.com/auth/admin.directory.device.chromeos responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/User' + $ref: '#/components/schemas/BatchChangeChromeOsDeviceStatusResponse' parameters: - in: path - name: userKey + name: customerId required: true schema: type: string - x-stackQL-resource: users - x-stackQL-verb: exec + /admin/directory/v1/customer/{customerId}/devices/chromeos/{deviceId}/commands/{commandId}: + parameters: *ref_1 get: - description: Retrieves a user. - operationId: directory.users.get + description: Gets command data a specific command issued to the device. + operationId: admin.customer.devices.chromeos.commands.get security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user' + - https://www.googleapis.com/auth/admin.directory.device.chromeos Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user' + - https://www.googleapis.com/auth/admin.directory.device.chromeos - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user.readonly' + - >- + https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user.readonly' + - >- + https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/User' + $ref: '#/components/schemas/DirectoryChromeosdevicesCommand' parameters: - in: path - name: userKey + name: customerId required: true schema: type: string - - in: query - name: customFieldMask - schema: - type: string - - in: query - name: viewType + - in: path + name: deviceId + required: true schema: type: string - - in: query - name: projection + - in: path + name: commandId + required: true schema: type: string - x-stackQL-resource: users - x-stackQL-verb: select - '/admin/directory/v1/users/{userKey}/makeAdmin': + /admin/directory/v1/users/{userKey}/asps/{codeId}: parameters: *ref_1 - post: - description: Makes a user a super administrator. - operationId: directory.users.makeAdmin - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UserMakeAdmin' + delete: + description: Deletes an ASP issued by a user. + operationId: directory.asps.delete security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user' + - https://www.googleapis.com/auth/admin.directory.user.security Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user' + - https://www.googleapis.com/auth/admin.directory.user.security + responses: + '204': + description: No Content parameters: - in: path name: userKey required: true schema: type: string - x-stackQL-resource: users - x-stackQL-verb: exec - /admin/directory/v1/users/watch: - parameters: *ref_1 - post: - description: Watches for changes in users list. - operationId: directory.users.watch - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Channel' + - in: path + name: codeId + required: true + schema: + type: string + get: + description: Gets information about an ASP issued by a user. + operationId: directory.asps.get security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user' - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user.readonly' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user.readonly' - - Oauth2: - - 'https://www.googleapis.com/auth/cloud-platform' + - https://www.googleapis.com/auth/admin.directory.user.security Oauth2c: - - 'https://www.googleapis.com/auth/cloud-platform' + - https://www.googleapis.com/auth/admin.directory.user.security responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Channel' + $ref: '#/components/schemas/Asp' parameters: - - in: query - name: customFieldMask - schema: - type: string - - in: query - name: customer - schema: - type: string - - in: query - name: viewType - schema: - type: string - - in: query - name: pageToken - schema: - type: string - - in: query - name: domain - schema: - type: string - - in: query - name: showDeleted - schema: - type: string - - in: query - name: event - schema: - type: string - - in: query - name: query - schema: - type: string - - in: query - name: orderBy - schema: - type: string - - in: query - name: sortOrder + - in: path + name: userKey + required: true schema: type: string - - in: query - name: projection + - in: path + name: codeId + required: true schema: type: string - - in: query - name: maxResults - schema: - type: integer - x-stackQL-resource: users - x-stackQL-verb: exec - '/admin/directory/v1/users/{userKey}/signOut': + /admin/directory/v1/users/{userKey}/asps: parameters: *ref_1 - post: - description: Signs a user out of all web and device sessions and reset their sign-in cookies. User will have to sign in by authenticating again. - operationId: directory.users.signOut + get: + description: Lists the ASPs issued by a user. + operationId: directory.asps.list security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user.security' + - https://www.googleapis.com/auth/admin.directory.user.security Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user.security' + - https://www.googleapis.com/auth/admin.directory.user.security + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Asps' parameters: - in: path name: userKey required: true schema: type: string - x-stackQL-resource: users - x-stackQL-verb: exec - '/admin/directory/v1/users/{userKey}/undelete': + /admin/directory_v1/channels/stop: parameters: *ref_1 post: - description: Undeletes a deleted user. - operationId: directory.users.undelete + description: Stops watching resources through this channel. + operationId: admin.channels.stop requestBody: content: application/json: schema: - $ref: '#/components/schemas/UserUndelete' + $ref: '#/components/schemas/Channel' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user' + - https://www.googleapis.com/auth/admin.directory.user Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user' - parameters: - - in: path - name: userKey - required: true - schema: - type: string - x-stackQL-resource: users - x-stackQL-verb: exec - '/admin/directory/v1/users/{userKey}/photos/thumbnail': + - https://www.googleapis.com/auth/admin.directory.user + - Oauth2: + - https://www.googleapis.com/auth/admin.directory.user.alias + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.user.alias + - Oauth2: + - >- + https://www.googleapis.com/auth/admin.directory.user.alias.readonly + Oauth2c: + - >- + https://www.googleapis.com/auth/admin.directory.user.alias.readonly + - Oauth2: + - https://www.googleapis.com/auth/admin.directory.user.readonly + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.user.readonly + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '204': + description: No Content + parameters: [] + /admin/directory/v1/customers/{customerKey}: parameters: *ref_1 get: - description: Retrieves the user's photo. - operationId: directory.users.photos.get + description: Retrieves a customer. + operationId: directory.customers.get security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user' + - https://www.googleapis.com/auth/admin.directory.customer Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user' + - https://www.googleapis.com/auth/admin.directory.customer - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user.readonly' + - https://www.googleapis.com/auth/admin.directory.customer.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user.readonly' + - https://www.googleapis.com/auth/admin.directory.customer.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/UserPhoto' - parameters: - - in: path - name: userKey - required: true - schema: - type: string - x-stackQL-resource: photos - x-stackQL-verb: select - delete: - description: Removes the user's photo. - operationId: directory.users.photos.delete - security: - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user' + $ref: '#/components/schemas/Customer' parameters: - in: path - name: userKey + name: customerKey required: true schema: type: string - x-stackQL-resource: photos - x-stackQL-verb: delete - patch: - description: 'Adds a photo for the user. This method supports [patch semantics](/admin-sdk/directory/v1/guides/performance#patch).' - operationId: directory.users.photos.patch + put: + description: Updates a customer. + operationId: directory.customers.update requestBody: content: application/json: schema: - $ref: '#/components/schemas/UserPhoto' + $ref: '#/components/schemas/Customer' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user' + - https://www.googleapis.com/auth/admin.directory.customer Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user' + - https://www.googleapis.com/auth/admin.directory.customer responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/UserPhoto' + $ref: '#/components/schemas/Customer' parameters: - in: path - name: userKey + name: customerKey required: true schema: type: string - x-stackQL-resource: photos - x-stackQL-verb: exec - put: - description: Adds a photo for the user. - operationId: directory.users.photos.update + patch: + description: Patches a customer. + operationId: directory.customers.patch requestBody: content: application/json: schema: - $ref: '#/components/schemas/UserPhoto' + $ref: '#/components/schemas/Customer' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user' + - https://www.googleapis.com/auth/admin.directory.customer Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user' + - https://www.googleapis.com/auth/admin.directory.customer responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/UserPhoto' + $ref: '#/components/schemas/Customer' parameters: - in: path - name: userKey + name: customerKey required: true schema: type: string - x-stackQL-resource: photos - x-stackQL-verb: exec - '/admin/directory/v1/users/{userKey}/aliases': + /admin/directory/v1/customers/{customersId}/chrome/printers:listPrinterModels: parameters: *ref_1 get: - description: Lists all aliases for a user. - operationId: directory.users.aliases.list + description: Lists the supported printer models. + operationId: admin.customers.chrome.printers.listPrinterModels security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user' - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user.alias' + - https://www.googleapis.com/auth/admin.chrome.printers Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user.alias' + - https://www.googleapis.com/auth/admin.chrome.printers - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user.alias.readonly' + - https://www.googleapis.com/auth/admin.chrome.printers.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user.alias.readonly' - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user.readonly' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user.readonly' + - https://www.googleapis.com/auth/admin.chrome.printers.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Aliases' + $ref: '#/components/schemas/ListPrinterModelsResponse' parameters: - in: path - name: userKey + name: customersId required: true schema: type: string - in: query - name: event + name: pageSize + schema: + type: integer + format: int32 + - in: query + name: pageToken schema: type: string - x-stackQL-resource: aliases - x-stackQL-verb: select - post: - description: Adds an alias. - operationId: directory.users.aliases.insert - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Alias' + - in: query + name: filter + schema: + type: string + /admin/directory/v1/customers/{customersId}/chrome/printers: + parameters: *ref_1 + get: + description: List printers configs. + operationId: admin.customers.chrome.printers.list security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user' + - https://www.googleapis.com/auth/admin.chrome.printers Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user' + - https://www.googleapis.com/auth/admin.chrome.printers - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user.alias' + - https://www.googleapis.com/auth/admin.chrome.printers.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user.alias' + - https://www.googleapis.com/auth/admin.chrome.printers.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Alias' + $ref: '#/components/schemas/ListPrintersResponse' parameters: - in: path - name: userKey + name: customersId required: true schema: type: string - x-stackQL-resource: aliases - x-stackQL-verb: insert - '/admin/directory/v1/users/{userKey}/aliases/{alias}': - parameters: *ref_1 - delete: - description: Removes an alias. - operationId: directory.users.aliases.delete - security: - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user' - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user.alias' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user.alias' - parameters: - - in: path - name: userKey - required: true + - in: query + name: pageSize + schema: + type: integer + format: int32 + - in: query + name: pageToken schema: type: string - - in: path - name: alias - required: true + - in: query + name: orgUnitId + schema: + type: string + - in: query + name: filter + schema: + type: string + - in: query + name: orderBy schema: type: string - x-stackQL-resource: aliases - x-stackQL-verb: delete - '/admin/directory/v1/users/{userKey}/aliases/watch': - parameters: *ref_1 post: - description: Watches for changes in users list. - operationId: directory.users.aliases.watch + description: Creates a printer under given Organization Unit. + operationId: admin.customers.chrome.printers.create requestBody: content: application/json: schema: - $ref: '#/components/schemas/Channel' + $ref: '#/components/schemas/Printer' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user' - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user.alias' + - https://www.googleapis.com/auth/admin.chrome.printers Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user.alias' + - https://www.googleapis.com/auth/admin.chrome.printers + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Printer' + parameters: + - in: path + name: customersId + required: true + schema: + type: string + /admin/directory/v1/customers/{customersId}/chrome/printers/{printersId}: + parameters: *ref_1 + get: + description: Returns a `Printer` resource (printer's config). + operationId: admin.customers.chrome.printers.get + security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user.alias.readonly' + - https://www.googleapis.com/auth/admin.chrome.printers Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user.alias.readonly' + - https://www.googleapis.com/auth/admin.chrome.printers - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user.readonly' + - https://www.googleapis.com/auth/admin.chrome.printers.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user.readonly' + - https://www.googleapis.com/auth/admin.chrome.printers.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Channel' + $ref: '#/components/schemas/Printer' parameters: - in: path - name: userKey + name: customersId required: true schema: type: string - - in: query - name: event + - in: path + name: printersId + required: true schema: type: string - x-stackQL-resource: aliases - x-stackQL-verb: exec - '/admin/directory/v1/customer/{customer}/roles/{roleId}': - parameters: *ref_1 patch: - description: Patches a role. - operationId: directory.roles.patch + description: Updates a `Printer` resource. + operationId: admin.customers.chrome.printers.patch requestBody: content: application/json: schema: - $ref: '#/components/schemas/Role' + $ref: '#/components/schemas/Printer' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.rolemanagement' + - https://www.googleapis.com/auth/admin.chrome.printers Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.rolemanagement' + - https://www.googleapis.com/auth/admin.chrome.printers responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Role' + $ref: '#/components/schemas/Printer' parameters: - in: path - name: customer + name: customersId required: true schema: type: string - in: path - name: roleId + name: printersId required: true schema: type: string - x-stackQL-resource: roles - x-stackQL-verb: exec - delete: - description: Deletes a role. - operationId: directory.roles.delete - security: - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.rolemanagement' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.rolemanagement' - parameters: - - in: path - name: customer - required: true + - in: query + name: updateMask schema: type: string - - in: path - name: roleId - required: true + format: google-fieldmask + - in: query + name: clearMask schema: type: string - x-stackQL-resource: roles - x-stackQL-verb: delete - get: - description: Retrieves a role. - operationId: directory.roles.get + format: google-fieldmask + delete: + description: Deletes a `Printer`. + operationId: admin.customers.chrome.printers.delete security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.rolemanagement' + - https://www.googleapis.com/auth/admin.chrome.printers Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.rolemanagement' - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly' + - https://www.googleapis.com/auth/admin.chrome.printers responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Role' + $ref: '#/components/schemas/Empty' parameters: - in: path - name: customer + name: customersId required: true schema: type: string - in: path - name: roleId + name: printersId required: true schema: type: string - x-stackQL-resource: roles - x-stackQL-verb: select - put: - description: Updates a role. - operationId: directory.roles.update + /admin/directory/v1/customers/{customersId}/chrome/printers:batchCreatePrinters: + parameters: *ref_1 + post: + description: Creates printers under given Organization Unit. + operationId: admin.customers.chrome.printers.batchCreatePrinters requestBody: content: application/json: schema: - $ref: '#/components/schemas/Role' + $ref: '#/components/schemas/BatchCreatePrintersRequest' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.rolemanagement' + - https://www.googleapis.com/auth/admin.chrome.printers Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.rolemanagement' + - https://www.googleapis.com/auth/admin.chrome.printers responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Role' + $ref: '#/components/schemas/BatchCreatePrintersResponse' parameters: - in: path - name: customer - required: true - schema: - type: string - - in: path - name: roleId + name: customersId required: true schema: type: string - x-stackQL-resource: roles - x-stackQL-verb: exec - '/admin/directory/v1/customer/{customer}/roles': + /admin/directory/v1/customers/{customersId}/chrome/printers:batchDeletePrinters: parameters: *ref_1 post: - description: Creates a role. - operationId: directory.roles.insert + description: Deletes printers in batch. + operationId: admin.customers.chrome.printers.batchDeletePrinters requestBody: content: application/json: schema: - $ref: '#/components/schemas/Role' + $ref: '#/components/schemas/BatchDeletePrintersRequest' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.rolemanagement' + - https://www.googleapis.com/auth/admin.chrome.printers Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.rolemanagement' + - https://www.googleapis.com/auth/admin.chrome.printers responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Role' + $ref: '#/components/schemas/BatchDeletePrintersResponse' parameters: - in: path - name: customer + name: customersId required: true schema: type: string - x-stackQL-resource: roles - x-stackQL-verb: insert + /admin/directory/v1/customers/{customersId}/chrome/printServers: + parameters: *ref_1 get: - description: Retrieves a paginated list of all the roles in a domain. - operationId: directory.roles.list + description: Lists print server configurations. + operationId: admin.customers.chrome.printServers.list security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.rolemanagement' + - https://www.googleapis.com/auth/admin.chrome.printers Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.rolemanagement' + - https://www.googleapis.com/auth/admin.chrome.printers - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly' + - https://www.googleapis.com/auth/admin.chrome.printers.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly' + - https://www.googleapis.com/auth/admin.chrome.printers.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Roles' + $ref: '#/components/schemas/ListPrintServersResponse' parameters: - in: path - name: customer + name: customersId required: true schema: type: string + - in: query + name: pageSize + schema: + type: integer + format: int32 - in: query name: pageToken schema: type: string - in: query - name: maxResults - schema: - type: integer - x-stackQL-resource: roles - x-stackQL-verb: select - '/admin/directory/v1/customer/{customerId}/schemas': - parameters: *ref_1 - post: - description: Creates a schema. - operationId: directory.schemas.insert - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Schema' - security: - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.userschema' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.userschema' - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/Schema' - parameters: - - in: path - name: customerId - required: true + name: orgUnitId schema: type: string - x-stackQL-resource: schemas - x-stackQL-verb: insert - get: - description: Retrieves all schemas for a customer. - operationId: directory.schemas.list - security: - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.userschema' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.userschema' - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.userschema.readonly' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.userschema.readonly' - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/Schemas' - parameters: - - in: path - name: customerId - required: true + - in: query + name: filter schema: type: string - x-stackQL-resource: schemas - x-stackQL-verb: select - '/admin/directory/v1/customer/{customerId}/schemas/{schemaKey}': - parameters: *ref_1 - put: - description: Updates a schema. - operationId: directory.schemas.update + - in: query + name: orderBy + schema: + type: string + post: + description: Creates a print server. + operationId: admin.customers.chrome.printServers.create requestBody: content: application/json: schema: - $ref: '#/components/schemas/Schema' + $ref: '#/components/schemas/PrintServer' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.userschema' + - https://www.googleapis.com/auth/admin.chrome.printers Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.userschema' + - https://www.googleapis.com/auth/admin.chrome.printers responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Schema' - parameters: - - in: path - name: customerId - required: true - schema: - type: string - - in: path - name: schemaKey - required: true - schema: - type: string - x-stackQL-resource: schemas - x-stackQL-verb: exec - delete: - description: Deletes a schema. - operationId: directory.schemas.delete - security: - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.userschema' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.userschema' + $ref: '#/components/schemas/PrintServer' parameters: - in: path - name: customerId - required: true - schema: - type: string - - in: path - name: schemaKey + name: customersId required: true schema: type: string - x-stackQL-resource: schemas - x-stackQL-verb: delete + /admin/directory/v1/customers/{customersId}/chrome/printServers/{printServersId}: + parameters: *ref_1 get: - description: Retrieves a schema. - operationId: directory.schemas.get + description: Returns a print server's configuration. + operationId: admin.customers.chrome.printServers.get security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.userschema' + - https://www.googleapis.com/auth/admin.chrome.printers Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.userschema' + - https://www.googleapis.com/auth/admin.chrome.printers - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.userschema.readonly' + - https://www.googleapis.com/auth/admin.chrome.printers.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.userschema.readonly' + - https://www.googleapis.com/auth/admin.chrome.printers.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Schema' + $ref: '#/components/schemas/PrintServer' parameters: - in: path - name: customerId + name: customersId required: true schema: type: string - in: path - name: schemaKey + name: printServersId required: true schema: type: string - x-stackQL-resource: schemas - x-stackQL-verb: select patch: - description: Patches a schema. - operationId: directory.schemas.patch + description: Updates a print server's configuration. + operationId: admin.customers.chrome.printServers.patch requestBody: content: application/json: schema: - $ref: '#/components/schemas/Schema' + $ref: '#/components/schemas/PrintServer' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.userschema' + - https://www.googleapis.com/auth/admin.chrome.printers Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.userschema' + - https://www.googleapis.com/auth/admin.chrome.printers responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Schema' + $ref: '#/components/schemas/PrintServer' parameters: - in: path - name: customerId + name: customersId required: true schema: type: string - in: path - name: schemaKey + name: printServersId required: true schema: type: string - x-stackQL-resource: schemas - x-stackQL-verb: exec - '/admin/directory/v1/users/{userKey}/verificationCodes': - parameters: *ref_1 - get: - description: Returns the current set of valid backup verification codes for the specified user. - operationId: directory.verificationCodes.list + - in: query + name: updateMask + schema: + type: string + format: google-fieldmask + delete: + description: Deletes a print server. + operationId: admin.customers.chrome.printServers.delete security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user.security' + - https://www.googleapis.com/auth/admin.chrome.printers Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user.security' + - https://www.googleapis.com/auth/admin.chrome.printers responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/VerificationCodes' + $ref: '#/components/schemas/Empty' parameters: - in: path - name: userKey + name: customersId required: true schema: type: string - x-stackQL-resource: verification_codes - x-stackQL-verb: select - '/admin/directory/v1/users/{userKey}/verificationCodes/generate': - parameters: *ref_1 - post: - description: Generates new backup verification codes for the user. - operationId: directory.verificationCodes.generate - security: - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user.security' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user.security' - parameters: - in: path - name: userKey + name: printServersId required: true schema: type: string - x-stackQL-resource: verification_codes - x-stackQL-verb: exec - '/admin/directory/v1/users/{userKey}/verificationCodes/invalidate': + /admin/directory/v1/customers/{customersId}/chrome/printServers:batchCreatePrintServers: parameters: *ref_1 post: - description: Invalidates the current backup verification codes for the user. - operationId: directory.verificationCodes.invalidate + description: Creates multiple print servers. + operationId: admin.customers.chrome.printServers.batchCreatePrintServers + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BatchCreatePrintServersRequest' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user.security' + - https://www.googleapis.com/auth/admin.chrome.printers Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user.security' + - https://www.googleapis.com/auth/admin.chrome.printers + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/BatchCreatePrintServersResponse' parameters: - in: path - name: userKey + name: customersId required: true schema: type: string - x-stackQL-resource: verification_codes - x-stackQL-verb: exec - '/admin/directory/v1/customers/{customersId}/chrome/printers': + /admin/directory/v1/customers/{customersId}/chrome/printServers:batchDeletePrintServers: parameters: *ref_1 post: - description: Creates a printer under given Organization Unit. - operationId: admin.customers.chrome.printers.create + description: Deletes multiple print servers. + operationId: admin.customers.chrome.printServers.batchDeletePrintServers requestBody: content: application/json: schema: - $ref: '#/components/schemas/Printer' + $ref: '#/components/schemas/BatchDeletePrintServersRequest' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.chrome.printers' + - https://www.googleapis.com/auth/admin.chrome.printers Oauth2c: - - 'https://www.googleapis.com/auth/admin.chrome.printers' + - https://www.googleapis.com/auth/admin.chrome.printers responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Printer' + $ref: '#/components/schemas/BatchDeletePrintServersResponse' parameters: - in: path name: customersId required: true schema: type: string - x-stackQL-resource: printers - x-stackQL-verb: insert - get: - description: List printers configs. - operationId: admin.customers.chrome.printers.list + /admin/directory/v1/customer/{customer}/domainaliases/{domainAliasName}: + parameters: *ref_1 + delete: + description: Deletes a domain Alias of the customer. + operationId: directory.domainAliases.delete security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.chrome.printers' + - https://www.googleapis.com/auth/admin.directory.domain Oauth2c: - - 'https://www.googleapis.com/auth/admin.chrome.printers' - - Oauth2: - - 'https://www.googleapis.com/auth/admin.chrome.printers.readonly' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.chrome.printers.readonly' + - https://www.googleapis.com/auth/admin.directory.domain responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/ListPrintersResponse' + '204': + description: No Content parameters: - in: path - name: customersId + name: customer required: true schema: type: string - - in: query - name: pageSize - schema: - type: integer - - in: query - name: orderBy - schema: - type: string - - in: query - name: orgUnitId - schema: - type: string - - in: query - name: pageToken - schema: - type: string - - in: query - name: filter + - in: path + name: domainAliasName + required: true schema: type: string - x-stackQL-resource: printers - x-stackQL-verb: select - '/admin/directory/v1/customers/{customersId}/chrome/printers/{printersId}': - parameters: *ref_1 - patch: - description: Updates a `Printer` resource. - operationId: admin.customers.chrome.printers.patch - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Printer' + get: + description: Retrieves a domain alias of the customer. + operationId: directory.domainAliases.get security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.chrome.printers' + - https://www.googleapis.com/auth/admin.directory.domain + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.domain + - Oauth2: + - https://www.googleapis.com/auth/admin.directory.domain.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.chrome.printers' + - https://www.googleapis.com/auth/admin.directory.domain.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Printer' + $ref: '#/components/schemas/DomainAlias' parameters: - in: path - name: customersId + name: customer required: true schema: type: string - in: path - name: printersId + name: domainAliasName required: true schema: type: string - - in: query - name: clearMask - schema: - type: string - - in: query - name: updateMask - schema: - type: string - x-stackQL-resource: printers - x-stackQL-verb: exec - delete: - description: Deletes a `Printer`. - operationId: admin.customers.chrome.printers.delete + /admin/directory/v1/customer/{customer}/domainaliases: + parameters: *ref_1 + post: + description: Inserts a domain alias of the customer. + operationId: directory.domainAliases.insert + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DomainAlias' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.chrome.printers' + - https://www.googleapis.com/auth/admin.directory.domain Oauth2c: - - 'https://www.googleapis.com/auth/admin.chrome.printers' + - https://www.googleapis.com/auth/admin.directory.domain responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Empty' + $ref: '#/components/schemas/DomainAlias' parameters: - in: path - name: customersId - required: true - schema: - type: string - - in: path - name: printersId + name: customer required: true schema: type: string - x-stackQL-resource: printers - x-stackQL-verb: delete get: - description: Returns a `Printer` resource (printer's config). - operationId: admin.customers.chrome.printers.get + description: Lists the domain aliases of the customer. + operationId: directory.domainAliases.list security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.chrome.printers' + - https://www.googleapis.com/auth/admin.directory.domain Oauth2c: - - 'https://www.googleapis.com/auth/admin.chrome.printers' + - https://www.googleapis.com/auth/admin.directory.domain - Oauth2: - - 'https://www.googleapis.com/auth/admin.chrome.printers.readonly' + - https://www.googleapis.com/auth/admin.directory.domain.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.chrome.printers.readonly' + - https://www.googleapis.com/auth/admin.directory.domain.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Printer' + $ref: '#/components/schemas/DomainAliases' parameters: - in: path - name: customersId + name: customer required: true schema: type: string - - in: path - name: printersId + - in: query + name: parentDomainName required: true schema: type: string - x-stackQL-resource: printers - x-stackQL-verb: select - '/admin/directory/v1/customers/{customersId}/chrome/printers:batchDeletePrinters': + /admin/directory/v1/customer/{customer}/domains/{domainName}: parameters: *ref_1 - post: - description: Deletes printers in batch. - operationId: admin.customers.chrome.printers.batchDeletePrinters - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BatchDeletePrintersRequest' + delete: + description: Deletes a domain of the customer. + operationId: directory.domains.delete security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.chrome.printers' + - https://www.googleapis.com/auth/admin.directory.domain Oauth2c: - - 'https://www.googleapis.com/auth/admin.chrome.printers' + - https://www.googleapis.com/auth/admin.directory.domain responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/BatchDeletePrintersResponse' + '204': + description: No Content parameters: - in: path - name: customersId + name: customer + required: true + schema: + type: string + - in: path + name: domainName required: true schema: type: string - x-stackQL-resource: printers - x-stackQL-verb: exec - '/admin/directory/v1/customers/{customersId}/chrome/printers:listPrinterModels': - parameters: *ref_1 get: - description: Lists the supported printer models. - operationId: admin.customers.chrome.printers.listPrinterModels + description: Retrieves a domain of the customer. + operationId: directory.domains.get security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.chrome.printers' + - https://www.googleapis.com/auth/admin.directory.domain Oauth2c: - - 'https://www.googleapis.com/auth/admin.chrome.printers' + - https://www.googleapis.com/auth/admin.directory.domain - Oauth2: - - 'https://www.googleapis.com/auth/admin.chrome.printers.readonly' + - https://www.googleapis.com/auth/admin.directory.domain.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.chrome.printers.readonly' + - https://www.googleapis.com/auth/admin.directory.domain.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/ListPrinterModelsResponse' + $ref: '#/components/schemas/Domains' parameters: - in: path - name: customersId + name: customer required: true schema: type: string - - in: query - name: pageSize - schema: - type: integer - - in: query - name: pageToken - schema: - type: string - - in: query - name: filter + - in: path + name: domainName + required: true schema: type: string - x-stackQL-resource: printers__printer_models - x-stackQL-verb: select - '/admin/directory/v1/customers/{customersId}/chrome/printers:batchCreatePrinters': + /admin/directory/v1/customer/{customer}/domains: parameters: *ref_1 post: - description: Creates printers under given Organization Unit. - operationId: admin.customers.chrome.printers.batchCreatePrinters + description: Inserts a domain of the customer. + operationId: directory.domains.insert requestBody: content: application/json: schema: - $ref: '#/components/schemas/BatchCreatePrintersRequest' + $ref: '#/components/schemas/Domains' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.chrome.printers' + - https://www.googleapis.com/auth/admin.directory.domain Oauth2c: - - 'https://www.googleapis.com/auth/admin.chrome.printers' + - https://www.googleapis.com/auth/admin.directory.domain responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/BatchCreatePrintersResponse' + $ref: '#/components/schemas/Domains' parameters: - in: path - name: customersId + name: customer required: true schema: type: string - x-stackQL-resource: printers - x-stackQL-verb: exec - '/admin/directory/v1/customers/{customersId}/chrome/printServers/{printServersId}': - parameters: *ref_1 get: - description: Returns a print server's configuration. - operationId: admin.customers.chrome.printServers.get + description: Lists the domains of the customer. + operationId: directory.domains.list security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.chrome.printers' + - https://www.googleapis.com/auth/admin.directory.domain Oauth2c: - - 'https://www.googleapis.com/auth/admin.chrome.printers' + - https://www.googleapis.com/auth/admin.directory.domain - Oauth2: - - 'https://www.googleapis.com/auth/admin.chrome.printers.readonly' + - https://www.googleapis.com/auth/admin.directory.domain.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.chrome.printers.readonly' + - https://www.googleapis.com/auth/admin.directory.domain.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/PrintServer' + $ref: '#/components/schemas/Domains2' parameters: - in: path - name: customersId + name: customer required: true schema: type: string + /admin/directory/v1/groups/{groupKey}: + parameters: *ref_1 + delete: + description: Deletes a group. + operationId: directory.groups.delete + security: + - Oauth2: + - https://www.googleapis.com/auth/admin.directory.group + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.group + responses: + '204': + description: No Content + parameters: - in: path - name: printServersId + name: groupKey required: true schema: type: string - x-stackQL-resource: print_servers - x-stackQL-verb: select - delete: - description: Deletes a print server. - operationId: admin.customers.chrome.printServers.delete + get: + description: Retrieves a group's properties. + operationId: directory.groups.get security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.chrome.printers' + - https://www.googleapis.com/auth/admin.directory.group + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.group + - Oauth2: + - https://www.googleapis.com/auth/admin.directory.group.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.chrome.printers' + - https://www.googleapis.com/auth/admin.directory.group.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Empty' + $ref: '#/components/schemas/Group' parameters: - in: path - name: customersId + name: groupKey required: true schema: type: string + put: + description: Updates a group's properties. + operationId: directory.groups.update + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Group' + security: + - Oauth2: + - https://www.googleapis.com/auth/admin.directory.group + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.group + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Group' + parameters: - in: path - name: printServersId + name: groupKey required: true schema: type: string - x-stackQL-resource: print_servers - x-stackQL-verb: delete patch: - description: Updates a print server's configuration. - operationId: admin.customers.chrome.printServers.patch + description: >- + Updates a group's properties. This method supports [patch + semantics](https://developers.google.com/workspace/admin/directory/v1/guides/performance#patch). + operationId: directory.groups.patch requestBody: content: application/json: schema: - $ref: '#/components/schemas/PrintServer' + $ref: '#/components/schemas/Group' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.chrome.printers' + - https://www.googleapis.com/auth/admin.directory.group Oauth2c: - - 'https://www.googleapis.com/auth/admin.chrome.printers' + - https://www.googleapis.com/auth/admin.directory.group responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/PrintServer' + $ref: '#/components/schemas/Group' parameters: - in: path - name: customersId - required: true - schema: - type: string - - in: path - name: printServersId + name: groupKey required: true schema: type: string - - in: query - name: updateMask - schema: - type: string - x-stackQL-resource: print_servers - x-stackQL-verb: exec - '/admin/directory/v1/customers/{customersId}/chrome/printServers': + /admin/directory/v1/groups: parameters: *ref_1 + post: + description: Creates a group. + operationId: directory.groups.insert + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Group' + security: + - Oauth2: + - https://www.googleapis.com/auth/admin.directory.group + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.group + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Group' + parameters: [] get: - description: Lists print server configurations. - operationId: admin.customers.chrome.printServers.list + description: >- + Retrieves all groups of a domain or of a user given a userKey + (paginated). + operationId: directory.groups.list security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.chrome.printers' + - https://www.googleapis.com/auth/admin.directory.group Oauth2c: - - 'https://www.googleapis.com/auth/admin.chrome.printers' + - https://www.googleapis.com/auth/admin.directory.group - Oauth2: - - 'https://www.googleapis.com/auth/admin.chrome.printers.readonly' + - https://www.googleapis.com/auth/admin.directory.group.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.chrome.printers.readonly' + - https://www.googleapis.com/auth/admin.directory.group.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/ListPrintServersResponse' + $ref: '#/components/schemas/Groups' parameters: - - in: path - name: customersId + - in: query + name: customer + schema: + type: string + - in: query + name: domain required: true schema: type: string - in: query - name: pageSize + name: maxResults schema: type: integer + format: int32 - in: query - name: filter + name: orderBy schema: type: string - in: query - name: orgUnitId + name: pageToken schema: type: string - in: query - name: orderBy + name: query schema: type: string - in: query - name: pageToken + name: sortOrder schema: type: string - x-stackQL-resource: print_servers - x-stackQL-verb: select - post: - description: Creates a print server. - operationId: admin.customers.chrome.printServers.create - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PrintServer' + - in: query + name: userKey + schema: + type: string + /admin/directory/v1/groups/{groupKey}/aliases/{alias}: + parameters: *ref_1 + delete: + description: Removes an alias. + operationId: directory.groups.aliases.delete security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.chrome.printers' + - https://www.googleapis.com/auth/admin.directory.group Oauth2c: - - 'https://www.googleapis.com/auth/admin.chrome.printers' + - https://www.googleapis.com/auth/admin.directory.group responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/PrintServer' + '204': + description: No Content parameters: - in: path - name: customersId + name: groupKey + required: true + schema: + type: string + - in: path + name: alias required: true schema: type: string - x-stackQL-resource: print_servers - x-stackQL-verb: insert - '/admin/directory/v1/customers/{customersId}/chrome/printServers:batchDeletePrintServers': + /admin/directory/v1/groups/{groupKey}/aliases: parameters: *ref_1 post: - description: Deletes multiple print servers. - operationId: admin.customers.chrome.printServers.batchDeletePrintServers + description: Adds an alias for the group. + operationId: directory.groups.aliases.insert requestBody: content: application/json: schema: - $ref: '#/components/schemas/BatchDeletePrintServersRequest' + $ref: '#/components/schemas/Alias' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.chrome.printers' + - https://www.googleapis.com/auth/admin.directory.group Oauth2c: - - 'https://www.googleapis.com/auth/admin.chrome.printers' + - https://www.googleapis.com/auth/admin.directory.group responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/BatchDeletePrintServersResponse' + $ref: '#/components/schemas/Alias' parameters: - in: path - name: customersId + name: groupKey required: true schema: type: string - x-stackQL-resource: print_servers - x-stackQL-verb: exec - '/admin/directory/v1/customers/{customersId}/chrome/printServers:batchCreatePrintServers': - parameters: *ref_1 - post: - description: Creates multiple print servers. - operationId: admin.customers.chrome.printServers.batchCreatePrintServers - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BatchCreatePrintServersRequest' + get: + description: Lists all aliases for a group. + operationId: directory.groups.aliases.list security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.chrome.printers' + - https://www.googleapis.com/auth/admin.directory.group + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.group + - Oauth2: + - https://www.googleapis.com/auth/admin.directory.group.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.chrome.printers' + - https://www.googleapis.com/auth/admin.directory.group.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/BatchCreatePrintServersResponse' + $ref: '#/components/schemas/Aliases' parameters: - in: path - name: customersId + name: groupKey required: true schema: type: string - x-stackQL-resource: print_servers - x-stackQL-verb: exec - '/admin/directory/v1/customers/{customerKey}': + /admin/directory/v1/groups/{groupKey}/members/{memberKey}: parameters: *ref_1 + delete: + description: Removes a member from a group. + operationId: directory.members.delete + security: + - Oauth2: + - https://www.googleapis.com/auth/admin.directory.group + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.group + - Oauth2: + - https://www.googleapis.com/auth/admin.directory.group.member + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.group.member + responses: + '204': + description: No Content + parameters: + - in: path + name: groupKey + required: true + schema: + type: string + - in: path + name: memberKey + required: true + schema: + type: string get: - description: Retrieves a customer. - operationId: directory.customers.get + description: Retrieves a group member's properties. + operationId: directory.members.get security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.customer' + - https://www.googleapis.com/auth/admin.directory.group + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.group + - Oauth2: + - https://www.googleapis.com/auth/admin.directory.group.member + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.group.member + - Oauth2: + - >- + https://www.googleapis.com/auth/admin.directory.group.member.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.customer' + - >- + https://www.googleapis.com/auth/admin.directory.group.member.readonly - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.customer.readonly' + - https://www.googleapis.com/auth/admin.directory.group.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.customer.readonly' + - https://www.googleapis.com/auth/admin.directory.group.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Customer' + $ref: '#/components/schemas/Member' parameters: - in: path - name: customerKey + name: groupKey required: true schema: type: string - x-stackQL-resource: customers - x-stackQL-verb: select - patch: - description: Patches a customer. - operationId: directory.customers.patch + - in: path + name: memberKey + required: true + schema: + type: string + put: + description: Updates the membership of a user in the specified group. + operationId: directory.members.update requestBody: content: application/json: schema: - $ref: '#/components/schemas/Customer' + $ref: '#/components/schemas/Member' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.customer' + - https://www.googleapis.com/auth/admin.directory.group Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.customer' + - https://www.googleapis.com/auth/admin.directory.group + - Oauth2: + - https://www.googleapis.com/auth/admin.directory.group.member + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.group.member responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Customer' + $ref: '#/components/schemas/Member' parameters: - in: path - name: customerKey + name: groupKey required: true schema: type: string - x-stackQL-resource: customers - x-stackQL-verb: exec - put: - description: Updates a customer. - operationId: directory.customers.update + - in: path + name: memberKey + required: true + schema: + type: string + patch: + description: >- + Updates the membership properties of a user in the specified group. This + method supports [patch + semantics](https://developers.google.com/workspace/admin/directory/v1/guides/performance#patch). + operationId: directory.members.patch requestBody: content: application/json: schema: - $ref: '#/components/schemas/Customer' + $ref: '#/components/schemas/Member' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.customer' + - https://www.googleapis.com/auth/admin.directory.group + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.group + - Oauth2: + - https://www.googleapis.com/auth/admin.directory.group.member Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.customer' + - https://www.googleapis.com/auth/admin.directory.group.member responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Customer' + $ref: '#/components/schemas/Member' parameters: - in: path - name: customerKey + name: groupKey + required: true + schema: + type: string + - in: path + name: memberKey required: true schema: type: string - x-stackQL-resource: customers - x-stackQL-verb: exec - '/admin/directory/v1/customer/{customer}/resources/buildings': + /admin/directory/v1/groups/{groupKey}/hasMember/{memberKey}: parameters: *ref_1 get: - description: Retrieves a list of buildings for an account. - operationId: directory.resources.buildings.list + description: >- + Checks whether the given user is a member of the group. Membership can + be direct or nested, but if nested, the `memberKey` and `groupKey` must + be entities in the same domain or an `Invalid input` error is returned. + To check for nested memberships that include entities outside of the + group's domain, use the + [`checkTransitiveMembership()`](https://cloud.google.com/identity/docs/reference/rest/v1/groups.memberships/checkTransitiveMembership) + method in the Cloud Identity Groups API. + operationId: directory.members.hasMember security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - https://www.googleapis.com/auth/admin.directory.group + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.group + - Oauth2: + - https://www.googleapis.com/auth/admin.directory.group.member + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.group.member + - Oauth2: + - >- + https://www.googleapis.com/auth/admin.directory.group.member.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - >- + https://www.googleapis.com/auth/admin.directory.group.member.readonly - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly' + - https://www.googleapis.com/auth/admin.directory.group.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly' + - https://www.googleapis.com/auth/admin.directory.group.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Buildings' + $ref: '#/components/schemas/MembersHasMember' parameters: - in: path - name: customer + name: groupKey required: true schema: type: string - - in: query - name: pageToken + - in: path + name: memberKey + required: true schema: type: string - - in: query - name: maxResults - schema: - type: integer - x-stackQL-resource: buildings - x-stackQL-verb: select + /admin/directory/v1/groups/{groupKey}/members: + parameters: *ref_1 post: - description: Inserts a building. - operationId: directory.resources.buildings.insert + description: Adds a user to the specified group. + operationId: directory.members.insert requestBody: content: application/json: schema: - $ref: '#/components/schemas/Building' + $ref: '#/components/schemas/Member' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - https://www.googleapis.com/auth/admin.directory.group Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - https://www.googleapis.com/auth/admin.directory.group + - Oauth2: + - https://www.googleapis.com/auth/admin.directory.group.member + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.group.member responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Building' + $ref: '#/components/schemas/Member' parameters: - in: path - name: customer + name: groupKey required: true schema: type: string - - in: query - name: coordinatesSource - schema: - type: string - x-stackQL-resource: buildings - x-stackQL-verb: insert - '/admin/directory/v1/customer/{customer}/resources/buildings/{buildingId}': - parameters: *ref_1 get: - description: Retrieves a building. - operationId: directory.resources.buildings.get + description: >- + Retrieves a paginated list of all members in a group. This method times + out after 60 minutes. For more information, see [Troubleshoot error + codes](https://developers.google.com/workspace/admin/directory/v1/guides/troubleshoot-error-codes). + operationId: directory.members.list security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - https://www.googleapis.com/auth/admin.directory.group + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.group + - Oauth2: + - https://www.googleapis.com/auth/admin.directory.group.member Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - https://www.googleapis.com/auth/admin.directory.group.member - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly' + - >- + https://www.googleapis.com/auth/admin.directory.group.member.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly' + - >- + https://www.googleapis.com/auth/admin.directory.group.member.readonly + - Oauth2: + - https://www.googleapis.com/auth/admin.directory.group.readonly + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.group.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Building' + $ref: '#/components/schemas/Members' parameters: - in: path - name: customer + name: groupKey required: true schema: type: string - - in: path - name: buildingId - required: true + - in: query + name: includeDerivedMembership + schema: + type: boolean + - in: query + name: maxResults + schema: + type: integer + format: int32 + - in: query + name: pageToken schema: type: string - x-stackQL-resource: buildings - x-stackQL-verb: select - patch: - description: Patches a building. - operationId: directory.resources.buildings.patch + - in: query + name: roles + schema: + type: string + /admin/directory/v1/customer/{customerId}/devices/mobile/{resourceId}/action: + parameters: *ref_1 + post: + description: >- + Takes an action that affects a mobile device. For example, remotely + wiping a device. + operationId: directory.mobiledevices.action requestBody: content: application/json: schema: - $ref: '#/components/schemas/Building' + $ref: '#/components/schemas/MobileDeviceAction' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - https://www.googleapis.com/auth/admin.directory.device.mobile + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.device.mobile + - Oauth2: + - >- + https://www.googleapis.com/auth/admin.directory.device.mobile.action Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - >- + https://www.googleapis.com/auth/admin.directory.device.mobile.action responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/Building' + '204': + description: No Content parameters: - in: path - name: customer + name: customerId required: true schema: type: string - in: path - name: buildingId + name: resourceId required: true schema: type: string - - in: query - name: coordinatesSource - schema: - type: string - x-stackQL-resource: buildings - x-stackQL-verb: exec + /admin/directory/v1/customer/{customerId}/devices/mobile/{resourceId}: + parameters: *ref_1 delete: - description: Deletes a building. - operationId: directory.resources.buildings.delete + description: Removes a mobile device. + operationId: directory.mobiledevices.delete security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - https://www.googleapis.com/auth/admin.directory.device.mobile Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - https://www.googleapis.com/auth/admin.directory.device.mobile + responses: + '204': + description: No Content parameters: - in: path - name: customer + name: customerId required: true schema: type: string - in: path - name: buildingId + name: resourceId required: true schema: type: string - x-stackQL-resource: buildings - x-stackQL-verb: delete - put: - description: Updates a building. - operationId: directory.resources.buildings.update - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Building' + get: + description: Retrieves a mobile device's properties. + operationId: directory.mobiledevices.get security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - https://www.googleapis.com/auth/admin.directory.device.mobile Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - https://www.googleapis.com/auth/admin.directory.device.mobile + - Oauth2: + - >- + https://www.googleapis.com/auth/admin.directory.device.mobile.action + Oauth2c: + - >- + https://www.googleapis.com/auth/admin.directory.device.mobile.action + - Oauth2: + - >- + https://www.googleapis.com/auth/admin.directory.device.mobile.readonly + Oauth2c: + - >- + https://www.googleapis.com/auth/admin.directory.device.mobile.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Building' + $ref: '#/components/schemas/MobileDevice' parameters: - in: path - name: customer + name: customerId required: true schema: type: string - in: path - name: buildingId + name: resourceId required: true schema: type: string - in: query - name: coordinatesSource + name: projection schema: type: string - x-stackQL-resource: buildings - x-stackQL-verb: exec - '/admin/directory/v1/customer/{customer}/resources/calendars': + /admin/directory/v1/customer/{customerId}/devices/mobile: parameters: *ref_1 get: - description: Retrieves a list of calendar resources for an account. - operationId: directory.resources.calendars.list + description: >- + Retrieves a paginated list of all user-owned mobile devices for an + account. To retrieve a list that includes company-owned devices, use the + Cloud Identity [Devices + API](https://cloud.google.com/identity/docs/concepts/overview-devices) + instead. This method times out after 60 minutes. For more information, + see [Troubleshoot error + codes](https://developers.google.com/workspace/admin/directory/v1/guides/troubleshoot-error-codes). + operationId: directory.mobiledevices.list security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - https://www.googleapis.com/auth/admin.directory.device.mobile + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.device.mobile + - Oauth2: + - >- + https://www.googleapis.com/auth/admin.directory.device.mobile.action Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - >- + https://www.googleapis.com/auth/admin.directory.device.mobile.action - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly' + - >- + https://www.googleapis.com/auth/admin.directory.device.mobile.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly' + - >- + https://www.googleapis.com/auth/admin.directory.device.mobile.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/CalendarResources' + $ref: '#/components/schemas/MobileDevices' parameters: - in: path - name: customer + name: customerId required: true schema: type: string + - in: query + name: maxResults + schema: + type: integer + format: int32 - in: query name: orderBy schema: @@ -6008,251 +7603,238 @@ paths: schema: type: string - in: query - name: maxResults + name: projection schema: - type: integer + type: string - in: query name: query schema: type: string - x-stackQL-resource: calendars - x-stackQL-verb: select - post: - description: Inserts a calendar resource. - operationId: directory.resources.calendars.insert - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CalendarResource' - security: - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/CalendarResource' - parameters: - - in: path - name: customer - required: true + - in: query + name: sortOrder schema: type: string - x-stackQL-resource: calendars - x-stackQL-verb: insert - '/admin/directory/v1/customer/{customer}/resources/calendars/{calendarResourceId}': + /admin/directory/v1/customer/{customerId}/orgunits/{orgunitsId}: parameters: *ref_1 - patch: - description: Patches a calendar resource. - operationId: directory.resources.calendars.patch - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CalendarResource' + delete: + description: Removes an organizational unit. + operationId: directory.orgunits.delete security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - https://www.googleapis.com/auth/admin.directory.orgunit Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - https://www.googleapis.com/auth/admin.directory.orgunit responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/CalendarResource' + '204': + description: No Content parameters: - in: path - name: customer + name: customerId required: true schema: type: string - in: path - name: calendarResourceId + name: orgunitsId required: true schema: type: string - x-stackQL-resource: calendars - x-stackQL-verb: exec get: - description: Retrieves a calendar resource. - operationId: directory.resources.calendars.get + description: Retrieves an organizational unit. + operationId: directory.orgunits.get security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - https://www.googleapis.com/auth/admin.directory.orgunit Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - https://www.googleapis.com/auth/admin.directory.orgunit - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly' + - https://www.googleapis.com/auth/admin.directory.orgunit.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly' + - https://www.googleapis.com/auth/admin.directory.orgunit.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/CalendarResource' + $ref: '#/components/schemas/OrgUnit' parameters: - in: path - name: customer + name: customerId required: true schema: type: string - in: path - name: calendarResourceId + name: orgunitsId required: true schema: type: string - x-stackQL-resource: calendars - x-stackQL-verb: select put: - description: 'Updates a calendar resource. This method supports patch semantics, meaning you only need to include the fields you wish to update. Fields that are not present in the request will be preserved.' - operationId: directory.resources.calendars.update + description: Updates an organizational unit. + operationId: directory.orgunits.update requestBody: content: application/json: schema: - $ref: '#/components/schemas/CalendarResource' + $ref: '#/components/schemas/OrgUnit' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - https://www.googleapis.com/auth/admin.directory.orgunit Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - https://www.googleapis.com/auth/admin.directory.orgunit responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/CalendarResource' + $ref: '#/components/schemas/OrgUnit' parameters: - in: path - name: customer + name: customerId required: true schema: type: string - in: path - name: calendarResourceId + name: orgunitsId required: true schema: type: string - x-stackQL-resource: calendars - x-stackQL-verb: exec - delete: - description: Deletes a calendar resource. - operationId: directory.resources.calendars.delete + patch: + description: >- + Updates an organizational unit. This method supports [patch + semantics](https://developers.google.com/workspace/admin/directory/v1/guides/performance#patch) + operationId: directory.orgunits.patch + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OrgUnit' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - https://www.googleapis.com/auth/admin.directory.orgunit Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - https://www.googleapis.com/auth/admin.directory.orgunit + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/OrgUnit' parameters: - in: path - name: customer + name: customerId required: true schema: type: string - in: path - name: calendarResourceId + name: orgunitsId required: true schema: type: string - x-stackQL-resource: calendars - x-stackQL-verb: delete - '/admin/directory/v1/customer/{customer}/resources/features/{featureKey}': + /admin/directory/v1/customer/{customerId}/orgunits: parameters: *ref_1 - put: - description: Updates a feature. - operationId: directory.resources.features.update + post: + description: Adds an organizational unit. + operationId: directory.orgunits.insert requestBody: content: application/json: schema: - $ref: '#/components/schemas/Feature' + $ref: '#/components/schemas/OrgUnit' + security: + - Oauth2: + - https://www.googleapis.com/auth/admin.directory.orgunit + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.orgunit + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/OrgUnit' + parameters: + - in: path + name: customerId + required: true + schema: + type: string + get: + description: Retrieves a list of all organizational units for an account. + operationId: directory.orgunits.list security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - https://www.googleapis.com/auth/admin.directory.orgunit + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.orgunit + - Oauth2: + - https://www.googleapis.com/auth/admin.directory.orgunit.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - https://www.googleapis.com/auth/admin.directory.orgunit.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Feature' + $ref: '#/components/schemas/OrgUnits' parameters: - in: path - name: customer + name: customerId required: true schema: type: string - - in: path - name: featureKey - required: true + - in: query + name: orgUnitPath schema: type: string - x-stackQL-resource: features - x-stackQL-verb: exec - patch: - description: Patches a feature. - operationId: directory.resources.features.patch - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Feature' + - in: query + name: type + schema: + type: string + /admin/directory/v1/customer/{customer}/roles/ALL/privileges: + parameters: *ref_1 + get: + description: Retrieves a paginated list of all privileges for a customer. + operationId: directory.privileges.list security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - https://www.googleapis.com/auth/admin.directory.rolemanagement + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.rolemanagement + - Oauth2: + - >- + https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - >- + https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Feature' + $ref: '#/components/schemas/Privileges' parameters: - in: path name: customer required: true schema: type: string - - in: path - name: featureKey - required: true - schema: - type: string - x-stackQL-resource: features - x-stackQL-verb: exec - get: - description: Retrieves a feature. - operationId: directory.resources.features.get + /admin/directory/v1/customer/{customer}/roleassignments/{roleAssignmentId}: + parameters: *ref_1 + delete: + description: Deletes a role assignment. + operationId: directory.roleAssignments.delete security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly' + - https://www.googleapis.com/auth/admin.directory.rolemanagement Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly' + - https://www.googleapis.com/auth/admin.directory.rolemanagement responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/Feature' + '204': + description: No Content parameters: - in: path name: customer @@ -6260,20 +7842,31 @@ paths: schema: type: string - in: path - name: featureKey + name: roleAssignmentId required: true schema: type: string - x-stackQL-resource: features - x-stackQL-verb: select - delete: - description: Deletes a feature. - operationId: directory.resources.features.delete + get: + description: Retrieves a role assignment. + operationId: directory.roleAssignments.get security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - https://www.googleapis.com/auth/admin.directory.rolemanagement + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.rolemanagement + - Oauth2: + - >- + https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - >- + https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/RoleAssignment' parameters: - in: path name: customer @@ -6281,61 +7874,59 @@ paths: schema: type: string - in: path - name: featureKey + name: roleAssignmentId required: true schema: type: string - x-stackQL-resource: features - x-stackQL-verb: delete - '/admin/directory/v1/customer/{customer}/resources/features': + /admin/directory/v1/customer/{customer}/roleassignments: parameters: *ref_1 post: - description: Inserts a feature. - operationId: directory.resources.features.insert + description: Creates a role assignment. + operationId: directory.roleAssignments.insert requestBody: content: application/json: schema: - $ref: '#/components/schemas/Feature' + $ref: '#/components/schemas/RoleAssignment' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - https://www.googleapis.com/auth/admin.directory.rolemanagement Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - https://www.googleapis.com/auth/admin.directory.rolemanagement responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Feature' + $ref: '#/components/schemas/RoleAssignment' parameters: - in: path name: customer required: true schema: type: string - x-stackQL-resource: features - x-stackQL-verb: insert get: - description: Retrieves a list of features for an account. - operationId: directory.resources.features.list + description: Retrieves a paginated list of all roleAssignments. + operationId: directory.roleAssignments.list security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - https://www.googleapis.com/auth/admin.directory.rolemanagement Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - https://www.googleapis.com/auth/admin.directory.rolemanagement - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly' + - >- + https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly' + - >- + https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Features' + $ref: '#/components/schemas/RoleAssignments' parameters: - in: path name: customer @@ -6346,27 +7937,36 @@ paths: name: maxResults schema: type: integer + format: int32 - in: query name: pageToken schema: type: string - x-stackQL-resource: features - x-stackQL-verb: select - '/admin/directory/v1/customer/{customer}/resources/features/{oldName}/rename': + - in: query + name: roleId + schema: + type: string + - in: query + name: userKey + schema: + type: string + - in: query + name: includeIndirectRoleAssignments + schema: + type: boolean + /admin/directory/v1/customer/{customer}/resources/buildings/{buildingId}: parameters: *ref_1 - post: - description: Renames a feature. - operationId: directory.resources.features.rename - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/FeatureRename' + delete: + description: Deletes a building. + operationId: directory.resources.buildings.delete security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - https://www.googleapis.com/auth/admin.directory.resource.calendar Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.resource.calendar' + - https://www.googleapis.com/auth/admin.directory.resource.calendar + responses: + '204': + description: No Content parameters: - in: path name: customer @@ -6374,938 +7974,779 @@ paths: schema: type: string - in: path - name: oldName + name: buildingId required: true schema: type: string - x-stackQL-resource: features - x-stackQL-verb: exec - /admin/directory_v1/channels/stop: - parameters: *ref_1 - post: - description: Stops watching resources through this channel. - operationId: admin.channels.stop - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Channel' - security: - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user' - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user.alias' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user.alias' - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user.alias.readonly' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user.alias.readonly' - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user.readonly' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user.readonly' - - Oauth2: - - 'https://www.googleapis.com/auth/cloud-platform' - Oauth2c: - - 'https://www.googleapis.com/auth/cloud-platform' - parameters: [] - x-stackQL-resource: channels - x-stackQL-verb: exec - '/admin/directory/v1/customer/{customer}/roles/ALL/privileges': - parameters: *ref_1 get: - description: Retrieves a paginated list of all privileges for a customer. - operationId: directory.privileges.list + description: Retrieves a building. + operationId: directory.resources.buildings.get security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.rolemanagement' + - https://www.googleapis.com/auth/admin.directory.resource.calendar Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.rolemanagement' + - https://www.googleapis.com/auth/admin.directory.resource.calendar - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly' + - >- + https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly' + - >- + https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Privileges' + $ref: '#/components/schemas/Building' parameters: - in: path name: customer required: true schema: type: string - x-stackQL-resource: privileges - x-stackQL-verb: select - '/admin/directory/v1/customer/{customerId}/devices/chromeos/{deviceId}:issueCommand': - parameters: *ref_1 - post: - description: Issues a command for the device to execute. - operationId: admin.customer.devices.chromeos.issueCommand + - in: path + name: buildingId + required: true + schema: + type: string + put: + description: Updates a building. + operationId: directory.resources.buildings.update requestBody: content: application/json: schema: - $ref: '#/components/schemas/DirectoryChromeosdevicesIssueCommandRequest' + $ref: '#/components/schemas/Building' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.device.chromeos' + - https://www.googleapis.com/auth/admin.directory.resource.calendar Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.device.chromeos' + - https://www.googleapis.com/auth/admin.directory.resource.calendar responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/DirectoryChromeosdevicesIssueCommandResponse' + $ref: '#/components/schemas/Building' parameters: - in: path - name: customerId + name: customer required: true schema: type: string - in: path - name: deviceId + name: buildingId required: true schema: type: string - x-stackQL-resource: chromeos - x-stackQL-verb: exec - '/admin/directory/v1/customer/{customerId}/devices/chromeos/{deviceId}/commands/{commandId}': - parameters: *ref_1 - get: - description: Gets command data a specific command issued to the device. - operationId: admin.customer.devices.chromeos.commands.get + - in: query + name: coordinatesSource + schema: + type: string + patch: + description: Patches a building. + operationId: directory.resources.buildings.patch + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Building' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.device.chromeos' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.device.chromeos' - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly' + - https://www.googleapis.com/auth/admin.directory.resource.calendar Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly' + - https://www.googleapis.com/auth/admin.directory.resource.calendar responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/DirectoryChromeosdevicesCommand' + $ref: '#/components/schemas/Building' parameters: - in: path - name: customerId + name: customer required: true schema: type: string - in: path - name: deviceId + name: buildingId required: true schema: type: string + - in: query + name: coordinatesSource + schema: + type: string + /admin/directory/v1/customer/{customer}/resources/buildings: + parameters: *ref_1 + post: + description: Inserts a building. + operationId: directory.resources.buildings.insert + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Building' + security: + - Oauth2: + - https://www.googleapis.com/auth/admin.directory.resource.calendar + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.resource.calendar + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Building' + parameters: - in: path - name: commandId + name: customer required: true schema: type: string - x-stackQL-resource: commands - x-stackQL-verb: select - '/admin/directory/v1/customer/{customerId}/devices/chromeos': - parameters: *ref_1 + - in: query + name: coordinatesSource + schema: + type: string get: - description: Retrieves a paginated list of Chrome OS devices within an account. - operationId: directory.chromeosdevices.list + description: Retrieves a list of buildings for an account. + operationId: directory.resources.buildings.list security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.device.chromeos' + - https://www.googleapis.com/auth/admin.directory.resource.calendar Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.device.chromeos' + - https://www.googleapis.com/auth/admin.directory.resource.calendar - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly' + - >- + https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly' + - >- + https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/ChromeOsDevices' + $ref: '#/components/schemas/Buildings' parameters: - in: path - name: customerId + name: customer required: true schema: type: string - - in: query - name: pageToken - schema: - type: string - in: query name: maxResults schema: type: integer - - in: query - name: query - schema: - type: string - - in: query - name: projection - schema: - type: string - - in: query - name: orderBy - schema: - type: string - - in: query - name: sortOrder - schema: - type: string - - in: query - name: orgUnitPath - schema: - type: string - - in: query - name: includeChildOrgunits - schema: - type: boolean - x-stackQL-resource: chromeosdevices - x-stackQL-verb: select - '/admin/directory/v1/customer/{customerId}/devices/chromeos/{deviceId}': - parameters: *ref_1 - patch: - description: 'Updates a device''s updatable properties, such as `annotatedUser`, `annotatedLocation`, `notes`, `orgUnitPath`, or `annotatedAssetId`. This method supports [patch semantics](/admin-sdk/directory/v1/guides/performance#patch).' - operationId: directory.chromeosdevices.patch - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ChromeOsDevice' + format: int32 + - in: query + name: pageToken + schema: + type: string + /admin/directory/v1/customer/{customer}/resources/calendars/{calendarResourceId}: + parameters: *ref_1 + delete: + description: Deletes a calendar resource. + operationId: directory.resources.calendars.delete security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.device.chromeos' + - https://www.googleapis.com/auth/admin.directory.resource.calendar Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.device.chromeos' + - https://www.googleapis.com/auth/admin.directory.resource.calendar responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/ChromeOsDevice' + '204': + description: No Content parameters: - in: path - name: customerId + name: customer required: true schema: type: string - in: path - name: deviceId + name: calendarResourceId required: true schema: type: string - - in: query - name: projection - schema: - type: string - x-stackQL-resource: chromeosdevices - x-stackQL-verb: exec get: - description: Retrieves a Chrome OS device's properties. - operationId: directory.chromeosdevices.get + description: Retrieves a calendar resource. + operationId: directory.resources.calendars.get security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.device.chromeos' + - https://www.googleapis.com/auth/admin.directory.resource.calendar Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.device.chromeos' + - https://www.googleapis.com/auth/admin.directory.resource.calendar - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly' + - >- + https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly' + - >- + https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/ChromeOsDevice' + $ref: '#/components/schemas/CalendarResource' parameters: - in: path - name: customerId + name: customer required: true schema: type: string - in: path - name: deviceId + name: calendarResourceId required: true schema: type: string - - in: query - name: projection - schema: - type: string - x-stackQL-resource: chromeosdevices - x-stackQL-verb: select put: - description: 'Updates a device''s updatable properties, such as `annotatedUser`, `annotatedLocation`, `notes`, `orgUnitPath`, or `annotatedAssetId`.' - operationId: directory.chromeosdevices.update + description: >- + Updates a calendar resource. This method supports patch semantics, + meaning you only need to include the fields you wish to update. Fields + that are not present in the request will be preserved. + operationId: directory.resources.calendars.update requestBody: content: application/json: schema: - $ref: '#/components/schemas/ChromeOsDevice' + $ref: '#/components/schemas/CalendarResource' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.device.chromeos' + - https://www.googleapis.com/auth/admin.directory.resource.calendar Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.device.chromeos' + - https://www.googleapis.com/auth/admin.directory.resource.calendar responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/ChromeOsDevice' + $ref: '#/components/schemas/CalendarResource' parameters: - in: path - name: customerId + name: customer required: true schema: type: string - in: path - name: deviceId + name: calendarResourceId required: true schema: type: string - - in: query - name: projection - schema: - type: string - x-stackQL-resource: chromeosdevices - x-stackQL-verb: exec - '/admin/directory/v1/customer/{customerId}/devices/chromeos/moveDevicesToOu': - parameters: *ref_1 - post: - description: Moves or inserts multiple Chrome OS devices to an organizational unit. You can move up to 50 devices at once. - operationId: directory.chromeosdevices.moveDevicesToOu + patch: + description: Patches a calendar resource. + operationId: directory.resources.calendars.patch requestBody: content: application/json: schema: - $ref: '#/components/schemas/ChromeOsMoveDevicesToOu' + $ref: '#/components/schemas/CalendarResource' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.device.chromeos' + - https://www.googleapis.com/auth/admin.directory.resource.calendar Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.device.chromeos' + - https://www.googleapis.com/auth/admin.directory.resource.calendar + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/CalendarResource' parameters: - in: path - name: customerId + name: customer required: true schema: type: string - - in: query - name: orgUnitPath + - in: path + name: calendarResourceId required: true schema: type: string - x-stackQL-resource: chromeosdevices - x-stackQL-verb: exec - '/admin/directory/v1/customer/{customerId}/devices/chromeos/{resourceId}/action': + /admin/directory/v1/customer/{customer}/resources/calendars: parameters: *ref_1 post: - description: 'Takes an action that affects a Chrome OS Device. This includes deprovisioning, disabling, and re-enabling devices. *Warning:* * Deprovisioning a device will stop device policy syncing and remove device-level printers. After a device is deprovisioned, it must be wiped before it can be re-enrolled. * Lost or stolen devices should use the disable action. * Re-enabling a disabled device will consume a device license. If you do not have sufficient licenses available when completing the re-enable action, you will receive an error. For more information about deprovisioning and disabling devices, visit the [help center](https://support.google.com/chrome/a/answer/3523633).' - operationId: directory.chromeosdevices.action + description: Inserts a calendar resource. + operationId: directory.resources.calendars.insert requestBody: content: application/json: schema: - $ref: '#/components/schemas/ChromeOsDeviceAction' + $ref: '#/components/schemas/CalendarResource' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.device.chromeos' + - https://www.googleapis.com/auth/admin.directory.resource.calendar Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.device.chromeos' + - https://www.googleapis.com/auth/admin.directory.resource.calendar + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/CalendarResource' parameters: - in: path - name: customerId - required: true - schema: - type: string - - in: path - name: resourceId + name: customer required: true schema: type: string - x-stackQL-resource: chromeosdevices - x-stackQL-verb: exec - '/admin/directory/v1/customer/{customerId}/orgunits': - parameters: *ref_1 get: - description: Retrieves a list of all organizational units for an account. - operationId: directory.orgunits.list + description: Retrieves a list of calendar resources for an account. + operationId: directory.resources.calendars.list security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.orgunit' + - https://www.googleapis.com/auth/admin.directory.resource.calendar Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.orgunit' + - https://www.googleapis.com/auth/admin.directory.resource.calendar - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.orgunit.readonly' + - >- + https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.orgunit.readonly' + - >- + https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/OrgUnits' + $ref: '#/components/schemas/CalendarResources' parameters: - in: path - name: customerId + name: customer required: true schema: type: string - in: query - name: type + name: maxResults + schema: + type: integer + format: int32 + - in: query + name: orderBy schema: type: string - in: query - name: orgUnitPath + name: pageToken schema: type: string - x-stackQL-resource: orgunits - x-stackQL-verb: select - post: - description: Adds an organizational unit. - operationId: directory.orgunits.insert - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/OrgUnit' - security: - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.orgunit' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.orgunit' - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/OrgUnit' - parameters: - - in: path - name: customerId - required: true + - in: query + name: query schema: type: string - x-stackQL-resource: orgunits - x-stackQL-verb: insert - '/admin/directory/v1/customer/{customerId}/orgunits/{orgunitsId}': + /admin/directory/v1/customer/{customer}/resources/features/{featureKey}: parameters: *ref_1 - patch: - description: 'Updates an organizational unit. This method supports [patch semantics](/admin-sdk/directory/v1/guides/performance#patch)' - operationId: directory.orgunits.patch - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/OrgUnit' + delete: + description: Deletes a feature. + operationId: directory.resources.features.delete security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.orgunit' + - https://www.googleapis.com/auth/admin.directory.resource.calendar Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.orgunit' + - https://www.googleapis.com/auth/admin.directory.resource.calendar responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/OrgUnit' + '204': + description: No Content parameters: - in: path - name: customerId + name: customer required: true schema: type: string - in: path - name: orgunitsId + name: featureKey required: true schema: type: string - x-stackQL-resource: orgunits - x-stackQL-verb: exec get: - description: Retrieves an organizational unit. - operationId: directory.orgunits.get + description: Retrieves a feature. + operationId: directory.resources.features.get security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.orgunit' + - https://www.googleapis.com/auth/admin.directory.resource.calendar Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.orgunit' + - https://www.googleapis.com/auth/admin.directory.resource.calendar - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.orgunit.readonly' + - >- + https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.orgunit.readonly' + - >- + https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/OrgUnit' + $ref: '#/components/schemas/Feature' parameters: - in: path - name: customerId + name: customer required: true schema: type: string - in: path - name: orgunitsId + name: featureKey required: true schema: type: string - x-stackQL-resource: orgunits - x-stackQL-verb: select put: - description: Updates an organizational unit. - operationId: directory.orgunits.update + description: Updates a feature. + operationId: directory.resources.features.update requestBody: content: application/json: schema: - $ref: '#/components/schemas/OrgUnit' + $ref: '#/components/schemas/Feature' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.orgunit' + - https://www.googleapis.com/auth/admin.directory.resource.calendar Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.orgunit' + - https://www.googleapis.com/auth/admin.directory.resource.calendar responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/OrgUnit' + $ref: '#/components/schemas/Feature' parameters: - in: path - name: customerId + name: customer required: true schema: type: string - in: path - name: orgunitsId + name: featureKey required: true schema: type: string - x-stackQL-resource: orgunits - x-stackQL-verb: exec - delete: - description: Removes an organizational unit. - operationId: directory.orgunits.delete + patch: + description: Patches a feature. + operationId: directory.resources.features.patch + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Feature' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.orgunit' + - https://www.googleapis.com/auth/admin.directory.resource.calendar Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.orgunit' + - https://www.googleapis.com/auth/admin.directory.resource.calendar + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Feature' parameters: - in: path - name: customerId + name: customer required: true schema: type: string - in: path - name: orgunitsId + name: featureKey required: true schema: type: string - x-stackQL-resource: orgunits - x-stackQL-verb: delete - '/admin/directory/v1/users/{userKey}/twoStepVerification/turnOff': + /admin/directory/v1/customer/{customer}/resources/features: parameters: *ref_1 post: - description: Turns off 2-Step Verification for user. - operationId: directory.twoStepVerification.turnOff + description: Inserts a feature. + operationId: directory.resources.features.insert + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Feature' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user.security' + - https://www.googleapis.com/auth/admin.directory.resource.calendar Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user.security' + - https://www.googleapis.com/auth/admin.directory.resource.calendar + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Feature' parameters: - in: path - name: userKey + name: customer required: true schema: type: string - x-stackQL-resource: two_step_verification - x-stackQL-verb: exec - '/admin/directory/v1/groups/{groupKey}/aliases': - parameters: *ref_1 get: - description: Lists all aliases for a group. - operationId: directory.groups.aliases.list + description: Retrieves a list of features for an account. + operationId: directory.resources.features.list security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.group' + - https://www.googleapis.com/auth/admin.directory.resource.calendar Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.group' + - https://www.googleapis.com/auth/admin.directory.resource.calendar - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.group.readonly' + - >- + https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.group.readonly' + - >- + https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Aliases' + $ref: '#/components/schemas/Features' parameters: - in: path - name: groupKey + name: customer required: true schema: type: string - x-stackQL-resource: aliases - x-stackQL-verb: select + - in: query + name: maxResults + schema: + type: integer + format: int32 + - in: query + name: pageToken + schema: + type: string + /admin/directory/v1/customer/{customer}/resources/features/{oldName}/rename: + parameters: *ref_1 post: - description: Adds an alias for the group. - operationId: directory.groups.aliases.insert + description: Renames a feature. + operationId: directory.resources.features.rename requestBody: content: application/json: schema: - $ref: '#/components/schemas/Alias' + $ref: '#/components/schemas/FeatureRename' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.group' + - https://www.googleapis.com/auth/admin.directory.resource.calendar Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.group' + - https://www.googleapis.com/auth/admin.directory.resource.calendar responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/Alias' - parameters: - - in: path - name: groupKey - required: true - schema: - type: string - x-stackQL-resource: aliases - x-stackQL-verb: insert - '/admin/directory/v1/groups/{groupKey}/aliases/{alias}': - parameters: *ref_1 - delete: - description: Removes an alias. - operationId: directory.groups.aliases.delete - security: - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.group' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.group' + '204': + description: No Content parameters: - in: path - name: groupKey + name: customer required: true schema: type: string - in: path - name: alias + name: oldName required: true schema: type: string - x-stackQL-resource: aliases - x-stackQL-verb: delete - '/admin/directory/v1/groups/{groupKey}': + /admin/directory/v1/customer/{customer}/roles/{roleId}: parameters: *ref_1 - put: - description: Updates a group's properties. - operationId: directory.groups.update - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Group' + delete: + description: Deletes a role. + operationId: directory.roles.delete security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.group' + - https://www.googleapis.com/auth/admin.directory.rolemanagement Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.group' + - https://www.googleapis.com/auth/admin.directory.rolemanagement responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/Group' + '204': + description: No Content parameters: - in: path - name: groupKey + name: customer + required: true + schema: + type: string + - in: path + name: roleId required: true schema: type: string - x-stackQL-resource: groups - x-stackQL-verb: exec get: - description: Retrieves a group's properties. - operationId: directory.groups.get + description: Retrieves a role. + operationId: directory.roles.get security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.group' + - https://www.googleapis.com/auth/admin.directory.rolemanagement Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.group' + - https://www.googleapis.com/auth/admin.directory.rolemanagement - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.group.readonly' + - >- + https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.group.readonly' + - >- + https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Group' + $ref: '#/components/schemas/Role' parameters: - in: path - name: groupKey + name: customer required: true schema: type: string - x-stackQL-resource: groups - x-stackQL-verb: select - patch: - description: 'Updates a group''s properties. This method supports [patch semantics](/admin-sdk/directory/v1/guides/performance#patch).' - operationId: directory.groups.patch + - in: path + name: roleId + required: true + schema: + type: string + put: + description: Updates a role. + operationId: directory.roles.update requestBody: content: application/json: schema: - $ref: '#/components/schemas/Group' + $ref: '#/components/schemas/Role' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.group' + - https://www.googleapis.com/auth/admin.directory.rolemanagement Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.group' + - https://www.googleapis.com/auth/admin.directory.rolemanagement responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Group' + $ref: '#/components/schemas/Role' parameters: - in: path - name: groupKey + name: customer required: true schema: type: string - x-stackQL-resource: groups - x-stackQL-verb: exec - delete: - description: Deletes a group. - operationId: directory.groups.delete - security: - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.group' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.group' - parameters: - in: path - name: groupKey + name: roleId required: true schema: type: string - x-stackQL-resource: groups - x-stackQL-verb: delete - /admin/directory/v1/groups: - parameters: *ref_1 - get: - description: Retrieves all groups of a domain or of a user given a userKey (paginated). - operationId: directory.groups.list + patch: + description: Patches a role. + operationId: directory.roles.patch + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Role' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.group' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.group' - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.group.readonly' + - https://www.googleapis.com/auth/admin.directory.rolemanagement Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.group.readonly' + - https://www.googleapis.com/auth/admin.directory.rolemanagement responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Groups' + $ref: '#/components/schemas/Role' parameters: - - in: query + - in: path name: customer - schema: - type: string - - in: query - name: maxResults - schema: - type: integer - - in: query - name: domain required: true schema: type: string - - in: query - name: query - schema: - type: string - - in: query - name: userKey - schema: - type: string - - in: query - name: orderBy - schema: - type: string - - in: query - name: pageToken - schema: - type: string - - in: query - name: sortOrder + - in: path + name: roleId + required: true schema: type: string - x-stackQL-resource: groups - x-stackQL-verb: select + /admin/directory/v1/customer/{customer}/roles: + parameters: *ref_1 post: - description: Creates a group. - operationId: directory.groups.insert + description: Creates a role. + operationId: directory.roles.insert requestBody: content: application/json: schema: - $ref: '#/components/schemas/Group' - security: - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.group' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.group' - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/Group' - parameters: [] - x-stackQL-resource: groups - x-stackQL-verb: insert - '/admin/directory/v1/users/{userKey}/asps': - parameters: *ref_1 - get: - description: Lists the ASPs issued by a user. - operationId: directory.asps.list + $ref: '#/components/schemas/Role' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user.security' + - https://www.googleapis.com/auth/admin.directory.rolemanagement Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user.security' + - https://www.googleapis.com/auth/admin.directory.rolemanagement responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Asps' + $ref: '#/components/schemas/Role' parameters: - in: path - name: userKey + name: customer required: true schema: type: string - x-stackQL-resource: asps - x-stackQL-verb: select - '/admin/directory/v1/users/{userKey}/asps/{codeId}': - parameters: *ref_1 get: - description: Gets information about an ASP issued by a user. - operationId: directory.asps.get + description: Retrieves a paginated list of all the roles in a domain. + operationId: directory.roles.list security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user.security' + - https://www.googleapis.com/auth/admin.directory.rolemanagement + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.rolemanagement + - Oauth2: + - >- + https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user.security' + - >- + https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Asp' + $ref: '#/components/schemas/Roles' parameters: - in: path - name: userKey - required: true - schema: - type: string - - in: path - name: codeId + name: customer required: true schema: type: string - x-stackQL-resource: asps - x-stackQL-verb: select - delete: - description: Deletes an ASP issued by a user. - operationId: directory.asps.delete - security: - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user.security' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user.security' - parameters: - - in: path - name: userKey - required: true + - in: query + name: maxResults schema: - type: string - - in: path - name: codeId - required: true + type: integer + format: int32 + - in: query + name: pageToken schema: type: string - x-stackQL-resource: asps - x-stackQL-verb: delete - '/admin/directory/v1/customer/{customerId}/devices/mobile/{resourceId}/action': + /admin/directory/v1/customer/{customerId}/schemas/{schemaKey}: parameters: *ref_1 - post: - description: 'Takes an action that affects a mobile device. For example, remotely wiping a device.' - operationId: directory.mobiledevices.action - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/MobileDeviceAction' + delete: + description: Deletes a schema. + operationId: directory.schemas.delete security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.device.mobile' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.device.mobile' - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.device.mobile.action' + - https://www.googleapis.com/auth/admin.directory.userschema Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.device.mobile.action' + - https://www.googleapis.com/auth/admin.directory.userschema + responses: + '204': + description: No Content parameters: - in: path name: customerId @@ -7313,37 +8754,31 @@ paths: schema: type: string - in: path - name: resourceId + name: schemaKey required: true schema: type: string - x-stackQL-resource: mobiledevices - x-stackQL-verb: exec - '/admin/directory/v1/customer/{customerId}/devices/mobile/{resourceId}': - parameters: *ref_1 get: - description: Retrieves a mobile device's properties. - operationId: directory.mobiledevices.get + description: Retrieves a schema. + operationId: directory.schemas.get security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.device.mobile' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.device.mobile' - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.device.mobile.action' + - https://www.googleapis.com/auth/admin.directory.userschema Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.device.mobile.action' + - https://www.googleapis.com/auth/admin.directory.userschema - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.device.mobile.readonly' + - >- + https://www.googleapis.com/auth/admin.directory.userschema.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.device.mobile.readonly' + - >- + https://www.googleapis.com/auth/admin.directory.userschema.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/MobileDevice' + $ref: '#/components/schemas/Schema' parameters: - in: path name: customerId @@ -7351,24 +8786,30 @@ paths: schema: type: string - in: path - name: resourceId + name: schemaKey required: true schema: type: string - - in: query - name: projection - schema: - type: string - x-stackQL-resource: mobiledevices - x-stackQL-verb: select - delete: - description: Removes a mobile device. - operationId: directory.mobiledevices.delete + patch: + description: Patches a schema. + operationId: directory.schemas.patch + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Schema' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.device.mobile' + - https://www.googleapis.com/auth/admin.directory.userschema Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.device.mobile' + - https://www.googleapis.com/auth/admin.directory.userschema + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Schema' parameters: - in: path name: customerId @@ -7376,771 +8817,880 @@ paths: schema: type: string - in: path - name: resourceId + name: schemaKey required: true schema: type: string - x-stackQL-resource: mobiledevices - x-stackQL-verb: delete - '/admin/directory/v1/customer/{customerId}/devices/mobile': - parameters: *ref_1 - get: - description: 'Retrieves a paginated list of all user-owned mobile devices for an account. To retrieve a list that includes company-owned devices, use the Cloud Identity [Devices API](https://cloud.google.com/identity/docs/concepts/overview-devices) instead. This method times out after 60 minutes. For more information, see [Troubleshoot error codes](https://developers.google.com/admin-sdk/directory/v1/guides/troubleshoot-error-codes).' - operationId: directory.mobiledevices.list + put: + description: Updates a schema. + operationId: directory.schemas.update + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Schema' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.device.mobile' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.device.mobile' - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.device.mobile.action' + - https://www.googleapis.com/auth/admin.directory.userschema Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.device.mobile.action' - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.device.mobile.readonly' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.device.mobile.readonly' + - https://www.googleapis.com/auth/admin.directory.userschema responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/MobileDevices' + $ref: '#/components/schemas/Schema' parameters: - in: path name: customerId required: true schema: type: string - - in: query - name: pageToken - schema: - type: string - - in: query - name: sortOrder - schema: - type: string - - in: query - name: projection - schema: - type: string - - in: query - name: maxResults - schema: - type: integer - - in: query - name: orderBy - schema: - type: string - - in: query - name: query + - in: path + name: schemaKey + required: true schema: type: string - x-stackQL-resource: mobiledevices - x-stackQL-verb: select - '/admin/directory/v1/customer/{customer}/domains': + /admin/directory/v1/customer/{customerId}/schemas: parameters: *ref_1 - get: - description: Lists the domains of the customer. - operationId: directory.domains.list + post: + description: Creates a schema. + operationId: directory.schemas.insert + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Schema' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.domain' + - https://www.googleapis.com/auth/admin.directory.userschema Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.domain' - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.domain.readonly' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.domain.readonly' + - https://www.googleapis.com/auth/admin.directory.userschema responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Domains2' + $ref: '#/components/schemas/Schema' parameters: - in: path - name: customer + name: customerId required: true schema: type: string - x-stackQL-resource: domains - x-stackQL-verb: select - post: - description: Inserts a domain of the customer. - operationId: directory.domains.insert - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Domains' + get: + description: Retrieves all schemas for a customer. + operationId: directory.schemas.list security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.domain' + - https://www.googleapis.com/auth/admin.directory.userschema + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.userschema + - Oauth2: + - >- + https://www.googleapis.com/auth/admin.directory.userschema.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.domain' + - >- + https://www.googleapis.com/auth/admin.directory.userschema.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Domains' + $ref: '#/components/schemas/Schemas' parameters: - in: path - name: customer + name: customerId required: true schema: type: string - x-stackQL-resource: domains - x-stackQL-verb: insert - '/admin/directory/v1/customer/{customer}/domains/{domainName}': + /admin/directory/v1/users/{userKey}/tokens/{clientId}: parameters: *ref_1 delete: - description: Deletes a domain of the customer. - operationId: directory.domains.delete + description: Deletes all access tokens issued by a user for an application. + operationId: directory.tokens.delete security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.domain' + - https://www.googleapis.com/auth/admin.directory.user.security Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.domain' + - https://www.googleapis.com/auth/admin.directory.user.security + responses: + '204': + description: No Content parameters: - in: path - name: customer + name: userKey required: true schema: type: string - in: path - name: domainName + name: clientId required: true schema: type: string - x-stackQL-resource: domains - x-stackQL-verb: delete get: - description: Retrieves a domain of the customer. - operationId: directory.domains.get + description: Gets information about an access token issued by a user. + operationId: directory.tokens.get security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.domain' + - https://www.googleapis.com/auth/admin.directory.user.security Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.domain' - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.domain.readonly' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.domain.readonly' + - https://www.googleapis.com/auth/admin.directory.user.security responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Domains' + $ref: '#/components/schemas/Token' parameters: - in: path - name: customer + name: userKey required: true schema: type: string - in: path - name: domainName + name: clientId required: true schema: type: string - x-stackQL-resource: domains - x-stackQL-verb: select - '/admin/directory/v1/customer/{customer}/roleassignments/{roleAssignmentId}': + /admin/directory/v1/users/{userKey}/tokens: parameters: *ref_1 - delete: - description: Deletes a role assignment. - operationId: directory.roleAssignments.delete + get: + description: >- + Returns the set of tokens specified user has issued to 3rd party + applications. + operationId: directory.tokens.list security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.rolemanagement' + - https://www.googleapis.com/auth/admin.directory.user.security Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.rolemanagement' + - https://www.googleapis.com/auth/admin.directory.user.security + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Tokens' parameters: - in: path - name: customer - required: true - schema: - type: string - - in: path - name: roleAssignmentId + name: userKey required: true schema: type: string - x-stackQL-resource: role_assignments - x-stackQL-verb: delete - get: - description: Retrieves a role assignment. - operationId: directory.roleAssignments.get + /admin/directory/v1/users/{userKey}/twoStepVerification/turnOff: + parameters: *ref_1 + post: + description: Turns off 2-Step Verification for user. + operationId: directory.twoStepVerification.turnOff security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.rolemanagement' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.rolemanagement' - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly' + - https://www.googleapis.com/auth/admin.directory.user.security Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly' + - https://www.googleapis.com/auth/admin.directory.user.security responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/RoleAssignment' + '204': + description: No Content parameters: - in: path - name: customer + name: userKey required: true schema: type: string + /admin/directory/v1/users/{userKey}: + parameters: *ref_1 + delete: + description: Deletes a user. + operationId: directory.users.delete + security: + - Oauth2: + - https://www.googleapis.com/auth/admin.directory.user + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.user + responses: + '204': + description: No Content + parameters: - in: path - name: roleAssignmentId + name: userKey required: true schema: type: string - x-stackQL-resource: role_assignments - x-stackQL-verb: select - '/admin/directory/v1/customer/{customer}/roleassignments': - parameters: *ref_1 get: - description: Retrieves a paginated list of all roleAssignments. - operationId: directory.roleAssignments.list + description: Retrieves a user. + operationId: directory.users.get security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.rolemanagement' + - https://www.googleapis.com/auth/admin.directory.user Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.rolemanagement' + - https://www.googleapis.com/auth/admin.directory.user - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly' + - https://www.googleapis.com/auth/admin.directory.user.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly' + - https://www.googleapis.com/auth/admin.directory.user.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/RoleAssignments' + $ref: '#/components/schemas/User' parameters: - in: path - name: customer + name: userKey required: true schema: type: string - in: query - name: includeIndirectRoleAssignments - schema: - type: boolean - - in: query - name: userKey + name: customFieldMask schema: type: string - in: query - name: maxResults + name: projection schema: - type: integer + type: string - in: query - name: roleId + name: viewType schema: type: string - - in: query - name: pageToken + patch: + description: >- + Updates a user using patch semantics. The update method should be used + instead, because it also supports patch semantics and has better + performance. If you're mapping an external identity to a Google + identity, use the + [`update`](https://developers.google.com/workspace/admin/directory/v1/reference/users/update) + method instead of the `patch` method. This method is unable to clear + fields that contain repeated objects (`addresses`, `phones`, etc). Use + the update method instead. + operationId: directory.users.patch + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/User' + security: + - Oauth2: + - https://www.googleapis.com/auth/admin.directory.user + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.user + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/User' + parameters: + - in: path + name: userKey + required: true schema: type: string - x-stackQL-resource: role_assignments - x-stackQL-verb: select - post: - description: Creates a role assignment. - operationId: directory.roleAssignments.insert + put: + description: >- + Updates a user. This method supports patch semantics, meaning that you + only need to include the fields you wish to update. Fields that are not + present in the request will be preserved, and fields set to `null` will + be cleared. For repeating fields that contain arrays, individual items + in the array can't be patched piecemeal; they must be supplied in the + request body with the desired values for all items. See the [user + accounts + guide](https://developers.google.com/workspace/admin/directory/v1/guides/manage-users#update_user) + for more information. + operationId: directory.users.update requestBody: content: application/json: schema: - $ref: '#/components/schemas/RoleAssignment' + $ref: '#/components/schemas/User' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.rolemanagement' + - https://www.googleapis.com/auth/admin.directory.user Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.rolemanagement' + - https://www.googleapis.com/auth/admin.directory.user responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/RoleAssignment' + $ref: '#/components/schemas/User' parameters: - in: path - name: customer + name: userKey required: true schema: type: string - x-stackQL-resource: role_assignments - x-stackQL-verb: insert - '/admin/directory/v1/groups/{groupKey}/members': + /admin/directory/v1/users: parameters: *ref_1 - get: - description: 'Retrieves a paginated list of all members in a group. This method times out after 60 minutes. For more information, see [Troubleshoot error codes](https://developers.google.com/admin-sdk/directory/v1/guides/troubleshoot-error-codes).' - operationId: directory.members.list + post: + description: >- + Creates a user. Mutate calls immediately following user creation might + sometimes fail as the user isn't fully created due to propagation delay + in our backends. Check the error details for the "User creation is not + complete" message to see if this is the case. Retrying the calls after + some time can help in this case. If `resolveConflictAccount` is set to + `true`, a `202` response code means that a conflicting unmanaged account + exists and was invited to join the organization. A `409` response code + means that a conflicting account exists so the user wasn't created based + on the [handling unmanaged user + accounts](https://support.google.com/a/answer/11112794) option selected. + operationId: directory.users.insert + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/User' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.group' + - https://www.googleapis.com/auth/admin.directory.user Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.group' + - https://www.googleapis.com/auth/admin.directory.user + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/User' + parameters: + - in: query + name: resolveConflictAccount + schema: + type: boolean + get: + description: >- + Retrieves a paginated list of either deleted users or all users in a + domain. + operationId: directory.users.list + security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.group.member' + - https://www.googleapis.com/auth/admin.directory.user Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.group.member' + - https://www.googleapis.com/auth/admin.directory.user - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.group.member.readonly' + - https://www.googleapis.com/auth/admin.directory.user.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.group.member.readonly' + - https://www.googleapis.com/auth/admin.directory.user.readonly - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.group.readonly' + - https://www.googleapis.com/auth/cloud-platform Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.group.readonly' + - https://www.googleapis.com/auth/cloud-platform responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Members' + $ref: '#/components/schemas/Users' parameters: - - in: path - name: groupKey + - in: query + name: customFieldMask + schema: + type: string + - in: query + name: customer + schema: + type: string + - in: query + name: domain required: true schema: type: string + - in: query + name: event + schema: + type: string - in: query name: maxResults schema: type: integer + format: int32 + - in: query + name: orderBy + schema: + type: string - in: query name: pageToken schema: type: string - in: query - name: roles + name: projection schema: type: string - in: query - name: includeDerivedMembership + name: query schema: - type: boolean - x-stackQL-resource: members - x-stackQL-verb: select + type: string + - in: query + name: showDeleted + schema: + type: string + - in: query + name: sortOrder + schema: + type: string + - in: query + name: viewType + schema: + type: string + /admin/directory/v1/users/{userKey}/makeAdmin: + parameters: *ref_1 post: - description: Adds a user to the specified group. - operationId: directory.members.insert + description: Makes a user a super administrator. + operationId: directory.users.makeAdmin requestBody: content: application/json: schema: - $ref: '#/components/schemas/Member' + $ref: '#/components/schemas/UserMakeAdmin' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.group' + - https://www.googleapis.com/auth/admin.directory.user Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.group' + - https://www.googleapis.com/auth/admin.directory.user + responses: + '204': + description: No Content + parameters: + - in: path + name: userKey + required: true + schema: + type: string + /admin/directory/v1/users/{userKey}/undelete: + parameters: *ref_1 + post: + description: Undeletes a deleted user. + operationId: directory.users.undelete + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserUndelete' + security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.group.member' + - https://www.googleapis.com/auth/admin.directory.user Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.group.member' + - https://www.googleapis.com/auth/admin.directory.user responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/Member' + '204': + description: No Content parameters: - in: path - name: groupKey + name: userKey required: true schema: type: string - x-stackQL-resource: members - x-stackQL-verb: insert - '/admin/directory/v1/groups/{groupKey}/members/{memberKey}': + /admin/directory/v1/users/watch: parameters: *ref_1 - put: - description: Updates the membership of a user in the specified group. - operationId: directory.members.update + post: + description: Watches for changes in users list. + operationId: directory.users.watch requestBody: content: application/json: schema: - $ref: '#/components/schemas/Member' + $ref: '#/components/schemas/Channel' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.group' + - https://www.googleapis.com/auth/admin.directory.user + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.user + - Oauth2: + - https://www.googleapis.com/auth/admin.directory.user.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.group' + - https://www.googleapis.com/auth/admin.directory.user.readonly - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.group.member' + - https://www.googleapis.com/auth/cloud-platform Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.group.member' + - https://www.googleapis.com/auth/cloud-platform responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Member' + $ref: '#/components/schemas/Channel' parameters: - - in: path - name: groupKey - required: true + - in: query + name: domain schema: type: string - - in: path - name: memberKey - required: true + - in: query + name: customer schema: type: string - x-stackQL-resource: members - x-stackQL-verb: exec - delete: - description: Removes a member from a group. - operationId: directory.members.delete + - in: query + name: event + schema: + type: string + - in: query + name: customFieldMask + schema: + type: string + - in: query + name: maxResults + schema: + type: integer + format: int32 + - in: query + name: orderBy + schema: + type: string + - in: query + name: pageToken + schema: + type: string + - in: query + name: projection + schema: + type: string + - in: query + name: query + schema: + type: string + - in: query + name: showDeleted + schema: + type: string + - in: query + name: sortOrder + schema: + type: string + - in: query + name: viewType + schema: + type: string + /admin/directory/v1/users/{userKey}/signOut: + parameters: *ref_1 + post: + description: >- + Signs a user out of all web and device sessions and reset their sign-in + cookies. User will have to sign in by authenticating again. + operationId: directory.users.signOut security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.group' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.group' - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.group.member' + - https://www.googleapis.com/auth/admin.directory.user.security Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.group.member' + - https://www.googleapis.com/auth/admin.directory.user.security + responses: + '204': + description: No Content parameters: - in: path - name: groupKey - required: true - schema: - type: string - - in: path - name: memberKey + name: userKey required: true schema: type: string - x-stackQL-resource: members - x-stackQL-verb: delete - get: - description: Retrieves a group member's properties. - operationId: directory.members.get + /admin/directory/v1/users/{userKey}/aliases/{alias}: + parameters: *ref_1 + delete: + description: Removes an alias. + operationId: directory.users.aliases.delete security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.group' + - https://www.googleapis.com/auth/admin.directory.user Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.group' + - https://www.googleapis.com/auth/admin.directory.user - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.group.member' + - https://www.googleapis.com/auth/admin.directory.user.alias Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.group.member' - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.group.member.readonly' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.group.member.readonly' - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.group.readonly' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.group.readonly' + - https://www.googleapis.com/auth/admin.directory.user.alias responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/Member' + '204': + description: No Content parameters: - in: path - name: groupKey + name: userKey required: true schema: type: string - in: path - name: memberKey + name: alias required: true schema: type: string - x-stackQL-resource: members - x-stackQL-verb: select - patch: - description: 'Updates the membership properties of a user in the specified group. This method supports [patch semantics](/admin-sdk/directory/v1/guides/performance#patch).' - operationId: directory.members.patch + /admin/directory/v1/users/{userKey}/aliases: + parameters: *ref_1 + post: + description: Adds an alias. + operationId: directory.users.aliases.insert requestBody: content: application/json: schema: - $ref: '#/components/schemas/Member' + $ref: '#/components/schemas/Alias' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.group' + - https://www.googleapis.com/auth/admin.directory.user Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.group' + - https://www.googleapis.com/auth/admin.directory.user - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.group.member' + - https://www.googleapis.com/auth/admin.directory.user.alias Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.group.member' + - https://www.googleapis.com/auth/admin.directory.user.alias responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Member' + $ref: '#/components/schemas/Alias' parameters: - in: path - name: groupKey - required: true - schema: - type: string - - in: path - name: memberKey + name: userKey required: true schema: type: string - x-stackQL-resource: members - x-stackQL-verb: exec - '/admin/directory/v1/groups/{groupKey}/hasMember/{memberKey}': - parameters: *ref_1 get: - description: 'Checks whether the given user is a member of the group. Membership can be direct or nested, but if nested, the `memberKey` and `groupKey` must be entities in the same domain or an `Invalid input` error is returned. To check for nested memberships that include entities outside of the group''s domain, use the [`checkTransitiveMembership()`](https://cloud.google.com/identity/docs/reference/rest/v1/groups.memberships/checkTransitiveMembership) method in the Cloud Identity Groups API.' - operationId: directory.members.hasMember + description: Lists all aliases for a user. + operationId: directory.users.aliases.list security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.group' + - https://www.googleapis.com/auth/admin.directory.user Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.group' + - https://www.googleapis.com/auth/admin.directory.user - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.group.member' + - https://www.googleapis.com/auth/admin.directory.user.alias Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.group.member' + - https://www.googleapis.com/auth/admin.directory.user.alias - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.group.member.readonly' + - >- + https://www.googleapis.com/auth/admin.directory.user.alias.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.group.member.readonly' + - >- + https://www.googleapis.com/auth/admin.directory.user.alias.readonly - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.group.readonly' + - https://www.googleapis.com/auth/admin.directory.user.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.group.readonly' + - https://www.googleapis.com/auth/admin.directory.user.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/MembersHasMember' + $ref: '#/components/schemas/Aliases' parameters: - in: path - name: groupKey + name: userKey required: true schema: type: string - - in: path - name: memberKey - required: true + - in: query + name: event schema: type: string - x-stackQL-resource: members - x-stackQL-verb: exec - '/admin/directory/v1/users/{userKey}/tokens/{clientId}': + /admin/directory/v1/users/{userKey}/aliases/watch: parameters: *ref_1 - delete: - description: Deletes all access tokens issued by a user for an application. - operationId: directory.tokens.delete + post: + description: Watches for changes in users list. + operationId: directory.users.aliases.watch + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Channel' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user.security' + - https://www.googleapis.com/auth/admin.directory.user Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user.security' - parameters: - - in: path - name: userKey - required: true - schema: - type: string - - in: path - name: clientId - required: true - schema: - type: string - x-stackQL-resource: tokens - x-stackQL-verb: delete - get: - description: Gets information about an access token issued by a user. - operationId: directory.tokens.get - security: + - https://www.googleapis.com/auth/admin.directory.user + - Oauth2: + - https://www.googleapis.com/auth/admin.directory.user.alias + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.user.alias - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user.security' + - >- + https://www.googleapis.com/auth/admin.directory.user.alias.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user.security' + - >- + https://www.googleapis.com/auth/admin.directory.user.alias.readonly + - Oauth2: + - https://www.googleapis.com/auth/admin.directory.user.readonly + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.user.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Token' + $ref: '#/components/schemas/Channel' parameters: - in: path name: userKey required: true schema: type: string + - in: query + name: event + schema: + type: string + /admin/directory/v1/users/{userKey}/photos/thumbnail: + parameters: *ref_1 + delete: + description: Removes the user's photo. + operationId: directory.users.photos.delete + security: + - Oauth2: + - https://www.googleapis.com/auth/admin.directory.user + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.user + responses: + '204': + description: No Content + parameters: - in: path - name: clientId + name: userKey required: true schema: type: string - x-stackQL-resource: tokens - x-stackQL-verb: select - '/admin/directory/v1/users/{userKey}/tokens': - parameters: *ref_1 get: - description: Returns the set of tokens specified user has issued to 3rd party applications. - operationId: directory.tokens.list + description: Retrieves the user's photo. + operationId: directory.users.photos.get security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.user.security' + - https://www.googleapis.com/auth/admin.directory.user + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.user + - Oauth2: + - https://www.googleapis.com/auth/admin.directory.user.readonly Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.user.security' + - https://www.googleapis.com/auth/admin.directory.user.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Tokens' + $ref: '#/components/schemas/UserPhoto' parameters: - in: path name: userKey required: true schema: type: string - x-stackQL-resource: tokens - x-stackQL-verb: select - '/admin/directory/v1/customer/{customer}/domainaliases': - parameters: *ref_1 - get: - description: Lists the domain aliases of the customer. - operationId: directory.domainAliases.list + put: + description: Adds a photo for the user. + operationId: directory.users.photos.update + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserPhoto' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.domain' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.domain' - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.domain.readonly' + - https://www.googleapis.com/auth/admin.directory.user Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.domain.readonly' + - https://www.googleapis.com/auth/admin.directory.user responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/DomainAliases' + $ref: '#/components/schemas/UserPhoto' parameters: - in: path - name: customer - required: true - schema: - type: string - - in: query - name: parentDomainName + name: userKey required: true schema: type: string - x-stackQL-resource: domain_aliases - x-stackQL-verb: select - post: - description: Inserts a domain alias of the customer. - operationId: directory.domainAliases.insert + patch: + description: >- + Adds a photo for the user. This method supports [patch + semantics](https://developers.google.com/workspace/admin/directory/v1/guides/performance#patch). + operationId: directory.users.photos.patch requestBody: content: application/json: schema: - $ref: '#/components/schemas/DomainAlias' + $ref: '#/components/schemas/UserPhoto' security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.domain' + - https://www.googleapis.com/auth/admin.directory.user Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.domain' + - https://www.googleapis.com/auth/admin.directory.user responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/DomainAlias' + $ref: '#/components/schemas/UserPhoto' parameters: - in: path - name: customer + name: userKey required: true schema: type: string - x-stackQL-resource: domain_aliases - x-stackQL-verb: insert - '/admin/directory/v1/customer/{customer}/domainaliases/{domainAliasName}': + /admin/directory/v1/users/{userKey}/verificationCodes/generate: parameters: *ref_1 - delete: - description: Deletes a domain Alias of the customer. - operationId: directory.domainAliases.delete + post: + description: Generates new backup verification codes for the user. + operationId: directory.verificationCodes.generate security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.domain' + - https://www.googleapis.com/auth/admin.directory.user.security Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.domain' + - https://www.googleapis.com/auth/admin.directory.user.security + responses: + '204': + description: No Content parameters: - in: path - name: customer + name: userKey required: true schema: type: string + /admin/directory/v1/users/{userKey}/verificationCodes/invalidate: + parameters: *ref_1 + post: + description: Invalidates the current backup verification codes for the user. + operationId: directory.verificationCodes.invalidate + security: + - Oauth2: + - https://www.googleapis.com/auth/admin.directory.user.security + Oauth2c: + - https://www.googleapis.com/auth/admin.directory.user.security + responses: + '204': + description: No Content + parameters: - in: path - name: domainAliasName + name: userKey required: true schema: type: string - x-stackQL-resource: domain_aliases - x-stackQL-verb: delete + /admin/directory/v1/users/{userKey}/verificationCodes: + parameters: *ref_1 get: - description: Retrieves a domain alias of the customer. - operationId: directory.domainAliases.get + description: >- + Returns the current set of valid backup verification codes for the + specified user. + operationId: directory.verificationCodes.list security: - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.domain' - Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.domain' - - Oauth2: - - 'https://www.googleapis.com/auth/admin.directory.domain.readonly' + - https://www.googleapis.com/auth/admin.directory.user.security Oauth2c: - - 'https://www.googleapis.com/auth/admin.directory.domain.readonly' + - https://www.googleapis.com/auth/admin.directory.user.security responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/DomainAlias' + $ref: '#/components/schemas/VerificationCodes' parameters: - in: path - name: customer - required: true - schema: - type: string - - in: path - name: domainAliasName + name: userKey required: true schema: type: string - x-stackQL-resource: domain_aliases - x-stackQL-verb: select From 50529fbd3db12d796de8603a36245f67ec1c122e Mon Sep 17 00:00:00 2001 From: Jeffrey Aven Date: Fri, 29 Aug 2025 12:52:04 +1000 Subject: [PATCH 2/3] googleworkspace update --- .../services/driveactivityv2.yaml | 37 +- .../v00.00.00000/services/drivelabelsv2.yaml | 4183 ++++++++-------- .../services/drivelabelsv2beta.yaml | 4201 +++++++++-------- .../v00.00.00000/services/drivev2.yaml | 312 +- .../v00.00.00000/services/drivev3.yaml | 378 +- 5 files changed, 4805 insertions(+), 4306 deletions(-) diff --git a/providers/src/googleworkspace/v00.00.00000/services/driveactivityv2.yaml b/providers/src/googleworkspace/v00.00.00000/services/driveactivityv2.yaml index dbff2568..08149a59 100644 --- a/providers/src/googleworkspace/v00.00.00000/services/driveactivityv2.yaml +++ b/providers/src/googleworkspace/v00.00.00000/services/driveactivityv2.yaml @@ -7,10 +7,10 @@ info: title: Drive Activity API description: Provides a historical view of activity in Google Drive. version: v2 - x-discovery-doc-revision: '20241203' - x-generated-date: '2024-12-07' + x-discovery-doc-revision: '20250824' + x-generated-date: '2025-08-28' externalDocs: - url: https://developers.google.com/drive/activity/ + url: https://developers.google.com/workspace/drive/activity/ servers: - url: https://driveactivity.googleapis.com components: @@ -458,7 +458,7 @@ components: role: description: >- Indicates the [Google Drive permissions - role](https://developers.google.com/drive/web/manage-sharing#roles). + role](https://developers.google.com/workspace/drive/web/manage-sharing#roles). The role determines a user's ability to read, write, and comment on items. type: string @@ -727,11 +727,24 @@ components: When restricted, this prevents items from being shared outside the domain. - When restricted, this prevents direct sharing of individual items. - - >- - When restricted, this prevents actions like copy, download, and - print that might result in uncontrolled duplicates of items. + - 'Deprecated: Use READERS_CAN_DOWNLOAD instead.' - When restricted, this prevents use of Drive File Stream. - When restricted, this limits sharing of folders to managers only. + - >- + When restricted, this prevents actions like copy, download, and + print for readers. Replaces ITEM_DUPLICATION. + - >- + When restricted, this prevents actions like copy, download, and + print for writers. + enumDeprecated: + - false + - false + - false + - true + - false + - false + - false + - false enum: - FEATURE_UNSPECIFIED - SHARING_OUTSIDE_DOMAIN @@ -739,6 +752,8 @@ components: - ITEM_DUPLICATION - DRIVE_FILE_STREAM - FILE_ORGANIZER_CAN_SHARE_FOLDERS + - READERS_CAN_DOWNLOAD + - WRITERS_CAN_DOWNLOAD newRestriction: description: The restriction in place after the change. type: string @@ -1015,7 +1030,7 @@ components: description: >- Information about the target of activity. For more information on how activity history is shared with users, see [Activity history - visibility](https://developers.google.com/drive/activity/v2#activityhistory). + visibility](https://developers.google.com/workspace/drive/activity/v2#activityhistory). type: object properties: driveItem: @@ -1063,7 +1078,7 @@ components: mimeType: description: >- The MIME type of the Drive item. See - https://developers.google.com/drive/v3/web/mime-types. + https://developers.google.com/workspace/drive/v3/web/mime-types. type: string owner: description: Information about the owner of this Drive item. @@ -1112,14 +1127,14 @@ components: description: >- The comment in the discussion thread. This identifier is an opaque string compatible with the Drive API; see - https://developers.google.com/drive/v3/reference/comments/get + https://developers.google.com/workspace/drive/v3/reference/comments/get type: string legacyDiscussionId: description: >- The discussion thread to which the comment was added. This identifier is an opaque string compatible with the Drive API and references the first comment in a discussion; see - https://developers.google.com/drive/v3/reference/comments/get + https://developers.google.com/workspace/drive/v3/reference/comments/get type: string linkToDiscussion: description: >- diff --git a/providers/src/googleworkspace/v00.00.00000/services/drivelabelsv2.yaml b/providers/src/googleworkspace/v00.00.00000/services/drivelabelsv2.yaml index 637d6e24..de02dd68 100644 --- a/providers/src/googleworkspace/v00.00.00000/services/drivelabelsv2.yaml +++ b/providers/src/googleworkspace/v00.00.00000/services/drivelabelsv2.yaml @@ -7,10 +7,10 @@ info: title: Drive Labels API description: An API for managing Drive Labels version: v2 - x-discovery-doc-revision: '20241204' - x-generated-date: '2024-12-07' + x-discovery-doc-revision: '20250825' + x-generated-date: '2025-08-28' externalDocs: - url: https://developers.google.com/drive/labels + url: https://developers.google.com/workspace/drive/labels servers: - url: https://drivelabels.googleapis.com components: @@ -26,11 +26,11 @@ components: See, edit, create, and delete all Google Drive labels in your organization, and see your organization's label-related admin policies - https://www.googleapis.com/auth/drive.labels.readonly: See your Google Drive labels - https://www.googleapis.com/auth/drive.labels: See, edit, create, and delete your Google Drive labels https://www.googleapis.com/auth/drive.admin.labels.readonly: >- See all Google Drive labels and label-related admin policies in your organization + https://www.googleapis.com/auth/drive.labels: See, edit, create, and delete your Google Drive labels + https://www.googleapis.com/auth/drive.labels.readonly: See your Google Drive labels Oauth2c: type: oauth2 description: Oauth 2.0 authorization code authentication @@ -40,409 +40,550 @@ components: tokenUrl: https://accounts.google.com/o/oauth2/token scopes: *ref_0 schemas: - GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateFieldTypeRequest: + GoogleAppsDriveLabelsV2UserCapabilities: + id: GoogleAppsDriveLabelsV2UserCapabilities + description: The capabilities of a user. + type: object properties: - selectionOptions: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldSelectionOptions' - description: Update field to Selection. - id: - description: Required. The Field to update. - type: string - updateMask: + name: + description: Output only. Resource name for the user capabilities. + readOnly: true type: string - format: google-fieldmask + canAccessLabelManager: description: >- - The fields that should be updated. At least one field must be - specified. The root of `type_options` is implied and should not be - specified. A single `*` can be used as short-hand for updating every - field. - textOptions: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldTextOptions' - description: Update field to Text. - integerOptions: - description: Update field to Integer. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldIntegerOptions' - dateOptions: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldDateOptions' - description: Update field to Date. - userOptions: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldUserOptions' - description: Update field to User. - description: Request to change the type of a Field. - id: GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateFieldTypeRequest - type: object - GoogleAppsDriveLabelsV2BadgeColors: - id: GoogleAppsDriveLabelsV2BadgeColors - type: object - description: >- - The color derived from BadgeConfig and changed to the closest - recommended supported color. - properties: - soloColor: + Output only. Whether the user is allowed access to the label + manager. readOnly: true - $ref: '#/components/schemas/GoogleTypeColor' - description: Output only. Color that can be used for text without a background. - backgroundColor: + type: boolean + canAdministrateLabels: + description: >- + Output only. Whether the user is an administrator for the shared + labels feature. readOnly: true - $ref: '#/components/schemas/GoogleTypeColor' - description: Output only. Badge background that pairs with the foreground. - foregroundColor: - description: Output only. Badge foreground that pairs with the background. - $ref: '#/components/schemas/GoogleTypeColor' + type: boolean + canCreateSharedLabels: + description: Output only. Whether the user is allowed to create shared labels. readOnly: true - GoogleAppsDriveLabelsV2FieldSelectionOptionsChoice: + type: boolean + canCreateAdminLabels: + description: Output only. Whether the user is allowed to create admin labels. + readOnly: true + type: boolean + GoogleAppsDriveLabelsV2ListLabelsResponse: + id: GoogleAppsDriveLabelsV2ListLabelsResponse + description: Response for listing labels. type: object - description: Selection field choice. - id: GoogleAppsDriveLabelsV2FieldSelectionOptionsChoice properties: - properties: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceProperties - description: Basic properties of the choice. - id: + labels: + description: Labels. + type: array + items: + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2Label' + nextPageToken: + description: The token of the next page in the response. type: string + GoogleAppsDriveLabelsV2Label: + id: GoogleAppsDriveLabelsV2Label + description: >- + A label defines a taxonomy that can be applied to Drive items in order + to organize and search across items. Labels can be simple strings, or + can contain fields that describe additional metadata that can be further + used to organize and search Drive items. + type: object + properties: + name: description: >- - The unique value of the choice. This ID is autogenerated. Matches - the regex: `([a-zA-Z0-9_])+`. - createTime: - type: string - format: google-datetime - description: Output only. The time this choice was created. - readOnly: true - displayHints: - description: Output only. UI display hints for rendering a choice. + Output only. Resource name of the label. Will be in the form of + either: `labels/{id}` or `labels/{id}@{revision_id}` depending on + the request. See `id` and `revision_id` below. readOnly: true - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceDisplayHints - appliedCapabilities: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceAppliedCapabilities + type: string + id: description: >- - Output only. The capabilities related to this choice on applied - metadata. + Output only. Globally unique identifier of this label. ID makes up + part of the label `name`, but unlike `name`, ID is consistent + between revisions. Matches the regex: `([a-zA-Z0-9])+`. readOnly: true - disableTime: + type: string + revisionId: description: >- - Output only. The time this choice was disabled. This value has no - meaning when the choice is not disabled. + Output only. Revision ID of the label. Revision ID might be part of + the label `name` depending on the request issued. A new revision is + created whenever revisioned properties of a label are changed. + Matches the regex: `([a-zA-Z0-9])+`. readOnly: true - format: google-datetime type: string + labelType: + description: Required. The type of label. + type: string + enumDescriptions: + - Unknown label type. + - Shared labels may be shared with users to apply to Drive items. + - >- + Admin-owned label. Only creatable and editable by admins. Supports + some additional admin-only features. + - >- + A label owned by an internal Google application rather than a + customer. These labels are read-only. + enum: + - LABEL_TYPE_UNSPECIFIED + - SHARED + - ADMIN + - GOOGLE_APP creator: + description: Output only. The user who created this label. readOnly: true - description: Output only. The user who created this choice. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2UserInfo' - updater: $ref: '#/components/schemas/GoogleAppsDriveLabelsV2UserInfo' - description: Output only. The user who updated this choice last. - readOnly: true - updateTime: + createTime: + description: Output only. The time this label was created. readOnly: true type: string format: google-datetime - description: Output only. The time this choice was updated last. - schemaCapabilities: + revisionCreator: + description: Output only. The user who created this label revision. + readOnly: true + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2UserInfo' + revisionCreateTime: + description: Output only. The time this label revision was created. readOnly: true + type: string + format: google-datetime + publisher: description: >- - Output only. The capabilities related to this option when editing - the option. - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceSchemaCapabilities + Output only. The user who published this label. This value has no + meaning when the label isn't published.>> + readOnly: true + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2UserInfo' publishTime: - type: string description: >- - Output only. The time this choice was published. This value has no - meaning when the choice is not published. + Output only. The time this label was published. This value has no + meaning when the label isn't published. readOnly: true + type: string format: google-datetime - publisher: + disabler: description: >- - Output only. The user who published this choice. This value has no - meaning when the choice is not published. + Output only. The user who disabled this label. This value has no + meaning when the label isn't disabled. readOnly: true $ref: '#/components/schemas/GoogleAppsDriveLabelsV2UserInfo' + disableTime: + description: >- + Output only. The time this label was disabled. This value has no + meaning when the label isn't disabled. + readOnly: true + type: string + format: google-datetime + customer: + description: >- + Output only. The customer this label belongs to. For example: + `customers/123abc789`. + readOnly: true + type: string + properties: + description: Required. The basic properties of the label. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelProperties' lifecycle: + description: >- + Output only. The lifecycle state of the label including whether it's + published, deprecated, and has draft changes. + readOnly: true $ref: '#/components/schemas/GoogleAppsDriveLabelsV2Lifecycle' - description: Output only. Lifecycle of the choice. + displayHints: + description: Output only. UI display hints for rendering the label. readOnly: true - lockStatus: + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelDisplayHints' + appliedCapabilities: + description: >- + Output only. The capabilities related to this label on applied + metadata. readOnly: true - description: Output only. The LockStatus of this choice. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LockStatus' - disabler: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2UserInfo' + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelAppliedCapabilities' + schemaCapabilities: + description: Output only. The capabilities the user has on this label. readOnly: true + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelSchemaCapabilities' + appliedLabelPolicy: description: >- - Output only. The user who disabled this choice. This value has no - meaning when the option is not disabled. - GoogleAppsDriveLabelsV2ListLimits: - type: object - properties: - maxEntries: - type: integer - format: int32 - description: Maximum number of values allowed for the Field type. - id: GoogleAppsDriveLabelsV2ListLimits - description: Limits for list-variant of a Field type. - GoogleAppsDriveLabelsV2BatchUpdateLabelPermissionsRequest: - description: Updates one or more Label Permissions. - id: GoogleAppsDriveLabelsV2BatchUpdateLabelPermissionsRequest - properties: - useAdminAccess: - type: boolean - description: >- - Set to `true` in order to use the user's admin credentials. The - server will verify the user is an admin for the Label before - allowing access. If this is set, the use_admin_access field in the - UpdateLabelPermissionRequest messages must either be empty or match - this field. - requests: - description: Required. The request message specifying the resources to update. - items: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2UpdateLabelPermissionRequest + Output only. Behavior of this label when it's applied to Drive + items. + readOnly: true + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelAppliedLabelPolicy' + fields: + description: List of fields in descending priority order. type: array + items: + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2Field' + learnMoreUri: + description: >- + Custom URL to present to users to allow them to learn more about + this label and how it should be used. + type: string + lockStatus: + description: Output only. The `LockStatus` of this label. + readOnly: true + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LockStatus' + enabledAppSettings: + description: Optional. The `EnabledAppSettings` for this Label. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelEnabledAppSettings' + GoogleAppsDriveLabelsV2UserInfo: + id: GoogleAppsDriveLabelsV2UserInfo + description: Information about a user. type: object - GoogleAppsDriveLabelsV2LifecycleDisabledPolicy: properties: - hideInSearch: - type: boolean + person: + description: >- + The identifier for this user that can be used with the [People + API](https://developers.google.com/people) to get more information. + For example, `people/12345678`. + type: string + GoogleAppsDriveLabelsV2LabelProperties: + id: GoogleAppsDriveLabelsV2LabelProperties + description: Basic properties of the label. + type: object + properties: + title: + description: Required. Title of the label. + type: string + description: + description: The description of the label. + type: string + GoogleAppsDriveLabelsV2Lifecycle: + id: GoogleAppsDriveLabelsV2Lifecycle + description: >- + The lifecycle state of an object, such as label, field, or choice. For + more information, see [Label + lifecycle](https://developers.google.com/workspace/drive/labels/guides/label-lifecycle). + The lifecycle enforces the following transitions: * `UNPUBLISHED_DRAFT` + (starting state) * `UNPUBLISHED_DRAFT` -> `PUBLISHED` * + `UNPUBLISHED_DRAFT` -> (Deleted) * `PUBLISHED` -> `DISABLED` * + `DISABLED` -> `PUBLISHED` * `DISABLED` -> (Deleted) The published and + disabled states have some distinct characteristics: * `Published`: Some + kinds of changes might be made to an object in this state, in which case + `has_unpublished_changes` will be true. Also, some kinds of changes + aren't permitted. Generally, any change that would invalidate or cause + new restrictions on existing metadata related to the label are rejected. + * `Disabled`: When disabled, the configured `DisabledPolicy` takes + effect. + type: object + properties: + state: + description: Output only. The state of the object associated with this lifecycle. + readOnly: true + type: string + enumDescriptions: + - Unknown State. + - >- + The initial state of an object. Once published, the object can + never return to this state. Once an object is published, certain + kinds of changes are no longer permitted. + - >- + The object has been published. The object might have unpublished + draft changes as indicated by `has_unpublished_changes`. + - >- + The object has been published and has since been disabled. The + object might have unpublished draft changes as indicated by + `has_unpublished_changes`. + - The object has been deleted. + enum: + - STATE_UNSPECIFIED + - UNPUBLISHED_DRAFT + - PUBLISHED + - DISABLED + - DELETED + hasUnpublishedChanges: + description: >- + Output only. Whether the object associated with this lifecycle has + unpublished changes. + readOnly: true + type: boolean + disabledPolicy: + description: >- + The policy that governs how to show a disabled label, field, or + selection choice. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LifecycleDisabledPolicy' + GoogleAppsDriveLabelsV2LifecycleDisabledPolicy: + id: GoogleAppsDriveLabelsV2LifecycleDisabledPolicy + description: >- + The policy that governs how to treat a disabled label, field, or + selection choice in different contexts. + type: object + properties: + hideInSearch: description: >- Whether to hide this disabled object in the search menu for Drive items. * When `false`, the object is generally shown in the UI as disabled but it appears in the search results when searching for Drive items. * When `true`, the object is generally hidden in the UI when searching for Drive items. - showInApply: type: boolean + showInApply: description: >- Whether to show this disabled object in the apply menu on Drive items. * When `true`, the object is generally shown in the UI as disabled and is unselectable. * When `false`, the object is generally hidden in the UI. - id: GoogleAppsDriveLabelsV2LifecycleDisabledPolicy - description: >- - The policy that governs how to treat a disabled label, field, or - selection choice in different contexts. + type: boolean + GoogleAppsDriveLabelsV2LabelDisplayHints: + id: GoogleAppsDriveLabelsV2LabelDisplayHints + description: The UI display hints for rendering the label. type: object - GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceProperties: - id: GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceProperties properties: - badgeConfig: + disabled: + description: Whether the label should be shown in the UI as disabled. + type: boolean + hiddenInSearch: description: >- - The badge configuration for this choice. When set, the label that - owns this choice is considered a "badged label". - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2BadgeConfig' - description: - description: The description of this label. - type: string - insertBeforeChoice: + This label should be hidden in the search menu when searching for + Drive items. + type: boolean + shownInApply: description: >- - Input only. Insert or move this choice before the indicated choice. - If empty, the choice is placed at the end of the list. - type: string - displayName: + This label should be shown in the apply menu when applying values to + a Drive item. + type: boolean + priority: + description: The order to display labels in a list. type: string - description: Required. The display text to show in the UI identifying this field. + format: int64 + GoogleAppsDriveLabelsV2LabelAppliedCapabilities: + id: GoogleAppsDriveLabelsV2LabelAppliedCapabilities + description: The capabilities a user has on this label's applied metadata. type: object - description: Basic properties of the choice. - GoogleTypeColor: properties: - red: - type: number - description: The amount of red in the color as a value in the interval [0, 1]. - format: float - blue: - format: float - description: The amount of blue in the color as a value in the interval [0, 1]. - type: number - green: - format: float - description: The amount of green in the color as a value in the interval [0, 1]. - type: number - alpha: - format: float - description: >- - The fraction of this color that should be applied to the pixel. That - is, the final pixel color is defined by the equation: `pixel color = - alpha * (this color) + (1.0 - alpha) * (background color)` This - means that a value of 1.0 corresponds to a solid color, whereas a - value of 0.0 corresponds to a completely transparent color. This - uses a wrapper message rather than a simple float scalar so that it - is possible to distinguish between a default value and the value - being unset. If omitted, this color object is rendered as a solid - color (as if the alpha value had been explicitly given a value of - 1.0). - type: number - type: object - id: GoogleTypeColor - description: >- - Represents a color in the RGBA color space. This representation is - designed for simplicity of conversion to and from color representations - in various languages over compactness. For example, the fields of this - representation can be trivially provided to the constructor of - `java.awt.Color` in Java; it can also be trivially provided to UIColor's - `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little - work, it can be easily formatted into a CSS `rgba()` string in - JavaScript. This reference page doesn't have information about the - absolute color space that should be used to interpret the RGB value—for - example, sRGB, Adobe RGB, DCI-P3, and BT.2020. By default, applications - should assume the sRGB color space. When color equality needs to be - decided, implementations, unless documented otherwise, treat two colors - as equal if all their red, green, blue, and alpha values each differ by - at most `1e-5`. Example (Java): import com.google.type.Color; // ... - public static java.awt.Color fromProto(Color protocolor) { float alpha = - protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return - new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), - protocolor.getBlue(), alpha); } public static Color - toProto(java.awt.Color color) { float red = (float) color.getRed(); - float green = (float) color.getGreen(); float blue = (float) - color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder - = Color .newBuilder() .setRed(red / denominator) .setGreen(green / - denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); - if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() - .setValue(((float) alpha) / denominator) .build()); } return - resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static - UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; - float green = [protocolor green]; float blue = [protocolor blue]; - FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if - (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return - [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static - Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if - (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return - nil; } Color* result = [[Color alloc] init]; [result setRed:red]; - [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { - [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; - return result; } // ... Example (JavaScript): // ... var protoToCssColor - = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var - greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || - 0.0; var red = Math.floor(redFrac * 255); var green = - Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if - (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } - var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, - green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, - ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var - rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString - = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var - resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { - resultBuilder.push('0'); } resultBuilder.push(hexString); return - resultBuilder.join(''); }; // ... - GoogleAppsDriveLabelsV2DeltaUpdateLabelResponse: + canRead: + description: Whether the user can read applied metadata related to this label. + type: boolean + canApply: + description: Whether the user can apply this label to items. + type: boolean + canRemove: + description: Whether the user can remove this label from items. + type: boolean + GoogleAppsDriveLabelsV2LabelSchemaCapabilities: + id: GoogleAppsDriveLabelsV2LabelSchemaCapabilities + description: The capabilities related to this label when editing the label. type: object properties: - updatedLabel: + canUpdate: + description: Whether the user can change this label. + type: boolean + canDelete: description: >- - The label after updates were applied. This is only set if - [BatchUpdateLabelResponse2.include_label_in_response] is `true` and - there were no errors. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2Label' - responses: - items: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseResponse - type: array + Whether the user can delete this label. The user must have + permission and the label must be disabled. + type: boolean + canDisable: description: >- - The reply of the updates. This maps 1:1 with the updates, although - responses to some requests may be empty. - id: GoogleAppsDriveLabelsV2DeltaUpdateLabelResponse - description: Response for Label update. - GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestDeleteSelectionChoiceRequest: - type: object - id: >- - GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestDeleteSelectionChoiceRequest - properties: - fieldId: - type: string - description: Required. The Selection Field from which a Choice will be deleted. - id: - description: Required. Choice to delete. - type: string - description: Request to delete a Choice. - GoogleAppsDriveLabelsV2FieldListOptions: - description: Options for a multi-valued variant of an associated field type. - id: GoogleAppsDriveLabelsV2FieldListOptions + Whether the user can disable this label. The user must have + permission and this label must not already be disabled. + type: boolean + canEnable: + description: >- + Whether the user can enable this label. The user must have + permission and this label must be disabled. + type: boolean + GoogleAppsDriveLabelsV2LabelAppliedLabelPolicy: + id: GoogleAppsDriveLabelsV2LabelAppliedLabelPolicy + description: Behavior of this label when it's applied to Drive items. type: object properties: - maxEntries: - description: Maximum number of entries permitted. - format: int32 - type: integer - GoogleAppsDriveLabelsV2BadgeConfig: - id: GoogleAppsDriveLabelsV2BadgeConfig - description: Badge status of the label. - properties: - color: - $ref: '#/components/schemas/GoogleTypeColor' + copyMode: description: >- - The color of the badge. When not specified, no badge is rendered. - The background, foreground, and solo (light and dark mode) colors - set here are changed in the Drive UI into the closest recommended - supported color. - priorityOverride: - format: int64 - description: >- - Override the default global priority of this badge. When set to 0, - the default priority heuristic is used. + Indicates how the applied label and field values should be copied + when a Drive item is copied. type: string + enumDescriptions: + - Copy mode unspecified. + - >- + The applied label and field values aren't copied by default when + the Drive item it's applied to is copied. + - >- + The applied label and field values are always copied when the + Drive item it's applied to is copied. Only admins can use this + mode. + - >- + The applied label and field values are copied if the label is + appliable by the user making the copy. + enum: + - COPY_MODE_UNSPECIFIED + - DO_NOT_COPY + - ALWAYS_COPY + - COPY_APPLIABLE + GoogleAppsDriveLabelsV2Field: + id: GoogleAppsDriveLabelsV2Field + description: >- + Defines a field that has a display name, data type, and other + configuration options. This field defines the kind of metadata that may + be set on a Drive item. type: object - GoogleAppsDriveLabelsV2LongTextLimits: - id: GoogleAppsDriveLabelsV2LongTextLimits + properties: + textOptions: + description: Text field options. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldTextOptions' + integerOptions: + description: Integer field options. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldIntegerOptions' + dateOptions: + description: Date field options. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldDateOptions' + selectionOptions: + description: Selection field options. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldSelectionOptions' + userOptions: + description: User field options. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldUserOptions' + id: + description: >- + Output only. The key of a field, unique within a label or library. + This value is autogenerated. Matches the regex: `([a-zA-Z0-9])+`. + readOnly: true + type: string + queryKey: + description: >- + Output only. The key to use when constructing Drive search queries + to find files based on values defined for this field on files. For + example, "`{query_key}` > 2001-01-01". + readOnly: true + type: string + properties: + description: The basic properties of the field. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldProperties' + lifecycle: + description: Output only. The lifecycle of this field. + readOnly: true + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2Lifecycle' + displayHints: + description: Output only. UI display hints for rendering a field. + readOnly: true + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldDisplayHints' + schemaCapabilities: + description: Output only. The capabilities this user has when editing this field. + readOnly: true + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldSchemaCapabilities' + appliedCapabilities: + description: >- + Output only. The capabilities this user has on this field and its + value when the label is applied on Drive items. + readOnly: true + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldAppliedCapabilities' + creator: + description: Output only. The user who created this field. + readOnly: true + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2UserInfo' + createTime: + description: Output only. The time this field was created. + readOnly: true + type: string + format: google-datetime + updater: + description: Output only. The user who modified this field. + readOnly: true + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2UserInfo' + updateTime: + description: Output only. The time this field was updated. + readOnly: true + type: string + format: google-datetime + publisher: + description: >- + Output only. The user who published this field. This value has no + meaning when the field is not published. + readOnly: true + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2UserInfo' + disabler: + description: >- + Output only. The user who disabled this field. This value has no + meaning when the field is not disabled. + readOnly: true + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2UserInfo' + disableTime: + description: >- + Output only. The time this field was disabled. This value has no + meaning when the field is not disabled. + readOnly: true + type: string + format: google-datetime + lockStatus: + description: Output only. The `LockStatus` of this field. + readOnly: true + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LockStatus' + GoogleAppsDriveLabelsV2FieldTextOptions: + id: GoogleAppsDriveLabelsV2FieldTextOptions + description: Options for the Text field type. type: object properties: - maxLength: - description: Maximum length allowed for a long text Field type. - type: integer - format: int32 minLength: - description: Minimum length allowed for a long text Field type. + description: Output only. The minimum valid length of values for the text field. + readOnly: true + type: integer format: int32 + maxLength: + description: Output only. The maximum valid length of values for the text field. + readOnly: true type: integer - description: Limits for long text Field type. - GoogleAppsDriveLabelsV2LabelLimits: + format: int32 + GoogleAppsDriveLabelsV2FieldIntegerOptions: + id: GoogleAppsDriveLabelsV2FieldIntegerOptions + description: Options for the Integer field type. type: object - description: >- - Label constraints governing the structure of a Label; such as, the - maximum number of Fields allowed and maximum length of the label title. - id: GoogleAppsDriveLabelsV2LabelLimits properties: - fieldLimits: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldLimits' - description: The limits for Fields. - maxDeletedFields: - format: int32 - description: The maximum number of published Fields that can be deleted. - type: integer - maxDraftRevisions: - type: integer + minValue: + description: Output only. The minimum valid value for the integer field. + readOnly: true + type: string + format: int64 + maxValue: + description: Output only. The maximum valid value for the integer field. + readOnly: true + type: string + format: int64 + GoogleAppsDriveLabelsV2FieldDateOptions: + id: GoogleAppsDriveLabelsV2FieldDateOptions + description: Options for the date field type. + type: object + properties: + dateFormatType: description: >- - The maximum number of draft revisions that will be kept before - deleting old drafts. - format: int32 - maxFields: - format: int32 - description: The maximum number of Fields allowed within the label. - type: integer - maxDescriptionLength: - type: integer - description: The maximum number of characters allowed for the description. - format: int32 - maxTitleLength: - format: int32 - description: The maximum number of characters allowed for the title. - type: integer - name: + Localized date formatting option. Field values are rendered in this + format according to their locale. type: string - description: Resource name. + enumDescriptions: + - Date format unspecified. + - >- + Includes full month name. For example, January 12, 1999 (MMMM d, + y) + - Short, numeric, representation. For example, 12/13/99 (M/d/yy) + enum: + - DATE_FORMAT_UNSPECIFIED + - LONG_DATE + - SHORT_DATE + dateFormat: + description: Output only. ICU date format. + readOnly: true + type: string + minValue: + description: Output only. Minimum valid value (year, month, day). + readOnly: true + $ref: '#/components/schemas/GoogleTypeDate' + maxValue: + description: Output only. Maximum valid value (year, month, day). + readOnly: true + $ref: '#/components/schemas/GoogleTypeDate' GoogleTypeDate: + id: GoogleTypeDate + description: >- + Represents a whole or partial calendar date, such as a birthday. The + time of day and time zone are either specified elsewhere or are + insignificant. The date is relative to the Gregorian Calendar. This can + represent one of the following: * A full date, with non-zero year, + month, and day values. * A month and day, with a zero year (for example, + an anniversary). * A year on its own, with a zero month and a zero day. + * A year and month, with a zero day (for example, a credit card + expiration date). Related types: * google.type.TimeOfDay * + google.type.DateTime * google.protobuf.Timestamp type: object properties: - day: - description: >- - Day of a month. Must be from 1 to 31 and valid for the year and - month, or 0 to specify a year by itself or a year and month where - the day isn't significant. - type: integer - format: int32 year: description: >- Year of the date. Must be from 1 to 9999, or 0 to specify a date @@ -455,512 +596,263 @@ components: without a month and day. type: integer format: int32 - description: >- - Represents a whole or partial calendar date, such as a birthday. The - time of day and time zone are either specified elsewhere or are - insignificant. The date is relative to the Gregorian Calendar. This can - represent one of the following: * A full date, with non-zero year, - month, and day values. * A month and day, with a zero year (for example, - an anniversary). * A year on its own, with a zero month and a zero day. - * A year and month, with a zero day (for example, a credit card - expiration date). Related types: * google.type.TimeOfDay * - google.type.DateTime * google.protobuf.Timestamp - id: GoogleTypeDate - GoogleAppsDriveLabelsV2PublishLabelRequest: + day: + description: >- + Day of a month. Must be from 1 to 31 and valid for the year and + month, or 0 to specify a year by itself or a year and month where + the day isn't significant. + type: integer + format: int32 + GoogleAppsDriveLabelsV2FieldSelectionOptions: + id: GoogleAppsDriveLabelsV2FieldSelectionOptions + description: Options for the selection field type. type: object properties: - writeControl: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2WriteControl' + listOptions: description: >- - Provides control over how write requests are executed. Defaults to - unset, which means last write wins. - languageCode: + When specified, indicates this field supports a list of values. Once + the field is published, this cannot be changed. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldListOptions' + choices: description: >- - The BCP-47 language code to use for evaluating localized field - labels. When not specified, values in the default configured - language will be used. - type: string - useAdminAccess: - description: >- - Set to `true` in order to use the user's admin credentials. The - server will verify the user is an admin for the Label before - allowing access. - type: boolean - description: Request to publish a label. - id: GoogleAppsDriveLabelsV2PublishLabelRequest - GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseEnableSelectionChoiceResponse: - id: >- - GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseEnableSelectionChoiceResponse - description: Response following Choice enable. - properties: {} + The options available for this selection field. The list order is + consistent, and modified with `insert_before_choice`. + type: array + items: + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2FieldSelectionOptionsChoice + GoogleAppsDriveLabelsV2FieldListOptions: + id: GoogleAppsDriveLabelsV2FieldListOptions + description: Options for a multi-valued variant of an associated field type. + type: object + properties: + maxEntries: + description: Maximum number of entries permitted. + type: integer + format: int32 + GoogleAppsDriveLabelsV2FieldSelectionOptionsChoice: + id: GoogleAppsDriveLabelsV2FieldSelectionOptionsChoice + description: Selection field choice. type: object - GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateSelectionChoicePropertiesRequest: properties: - fieldId: - type: string - description: Required. The Selection Field to update. id: - type: string - description: Required. The Choice to update. - updateMask: - type: string description: >- - The fields that should be updated. At least one field must be - specified. The root `properties` is implied and should not be - specified. A single `*` can be used as short-hand for updating every - field. - format: google-fieldmask + The unique value of the choice. This ID is autogenerated. Matches + the regex: `([a-zA-Z0-9_])+`. + type: string properties: + description: Basic properties of the choice. $ref: >- #/components/schemas/GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceProperties - description: Required. The Choice properties to update. - type: object - id: >- - GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateSelectionChoicePropertiesRequest - description: Request to update a Choice properties. - GoogleAppsDriveLabelsV2Lifecycle: - description: >- - The lifecycle state of an object, such as label, field, or choice. The - lifecycle enforces the following transitions: * `UNPUBLISHED_DRAFT` - (starting state) * `UNPUBLISHED_DRAFT` -> `PUBLISHED` * - `UNPUBLISHED_DRAFT` -> (Deleted) * `PUBLISHED` -> `DISABLED` * - `DISABLED` -> `PUBLISHED` * `DISABLED` -> (Deleted) The published and - disabled states have some distinct characteristics: * Published—Some - kinds of changes might be made to an object in this state, in which case - `has_unpublished_changes` will be true. Also, some kinds of changes are - not permitted. Generally, any change that would invalidate or cause new - restrictions on existing metadata related to the label are rejected. * - Disabled—When disabled, the configured `DisabledPolicy` takes effect. - type: object - properties: - disabledPolicy: + lifecycle: + description: Output only. Lifecycle of the choice. + readOnly: true + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2Lifecycle' + displayHints: + description: Output only. UI display hints for rendering a choice. + readOnly: true + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceDisplayHints + schemaCapabilities: description: >- - The policy that governs how to show a disabled label, field, or - selection choice. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LifecycleDisabledPolicy' - hasUnpublishedChanges: + Output only. The capabilities related to this option when editing + the option. + readOnly: true + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceSchemaCapabilities + appliedCapabilities: description: >- - Output only. Whether the object associated with this lifecycle has - unpublished changes. - type: boolean + Output only. The capabilities related to this choice on applied + metadata. readOnly: true - state: - enum: - - STATE_UNSPECIFIED - - UNPUBLISHED_DRAFT - - PUBLISHED - - DISABLED - - DELETED + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceAppliedCapabilities + creator: + description: Output only. The user who created this choice. + readOnly: true + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2UserInfo' + createTime: + description: Output only. The time this choice was created. readOnly: true - description: Output only. The state of the object associated with this lifecycle. type: string - enumDescriptions: - - Unknown State. - - >- - The initial state of an object. Once published, the object can - never return to this state. Once an object is published, certain - kinds of changes are no longer permitted. - - >- - The object has been published. The object might have unpublished - draft changes as indicated by `has_unpublished_changes`. - - >- - The object has been published and has since been disabled. The - object might have unpublished draft changes as indicated by - `has_unpublished_changes`. - - The object has been deleted. - id: GoogleAppsDriveLabelsV2Lifecycle - GoogleAppsDriveLabelsV2FieldLimits: - id: GoogleAppsDriveLabelsV2FieldLimits - description: >- - Field constants governing the structure of a Field; such as, the maximum - title length, minimum and maximum field values or length, etc. - type: object - properties: - userLimits: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2UserLimits' - description: User Field limits. - longTextLimits: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LongTextLimits' - description: Long text Field limits. - textLimits: - description: The relevant limits for the specified Field.Type. Text Field limits. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2TextLimits' - maxDescriptionLength: - type: integer - format: int32 - description: Limits for Field description, also called help text. - dateLimits: - description: Date Field limits. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2DateLimits' - maxDisplayNameLength: - type: integer - format: int32 - description: Limits for Field title. - maxIdLength: - format: int32 - type: integer - description: Max length for the id. - selectionLimits: - description: Selection Field limits. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2SelectionLimits' - integerLimits: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2IntegerLimits' - description: Integer Field limits. - GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestEnableFieldRequest: - type: object - description: Request to enable the Field. - id: GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestEnableFieldRequest - properties: - id: + format: google-datetime + updater: + description: Output only. The user who updated this choice last. + readOnly: true + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2UserInfo' + updateTime: + description: Output only. The time this choice was updated last. + readOnly: true type: string - description: Required. ID of the Field to enable. - GoogleAppsDriveLabelsV2FieldUserOptions: - description: Options for the user field type. - properties: - listOptions: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldListOptions' + format: google-datetime + publisher: description: >- - When specified, indicates that this field supports a list of values. - Once the field is published, this cannot be changed. - id: GoogleAppsDriveLabelsV2FieldUserOptions - type: object - GoogleAppsDriveLabelsV2LabelLockCapabilities: - properties: - canViewPolicy: - type: boolean - description: True if the user is authorized to view the policy. - description: A description of a user's capabilities on a LabelLock. - type: object - id: GoogleAppsDriveLabelsV2LabelLockCapabilities - GoogleAppsDriveLabelsV2SelectionLimits: - description: Limits for selection Field type. - properties: - maxIdLength: - description: Maximum ID length for a selection options. - type: integer - format: int32 - maxChoices: - format: int32 - type: integer - description: The max number of choices. - maxDisplayNameLength: - description: Maximum length for display name. - format: int32 - type: integer - listLimits: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2ListLimits' - description: Limits for list-variant of a Field type. - maxDeletedChoices: - format: int32 - description: Maximum number of deleted choices. - type: integer - type: object - id: GoogleAppsDriveLabelsV2SelectionLimits - GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseDisableFieldResponse: - id: GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseDisableFieldResponse - properties: {} - description: Response following Field disable. - type: object - GoogleAppsDriveLabelsV2LabelProperties: - type: object - id: GoogleAppsDriveLabelsV2LabelProperties - properties: - description: - type: string - description: The description of the label. - title: + Output only. The user who published this choice. This value has no + meaning when the choice is not published. + readOnly: true + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2UserInfo' + publishTime: + description: >- + Output only. The time this choice was published. This value has no + meaning when the choice is not published. + readOnly: true type: string - description: Required. Title of the label. - description: Basic properties of the label. - GoogleAppsDriveLabelsV2BatchDeleteLabelPermissionsRequest: - type: object - id: GoogleAppsDriveLabelsV2BatchDeleteLabelPermissionsRequest - properties: - requests: - type: array - items: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2DeleteLabelPermissionRequest - description: Required. The request message specifying the resources to update. - useAdminAccess: + format: google-datetime + disabler: description: >- - Set to `true` in order to use the user's admin credentials. The - server will verify the user is an admin for the Label before - allowing access. If this is set, the use_admin_access field in the - DeleteLabelPermissionRequest messages must either be empty or match - this field. - type: boolean - description: Deletes one of more Label Permissions. - GoogleAppsDriveLabelsV2ListLabelsResponse: - id: GoogleAppsDriveLabelsV2ListLabelsResponse - properties: - nextPageToken: + Output only. The user who disabled this choice. This value has no + meaning when the option is not disabled. + readOnly: true + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2UserInfo' + disableTime: + description: >- + Output only. The time this choice was disabled. This value has no + meaning when the choice is not disabled. + readOnly: true type: string - description: The token of the next page in the response. - labels: - description: Labels. - items: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2Label' - type: array - description: Response for listing Labels. - type: object - GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceAppliedCapabilities: + format: google-datetime + lockStatus: + description: Output only. The `LockStatus` of this choice. + readOnly: true + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LockStatus' + GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceProperties: + id: GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceProperties + description: Basic properties of the choice. type: object - id: GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceAppliedCapabilities - description: The capabilities related to this choice on applied metadata. - properties: - canSelect: - type: boolean - description: Whether the user can select this choice on an item. - canSearch: - type: boolean - description: Whether the user can use this choice in search queries. - canRead: - description: Whether the user can read related applied metadata on items. - type: boolean - GoogleAppsDriveLabelsV2FieldProperties: properties: - required: - description: Whether the field should be marked as required. - type: boolean displayName: - type: string description: Required. The display text to show in the UI identifying this field. - insertBeforeField: - type: string - description: >- - Input only. Insert or move this field before the indicated field. If - empty, the field is placed at the end of the list. - type: object - id: GoogleAppsDriveLabelsV2FieldProperties - description: The basic properties of the field. - GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseDeleteFieldResponse: - type: object - description: Response following Field delete. - id: GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseDeleteFieldResponse - properties: {} - GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseUpdateFieldTypeResponse: - properties: {} - type: object - id: GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseUpdateFieldTypeResponse - description: Response following update to Field type. - GoogleAppsDriveLabelsV2FieldAppliedCapabilities: - id: GoogleAppsDriveLabelsV2FieldAppliedCapabilities - description: The capabilities related to this field on applied metadata. - type: object - properties: - canSearch: - type: boolean - description: Whether the user can search for Drive items referencing this field. - canWrite: - type: boolean - description: Whether the user can set this field on Drive items. - canRead: - type: boolean - description: Whether the user can read related applied metadata on items. - GoogleAppsDriveLabelsV2FieldSchemaCapabilities: - properties: - canUpdate: - type: boolean - description: Whether the user can change this field. - canDisable: - type: boolean - description: >- - Whether the user can disable this field. The user must have - permission and this field must not already be disabled. - canDelete: - type: boolean - description: >- - Whether the user can delete this field. The user must have - permission and the field must be deprecated. - canEnable: - description: >- - Whether the user can enable this field. The user must have - permission and this field must be disabled. - type: boolean - description: The capabilities related to this field when editing the field. - id: GoogleAppsDriveLabelsV2FieldSchemaCapabilities - type: object - GoogleAppsDriveLabelsV2UserLimits: - description: Limits for Field.Type.USER. - id: GoogleAppsDriveLabelsV2UserLimits - properties: - listLimits: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2ListLimits' - description: Limits for list-variant of a Field type. - type: object - GoogleAppsDriveLabelsV2ListLabelLocksResponse: - description: The response to a ListLabelLocksRequest. - id: GoogleAppsDriveLabelsV2ListLabelLocksResponse - properties: - nextPageToken: type: string - description: The token of the next page in the response. - labelLocks: - description: LabelLocks. - items: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelLock' - type: array - type: object - GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseUpdateFieldPropertiesResponse: - properties: - priority: - format: int32 - description: >- - The priority of the updated field. The priority may change from what - was specified to assure contiguous priorities between fields (1-n). - type: integer - description: Response following update to Field properties. - id: >- - GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseUpdateFieldPropertiesResponse - type: object - GoogleAppsDriveLabelsV2UpdateLabelPermissionRequest: - type: object - id: GoogleAppsDriveLabelsV2UpdateLabelPermissionRequest - description: >- - Updates a Label Permission. Permissions affect the Label resource as a - whole, are not revisioned, and do not require publishing. - properties: - parent: - description: Required. The parent Label resource name. + description: + description: The description of this label. type: string - labelPermission: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelPermission' - description: Required. The permission to create or update on the Label. - useAdminAccess: + badgeConfig: description: >- - Set to `true` in order to use the user's admin credentials. The - server will verify the user is an admin for the Label before - allowing access. - type: boolean - GoogleAppsDriveLabelsV2EnableLabelRequest: - properties: - writeControl: + The badge configuration for this choice. When set, the label that + owns this choice is considered a "badged label". + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2BadgeConfig' + insertBeforeChoice: description: >- - Provides control over how write requests are executed. Defaults to - unset, which means last write wins. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2WriteControl' - languageCode: + Input only. Insert or move this choice before the indicated choice. + If empty, the choice is placed at the end of the list. type: string - description: >- - The BCP-47 language code to use for evaluating localized field - labels. When not specified, values in the default configured - language will be used. - useAdminAccess: - description: >- - Set to `true` in order to use the user's admin credentials. The - server will verify the user is an admin for the Label before - allowing access. - type: boolean - description: Request to enable a label. - id: GoogleAppsDriveLabelsV2EnableLabelRequest + GoogleAppsDriveLabelsV2BadgeConfig: + id: GoogleAppsDriveLabelsV2BadgeConfig + description: Badge status of the label. type: object - GoogleAppsDriveLabelsV2LockStatus: - id: GoogleAppsDriveLabelsV2LockStatus properties: - locked: - type: boolean - readOnly: true + color: description: >- - Output only. Indicates whether this label component is the (direct) - target of a LabelLock. A label component can be implicitly locked - even if it's not the direct target of a LabelLock, in which case - this field is set to false. - description: >- - Contains information about whether a label component should be - considered locked. - type: object - GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateLabelPropertiesRequest: - properties: - properties: - description: Required. Label properties to update. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelProperties' - updateMask: - format: google-fieldmask + The color of the badge. When not specified, no badge is rendered. + The background, foreground, and solo (light and dark mode) colors + set here are changed in the Drive UI into the closest recommended + supported color. + $ref: '#/components/schemas/GoogleTypeColor' + priorityOverride: description: >- - The fields that should be updated. At least one field must be - specified. The root `label_properties` is implied and should not be - specified. A single `*` can be used as short-hand for updating every - field. + Override the default global priority of this badge. When set to 0, + the default priority heuristic is used. type: string - id: >- - GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateLabelPropertiesRequest - description: Updates basic properties of a Label. - type: object - GoogleAppsDriveLabelsV2DateLimits: - type: object - properties: - maxValue: - description: Maximum value for the date Field type. - $ref: '#/components/schemas/GoogleTypeDate' - minValue: - $ref: '#/components/schemas/GoogleTypeDate' - description: Minimum value for the date Field type. - id: GoogleAppsDriveLabelsV2DateLimits - description: Limits for date Field type. - GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseDeleteSelectionChoiceResponse: - id: >- - GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseDeleteSelectionChoiceResponse - type: object - description: Response following Choice delete. - properties: {} - GoogleProtobufEmpty: + format: int64 + GoogleTypeColor: + id: GoogleTypeColor + description: >- + Represents a color in the RGBA color space. This representation is + designed for simplicity of conversion to and from color representations + in various languages over compactness. For example, the fields of this + representation can be trivially provided to the constructor of + `java.awt.Color` in Java; it can also be trivially provided to UIColor's + `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little + work, it can be easily formatted into a CSS `rgba()` string in + JavaScript. This reference page doesn't have information about the + absolute color space that should be used to interpret the RGB value—for + example, sRGB, Adobe RGB, DCI-P3, and BT.2020. By default, applications + should assume the sRGB color space. When color equality needs to be + decided, implementations, unless documented otherwise, treat two colors + as equal if all their red, green, blue, and alpha values each differ by + at most `1e-5`. Example (Java): import com.google.type.Color; // ... + public static java.awt.Color fromProto(Color protocolor) { float alpha = + protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return + new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), + protocolor.getBlue(), alpha); } public static Color + toProto(java.awt.Color color) { float red = (float) color.getRed(); + float green = (float) color.getGreen(); float blue = (float) + color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder + = Color .newBuilder() .setRed(red / denominator) .setGreen(green / + denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); + if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() + .setValue(((float) alpha) / denominator) .build()); } return + resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static + UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; + float green = [protocolor green]; float blue = [protocolor blue]; + FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if + (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return + [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static + Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if + (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return + nil; } Color* result = [[Color alloc] init]; [result setRed:red]; + [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { + [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; + return result; } // ... Example (JavaScript): // ... var protoToCssColor + = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var + greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || + 0.0; var red = Math.floor(redFrac * 255); var green = + Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if + (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } + var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, + green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, + ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var + rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString + = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var + resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { + resultBuilder.push('0'); } resultBuilder.push(hexString); return + resultBuilder.join(''); }; // ... type: object - properties: {} - description: >- - A generic empty message that you can re-use to avoid defining duplicated - empty messages in your APIs. A typical example is to use it as the - request or the response type of an API method. For instance: service Foo - { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } - id: GoogleProtobufEmpty - GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateFieldPropertiesRequest: - id: >- - GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateFieldPropertiesRequest - description: Request to update Field properties. properties: - updateMask: - type: string - format: google-fieldmask + red: + description: The amount of red in the color as a value in the interval [0, 1]. + type: number + format: float + green: + description: The amount of green in the color as a value in the interval [0, 1]. + type: number + format: float + blue: + description: The amount of blue in the color as a value in the interval [0, 1]. + type: number + format: float + alpha: description: >- - The fields that should be updated. At least one field must be - specified. The root `properties` is implied and should not be - specified. A single `*` can be used as short-hand for updating every - field. - properties: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldProperties' - description: Required. Basic Field properties. - id: - description: Required. The Field to update. - type: string - type: object - GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestCreateFieldRequest: - id: GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestCreateFieldRequest - type: object - description: Request to create a Field within a Label. - properties: - field: - description: Required. Field to create. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2Field' + The fraction of this color that should be applied to the pixel. That + is, the final pixel color is defined by the equation: `pixel color = + alpha * (this color) + (1.0 - alpha) * (background color)` This + means that a value of 1.0 corresponds to a solid color, whereas a + value of 0.0 corresponds to a completely transparent color. This + uses a wrapper message rather than a simple float scalar so that it + is possible to distinguish between a default value and the value + being unset. If omitted, this color object is rendered as a solid + color (as if the alpha value had been explicitly given a value of + 1.0). + type: number + format: float GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceDisplayHints: + id: GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceDisplayHints + description: UI display hints for rendering an option. + type: object properties: disabled: description: Whether the option should be shown in the UI as disabled. type: boolean hiddenInSearch: - type: boolean description: >- This option should be hidden in the search menu when searching for Drive items. - badgePriority: + type: boolean + shownInApply: description: >- - The priority of this badge. Used to compare and sort between - multiple badges. A lower number means the badge should be shown - first. When a badging configuration is not present, this will be 0. - Otherwise, this will be set to `BadgeConfig.priority_override` or - the default heuristic which prefers creation date of the label, and - field and option priority. - format: int64 - type: string + This option should be shown in the apply menu when applying values + to a Drive item. + type: boolean badgeColors: description: >- The colors to use for the badge. Changed to Google Material colors @@ -971,560 +863,843 @@ components: The dark-mode color to use for the badge. Changed to Google Material colors based on the chosen `properties.badge_config.color`. $ref: '#/components/schemas/GoogleAppsDriveLabelsV2BadgeColors' - shownInApply: + badgePriority: description: >- - This option should be shown in the apply menu when applying values - to a Drive item. - type: boolean - id: GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceDisplayHints - description: UI display hints for rendering an option. + The priority of this badge. Used to compare and sort between + multiple badges. A lower number means the badge should be shown + first. When a badging configuration is not present, this will be 0. + Otherwise, this will be set to `BadgeConfig.priority_override` or + the default heuristic which prefers creation date of the label, and + field and option priority. + type: string + format: int64 + GoogleAppsDriveLabelsV2BadgeColors: + id: GoogleAppsDriveLabelsV2BadgeColors + description: >- + The color derived from BadgeConfig and changed to the closest + recommended supported color. type: object + properties: + backgroundColor: + description: Output only. Badge background that pairs with the foreground. + readOnly: true + $ref: '#/components/schemas/GoogleTypeColor' + foregroundColor: + description: Output only. Badge foreground that pairs with the background. + readOnly: true + $ref: '#/components/schemas/GoogleTypeColor' + soloColor: + description: Output only. Color that can be used for text without a background. + readOnly: true + $ref: '#/components/schemas/GoogleTypeColor' GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceSchemaCapabilities: + id: GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceSchemaCapabilities + description: The capabilities related to this choice when editing the choice. + type: object properties: canUpdate: description: Whether the user can update this choice. type: boolean + canDelete: + description: Whether the user can delete this choice. + type: boolean canDisable: description: Whether the user can disable this choice. type: boolean - canDelete: - type: boolean - description: Whether the user can delete this choice. canEnable: - type: boolean description: Whether the user can enable this choice. + type: boolean + GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceAppliedCapabilities: + id: GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceAppliedCapabilities + description: The capabilities related to this choice on applied metadata. type: object - id: GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceSchemaCapabilities - description: The capabilities related to this choice when editing the choice. - GoogleAppsDriveLabelsV2UserCapabilities: - type: object - id: GoogleAppsDriveLabelsV2UserCapabilities - description: The capabilities of a user. properties: - canAdministrateLabels: - description: >- - Output only. Whether the user is an administrator for the shared - labels feature. - readOnly: true - type: boolean - canCreateSharedLabels: - readOnly: true - description: >- - Output only. Whether the user is allowed to create new shared - labels. + canRead: + description: Whether the user can read related applied metadata on items. type: boolean - canCreateAdminLabels: + canSearch: + description: Whether the user can use this choice in search queries. type: boolean - readOnly: true - description: Output only. Whether the user is allowed to create new admin labels. - canAccessLabelManager: + canSelect: + description: Whether the user can select this choice on an item. type: boolean - readOnly: true - description: >- - Output only. Whether the user is allowed access to the label - manager. - name: - description: Output only. Resource name for the user capabilities. - type: string - readOnly: true - GoogleAppsDriveLabelsV2FieldTextOptions: + GoogleAppsDriveLabelsV2LockStatus: + id: GoogleAppsDriveLabelsV2LockStatus + description: >- + Contains information about whether a label component should be + considered locked. type: object - id: GoogleAppsDriveLabelsV2FieldTextOptions - description: Options for the Text field type. properties: - maxLength: - type: integer - format: int32 - description: Output only. The maximum valid length of values for the text field. - readOnly: true - minLength: - description: Output only. The minimum valid length of values for the text field. - format: int32 + locked: + description: >- + Output only. Indicates whether this label component is the (direct) + target of a label lock. A label component can be implicitly locked + even if it's not the direct target of a label lock, in which case + this field is set to false. readOnly: true - type: integer - GoogleAppsDriveLabelsV2Label: - description: >- - A label defines a taxonomy that can be applied to Drive items in order - to organize and search across items. Labels can be simple strings, or - can contain fields that describe additional metadata that can be further - used to organize and search Drive items. - id: GoogleAppsDriveLabelsV2Label + type: boolean + GoogleAppsDriveLabelsV2FieldUserOptions: + id: GoogleAppsDriveLabelsV2FieldUserOptions + description: Options for the user field type. + type: object properties: - appliedCapabilities: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelAppliedCapabilities' + listOptions: description: >- - Output only. The capabilities related to this label on applied - metadata. - readOnly: true - publishTime: + When specified, indicates that this field supports a list of values. + Once the field is published, this cannot be changed. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldListOptions' + GoogleAppsDriveLabelsV2FieldProperties: + id: GoogleAppsDriveLabelsV2FieldProperties + description: The basic properties of the field. + type: object + properties: + displayName: + description: Required. The display text to show in the UI identifying this field. + type: string + required: + description: Whether the field should be marked as required. + type: boolean + insertBeforeField: description: >- - Output only. The time this label was published. This value has no - meaning when the label is not published. - format: google-datetime + Input only. Insert or move this field before the indicated field. If + empty, the field is placed at the end of the list. type: string - readOnly: true - revisionCreator: - readOnly: true - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2UserInfo' - description: Output only. The user who created this label revision. - disabler: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2UserInfo' + GoogleAppsDriveLabelsV2FieldDisplayHints: + id: GoogleAppsDriveLabelsV2FieldDisplayHints + description: UI display hints for rendering a field. + type: object + properties: + required: + description: Whether the field should be shown as required in the UI. + type: boolean + disabled: + description: Whether the field should be shown in the UI as disabled. + type: boolean + hiddenInSearch: description: >- - Output only. The user who disabled this label. This value has no - meaning when the label is not disabled. - readOnly: true - id: - type: string + This field should be hidden in the search menu when searching for + Drive items. + type: boolean + shownInApply: description: >- - Output only. Globally unique identifier of this label. ID makes up - part of the label `name`, but unlike `name`, ID is consistent - between revisions. Matches the regex: `([a-zA-Z0-9])+` - readOnly: true - revisionId: - type: string - readOnly: true + This field should be shown in the apply menu when applying values to + a Drive item. + type: boolean + GoogleAppsDriveLabelsV2FieldSchemaCapabilities: + id: GoogleAppsDriveLabelsV2FieldSchemaCapabilities + description: The capabilities related to this field when editing the field. + type: object + properties: + canUpdate: + description: Whether the user can change this field. + type: boolean + canDelete: description: >- - Output only. Revision ID of the label. Revision ID might be part of - the label `name` depending on the request issued. A new revision is - created whenever revisioned properties of a label are changed. - Matches the regex: `([a-zA-Z0-9])+` - creator: - readOnly: true - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2UserInfo' - description: Output only. The user who created this label. - lifecycle: + Whether the user can delete this field. The user must have + permission and the field must be deprecated. + type: boolean + canDisable: description: >- - Output only. The lifecycle state of the label including whether it's - published, deprecated, and has draft changes. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2Lifecycle' - readOnly: true - appliedLabelPolicy: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelAppliedLabelPolicy' - readOnly: true + Whether the user can disable this field. The user must have + permission and this field must not already be disabled. + type: boolean + canEnable: description: >- - Output only. Behavior of this label when it's applied to Drive - items. - schemaCapabilities: - description: Output only. The capabilities the user has on this label. - readOnly: true - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelSchemaCapabilities' - displayHints: - description: Output only. UI display hints for rendering the label. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelDisplayHints' - readOnly: true - labelType: + Whether the user can enable this field. The user must have + permission and this field must be disabled. + type: boolean + GoogleAppsDriveLabelsV2FieldAppliedCapabilities: + id: GoogleAppsDriveLabelsV2FieldAppliedCapabilities + description: The capabilities related to this field on applied metadata. + type: object + properties: + canRead: + description: Whether the user can read related applied metadata on items. + type: boolean + canSearch: + description: Whether the user can search for Drive items referencing this field. + type: boolean + canWrite: + description: Whether the user can set this field on Drive items. + type: boolean + GoogleAppsDriveLabelsV2LabelEnabledAppSettings: + id: GoogleAppsDriveLabelsV2LabelEnabledAppSettings + description: Describes the Google Workspace apps in which the label can be used. + type: object + properties: + enabledApps: + description: Optional. The list of apps where the label can be used. + type: array + items: + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2LabelEnabledAppSettingsEnabledApp + GoogleAppsDriveLabelsV2LabelEnabledAppSettingsEnabledApp: + id: GoogleAppsDriveLabelsV2LabelEnabledAppSettingsEnabledApp + description: An app where the label can be used. + type: object + properties: + app: + description: Optional. The name of the app. type: string enumDescriptions: - - Unknown label type. - - Shared labels may be shared with users to apply to Drive items. - - >- - Admin-owned label. Only creatable and editable by admins. Supports - some additional admin-only features. - - >- - A label owned by an internal Google application rather than a - customer. These labels are read-only. + - Unspecified + - Drive + - Gmail enum: - - LABEL_TYPE_UNSPECIFIED - - SHARED - - ADMIN - - GOOGLE_APP - description: Required. The type of label. - revisionCreateTime: - format: google-datetime - description: Output only. The time this label revision was created. - readOnly: true - type: string - customer: - type: string - readOnly: true - description: >- - Output only. The customer this label belongs to. For example: - "customers/123abc789." - properties: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelProperties' - description: Required. The basic properties of the label. + - APP_UNSPECIFIED + - DRIVE + - GMAIL + GoogleAppsDriveLabelsV2LabelLimits: + id: GoogleAppsDriveLabelsV2LabelLimits + description: >- + Label constraints governing the structure of a label; such as, the + maximum number of fields allowed and maximum length of the label title. + type: object + properties: name: - readOnly: true - description: >- - Output only. Resource name of the label. Will be in the form of - either: `labels/{id}` or `labels/{id}@{revision_id}` depending on - the request. See `id` and `revision_id` below. - type: string - disableTime: - format: google-datetime - readOnly: true - description: >- - Output only. The time this label was disabled. This value has no - meaning when the label is not disabled. - type: string - createTime: - format: google-datetime - readOnly: true - description: Output only. The time this label was created. - type: string - learnMoreUri: + description: Resource name. type: string + maxTitleLength: + description: The maximum number of characters allowed for the title. + type: integer + format: int32 + maxDescriptionLength: + description: The maximum number of characters allowed for the description. + type: integer + format: int32 + maxFields: + description: The maximum number of fields allowed within the label. + type: integer + format: int32 + maxDeletedFields: + description: The maximum number of published fields that can be deleted. + type: integer + format: int32 + maxDraftRevisions: description: >- - Custom URL to present to users to allow them to learn more about - this label and how it should be used. - fields: - type: array - items: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2Field' - description: List of fields in descending priority order. - lockStatus: - description: Output only. The LockStatus of this label. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LockStatus' - readOnly: true - publisher: - description: >- - Output only. The user who published this label. This value has no - meaning when the label is not published. - readOnly: true - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2UserInfo' + The maximum number of draft revisions that will be kept before + deleting old drafts. + type: integer + format: int32 + fieldLimits: + description: The limits for fields. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldLimits' + GoogleAppsDriveLabelsV2FieldLimits: + id: GoogleAppsDriveLabelsV2FieldLimits + description: >- + Field constants governing the structure of a field; such as, the maximum + title length, minimum and maximum field values or length, etc. type: object - GoogleAppsDriveLabelsV2IntegerLimits: + properties: + maxIdLength: + description: Maximum length for the id. + type: integer + format: int32 + maxDisplayNameLength: + description: Limits for field title. + type: integer + format: int32 + maxDescriptionLength: + description: Limits for field description, also called help text. + type: integer + format: int32 + textLimits: + description: The relevant limits for the specified Field.Type. Text field limits. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2TextLimits' + longTextLimits: + description: Long text field limits. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LongTextLimits' + integerLimits: + description: Integer field limits. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2IntegerLimits' + dateLimits: + description: Date field limits. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2DateLimits' + userLimits: + description: User field limits. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2UserLimits' + selectionLimits: + description: Selection field limits. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2SelectionLimits' + GoogleAppsDriveLabelsV2TextLimits: + id: GoogleAppsDriveLabelsV2TextLimits + description: Limits for text field type. + type: object + properties: + minLength: + description: Minimum length allowed for a text field type. + type: integer + format: int32 + maxLength: + description: Maximum length allowed for a text field type. + type: integer + format: int32 + GoogleAppsDriveLabelsV2LongTextLimits: + id: GoogleAppsDriveLabelsV2LongTextLimits + description: Limits for long text field type. type: object + properties: + minLength: + description: Minimum length allowed for a long text field type. + type: integer + format: int32 + maxLength: + description: Maximum length allowed for a long text field type. + type: integer + format: int32 + GoogleAppsDriveLabelsV2IntegerLimits: id: GoogleAppsDriveLabelsV2IntegerLimits + description: Limits for integer field type. + type: object properties: minValue: + description: Minimum value for an integer field type. type: string - description: Minimum value for an integer Field type. format: int64 maxValue: - format: int64 - description: Maximum value for an integer Field type. + description: Maximum value for an integer field type. type: string - description: Limits for integer Field type. - GoogleAppsDriveLabelsV2FieldDateOptions: + format: int64 + GoogleAppsDriveLabelsV2DateLimits: + id: GoogleAppsDriveLabelsV2DateLimits + description: Limits for date field type. + type: object properties: minValue: - description: Output only. Minimum valid value (year, month, day). - readOnly: true + description: Minimum value for the date field type. $ref: '#/components/schemas/GoogleTypeDate' - dateFormat: - readOnly: true - description: Output only. ICU date format. - type: string - dateFormatType: - type: string - description: >- - Localized date formatting option. Field values are rendered in this - format according to their locale. - enumDescriptions: - - Date format unspecified. - - >- - Includes full month name. For example, January 12, 1999 (MMMM d, - y) - - Short, numeric, representation. For example, 12/13/99 (M/d/yy) - enum: - - DATE_FORMAT_UNSPECIFIED - - LONG_DATE - - SHORT_DATE maxValue: - description: Output only. Maximum valid value (year, month, day). - readOnly: true + description: Maximum value for the date field type. $ref: '#/components/schemas/GoogleTypeDate' - id: GoogleAppsDriveLabelsV2FieldDateOptions - description: Options for the date field type. + GoogleAppsDriveLabelsV2UserLimits: + id: GoogleAppsDriveLabelsV2UserLimits + description: Limits for Field.Type.USER. + type: object + properties: + listLimits: + description: Limits for list-variant of a field type. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2ListLimits' + GoogleAppsDriveLabelsV2ListLimits: + id: GoogleAppsDriveLabelsV2ListLimits + description: Limits for list-variant of a field type. type: object - GoogleAppsDriveLabelsV2FieldSelectionOptions: + properties: + maxEntries: + description: Maximum number of values allowed for the field type. + type: integer + format: int32 + GoogleAppsDriveLabelsV2SelectionLimits: + id: GoogleAppsDriveLabelsV2SelectionLimits + description: Limits for selection field type. type: object - description: Options for the selection field type. properties: - listOptions: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldListOptions' + listLimits: + description: Limits for list-variant of a field type. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2ListLimits' + maxIdLength: + description: Maximum ID length for a selection option. + type: integer + format: int32 + maxDisplayNameLength: + description: Maximum length for display name. + type: integer + format: int32 + maxChoices: + description: Maximum number of choices. + type: integer + format: int32 + maxDeletedChoices: + description: Maximum number of deleted choices. + type: integer + format: int32 + GoogleAppsDriveLabelsV2DeltaUpdateLabelRequest: + id: GoogleAppsDriveLabelsV2DeltaUpdateLabelRequest + description: >- + The set of requests for updating aspects of a label. If any request + isn't valid, no requests will be applied. + type: object + properties: + writeControl: + description: Provides control over how write requests are executed. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2WriteControl' + requests: description: >- - When specified, indicates this field supports a list of values. Once - the field is published, this cannot be changed. - choices: + A list of updates to apply to the label. Requests will be applied in + the order they are specified. type: array items: $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2FieldSelectionOptionsChoice + #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestRequest + useAdminAccess: description: >- - The options available for this selection field. The list order is - consistent, and modified with `insert_before_choice`. - id: GoogleAppsDriveLabelsV2FieldSelectionOptions - GoogleAppsDriveLabelsV2UserInfo: - type: object - properties: - person: + Set to `true` in order to use the user's admin credentials. The + server will verify the user is an admin for the label before + allowing access. + type: boolean + view: + description: >- + When specified, only certain fields belonging to the indicated view + will be returned. type: string + enumDescriptions: + - >- + Implies the field mask: + `name,id,revision_id,label_type,properties.*` + - All possible fields. + enum: + - LABEL_VIEW_BASIC + - LABEL_VIEW_FULL + languageCode: description: >- - The identifier for this user that can be used with the People API to - get more information. For example, people/12345678. - id: GoogleAppsDriveLabelsV2UserInfo - description: Information about a user. - GoogleAppsDriveLabelsV2LabelAppliedCapabilities: - id: GoogleAppsDriveLabelsV2LabelAppliedCapabilities - type: object - description: The capabilities a user has on this label's applied metadata. - properties: - canRemove: - type: boolean - description: Whether the user can remove this label from items. - canApply: - type: boolean - description: Whether the user can apply this label to items. - canRead: - type: boolean - description: Whether the user can read applied metadata related to this label. - GoogleAppsDriveLabelsV2BatchUpdateLabelPermissionsResponse: - description: Response for updating one or more Label Permissions. - type: object - properties: - permissions: - description: Required. Permissions updated. - items: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelPermission' - type: array - id: GoogleAppsDriveLabelsV2BatchUpdateLabelPermissionsResponse + The BCP-47 language code to use for evaluating localized field + labels when `include_label_in_response` is `true`. + type: string GoogleAppsDriveLabelsV2WriteControl: + id: GoogleAppsDriveLabelsV2WriteControl description: >- Provides control over how write requests are executed. When not specified, the last write wins. + type: object properties: requiredRevisionId: - type: string description: >- - The revision_id of the label that the write request will be applied - to. If this is not the latest revision of the label, the request - will not be processed and will return a 400 Bad Request error. - id: GoogleAppsDriveLabelsV2WriteControl + The revision ID of the label that the write request will be applied + to. If this isn't the latest revision of the label, the request will + not be processed and will return a 400 Bad Request error. + type: string + GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestRequest: + id: GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestRequest + description: A single kind of update to apply to a label. type: object - GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseDisableSelectionChoiceResponse: - properties: {} + properties: + updateLabel: + description: Updates the label properties. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateLabelPropertiesRequest + createField: + description: Creates a field. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestCreateFieldRequest + updateField: + description: Updates basic properties of a field. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateFieldPropertiesRequest + updateFieldType: + description: Update field type and/or type options. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateFieldTypeRequest + enableField: + description: Enables the field. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestEnableFieldRequest + disableField: + description: Disables the field. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestDisableFieldRequest + deleteField: + description: Deletes a field from the label. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestDeleteFieldRequest + createSelectionChoice: + description: Create a choice within a selection field. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestCreateSelectionChoiceRequest + updateSelectionChoiceProperties: + description: Update a choice property within a selection field. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateSelectionChoicePropertiesRequest + enableSelectionChoice: + description: Enable a choice within a selection field. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestEnableSelectionChoiceRequest + disableSelectionChoice: + description: Disable a choice within a selection field. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestDisableSelectionChoiceRequest + deleteSelectionChoice: + description: Delete a choice within a selection field. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestDeleteSelectionChoiceRequest + GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateLabelPropertiesRequest: + id: >- + GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateLabelPropertiesRequest + description: Updates basic properties of a label. + type: object + properties: + updateMask: + description: >- + The fields that should be updated. At least one field must be + specified. The root `label_properties` is implied and should not be + specified. A single `*` can be used as a short-hand for updating + every field. + type: string + format: google-fieldmask + properties: + description: Required. Label properties to update. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelProperties' + GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestCreateFieldRequest: + id: GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestCreateFieldRequest + description: Request to create a field within a label. type: object + properties: + field: + description: Required. Field to create. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2Field' + GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateFieldPropertiesRequest: id: >- - GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseDisableSelectionChoiceResponse - description: Response following Choice disable. - GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseCreateFieldResponse: + GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateFieldPropertiesRequest + description: Request to update field properties. + type: object properties: - priority: - format: int32 - type: integer + updateMask: description: >- - The priority of the created field. The priority may change from what - was specified to assure contiguous priorities between fields (1-n). + The fields that should be updated. At least one field must be + specified. The root `properties` is implied and should not be + specified. A single `*` can be used as a short-hand for updating + every field. + type: string + format: google-fieldmask + id: + description: Required. The field to update. + type: string + properties: + description: Required. Basic field properties. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldProperties' + GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateFieldTypeRequest: + id: GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateFieldTypeRequest + description: Request to change the type of a field. + type: object + properties: + textOptions: + description: Update field to Text. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldTextOptions' + integerOptions: + description: Update field to Integer. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldIntegerOptions' + dateOptions: + description: Update field to Date. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldDateOptions' + selectionOptions: + description: Update field to Selection. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldSelectionOptions' + userOptions: + description: Update field to User. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldUserOptions' + updateMask: + description: >- + The fields that should be updated. At least one field must be + specified. The root of `type_options` is implied and should not be + specified. A single `*` can be used as a short-hand for updating + every field. + type: string + format: google-fieldmask id: + description: Required. The field to update. type: string + GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestEnableFieldRequest: + id: GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestEnableFieldRequest + description: Request to enable the field. + type: object + properties: + id: + description: Required. ID of the field to enable. + type: string + GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestDisableFieldRequest: + id: GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestDisableFieldRequest + description: Request to disable the field. + type: object + properties: + updateMask: description: >- - The field of the created field. When left blank in a create request, - a key will be autogenerated and can be identified here. - id: GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseCreateFieldResponse - description: Response following Field create. + The fields that should be updated. At least one field must be + specified. The root `disabled_policy` is implied and should not be + specified. A single `*` can be used as a short-hand for updating + every field. + type: string + format: google-fieldmask + id: + description: Required. Key of the field to disable. + type: string + disabledPolicy: + description: Required. Field disabled policy. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LifecycleDisabledPolicy' + GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestDeleteFieldRequest: + id: GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestDeleteFieldRequest + description: Request to delete the field. type: object - GoogleAppsDriveLabelsV2ListLabelPermissionsResponse: + properties: + id: + description: Required. ID of the field to delete. + type: string + GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestCreateSelectionChoiceRequest: + id: >- + GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestCreateSelectionChoiceRequest + description: Request to create a selection choice. + type: object + properties: + fieldId: + description: Required. The selection field in which a choice will be created. + type: string + choice: + description: Required. The choice to create. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2FieldSelectionOptionsChoice + GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateSelectionChoicePropertiesRequest: + id: >- + GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateSelectionChoicePropertiesRequest + description: Request to update a choice property. + type: object + properties: + updateMask: + description: >- + The fields that should be updated. At least one field must be + specified. The root `properties` is implied and should not be + specified. A single `*` can be used as a short-hand for updating + every field. + type: string + format: google-fieldmask + fieldId: + description: Required. The selection field to update. + type: string + id: + description: Required. The choice to update. + type: string + properties: + description: Required. The choice properties to update. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceProperties + GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestEnableSelectionChoiceRequest: + id: >- + GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestEnableSelectionChoiceRequest + description: Request to enable a choice. type: object - description: Response for listing the permissions on a Label. properties: - nextPageToken: - description: The token of the next page in the response. + fieldId: + description: Required. The selection field in which a choice will be enabled. type: string - labelPermissions: - items: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelPermission' - type: array - description: Label permissions. - id: GoogleAppsDriveLabelsV2ListLabelPermissionsResponse - GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseCreateSelectionChoiceResponse: - type: object + id: + description: Required. Choice to enable. + type: string + GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestDisableSelectionChoiceRequest: id: >- - GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseCreateSelectionChoiceResponse - description: Response following Selection Choice create. + GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestDisableSelectionChoiceRequest + description: Request to disable a choice. + type: object properties: + updateMask: + description: >- + The fields that should be updated. At least one field must be + specified. The root `disabled_policy` is implied and should not be + specified. A single `*` can be used as a short-hand for updating + every field. + type: string + format: google-fieldmask fieldId: - description: The server-generated id of the field. + description: Required. The selection field in which a choice will be disabled. type: string id: - description: The server-generated ID of the created choice within the Field + description: Required. Choice to disable. type: string - GoogleAppsDriveLabelsV2TextLimits: - id: GoogleAppsDriveLabelsV2TextLimits - properties: - maxLength: - description: Maximum length allowed for a text Field type. - format: int32 - type: integer - minLength: - type: integer - format: int32 - description: Minimum length allowed for a text Field type. - type: object - description: Limits for text Field type. - GoogleAppsDriveLabelsV2FieldIntegerOptions: - description: Options for the Integer field type. - id: GoogleAppsDriveLabelsV2FieldIntegerOptions + disabledPolicy: + description: Required. The disabled policy to update. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LifecycleDisabledPolicy' + GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestDeleteSelectionChoiceRequest: + id: >- + GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestDeleteSelectionChoiceRequest + description: Request to delete a choice. type: object properties: - maxValue: + fieldId: + description: Required. The selection field from which a choice will be deleted. type: string - description: Output only. The maximum valid value for the integer field. - readOnly: true - format: int64 - minValue: - format: int64 + id: + description: Required. Choice to delete. type: string - readOnly: true - description: Output only. The minimum valid value for the integer field. - GoogleAppsDriveLabelsV2LabelSchemaCapabilities: - properties: - canUpdate: - description: Whether the user can change this label. - type: boolean - canEnable: - type: boolean - description: >- - Whether the user can enable this label. The user must have - permission and this label must be disabled. - canDisable: - description: >- - Whether the user can disable this label. The user must have - permission and this label must not already be disabled. - type: boolean - canDelete: - type: boolean - description: >- - Whether the user can delete this label. The user must have - permission and the label must be disabled. - id: GoogleAppsDriveLabelsV2LabelSchemaCapabilities + GoogleAppsDriveLabelsV2DeltaUpdateLabelResponse: + id: GoogleAppsDriveLabelsV2DeltaUpdateLabelResponse + description: Response for label update. type: object - description: The capabilities related to this label when editing the label. - GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseUpdateSelectionChoicePropertiesResponse: - id: >- - GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseUpdateSelectionChoicePropertiesResponse properties: - priority: - format: int32 - type: integer + responses: description: >- - The priority of the updated choice. The priority may change from - what was specified to assure contiguous priorities between choices - (1-n). - type: object - description: Response following update to Selection Choice properties. + The reply of the updates. This maps 1:1 with the updates, although + responses to some requests may be empty. + type: array + items: + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseResponse + updatedLabel: + description: >- + The label after updates were applied. This is only set if + `include_label_in_response` is `true` and there were no errors. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2Label' GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseResponse: - type: object id: GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseResponse + description: A single response from an update. + type: object properties: - updateFieldType: + updateLabel: + description: Updates basic properties of a label. $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseUpdateFieldTypeResponse - description: Update Field type and/or type options. - enableSelectionChoice: + #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseUpdateLabelPropertiesResponse + createField: + description: Creates a field. $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseEnableSelectionChoiceResponse - description: Enables a Choice within a Selection Field. + #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseCreateFieldResponse updateField: - description: Updates basic properties of a Field. + description: Updates basic properties of a field. $ref: >- #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseUpdateFieldPropertiesResponse - deleteField: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseDeleteFieldResponse - description: Deletes a Field from the label. - updateLabel: - description: Updated basic properties of a Label. - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseUpdateLabelPropertiesResponse - deleteSelectionChoice: - description: Deletes a Choice from a Selection Field. + updateFieldType: + description: Updates field type and/or type options. $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseDeleteSelectionChoiceResponse + #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseUpdateFieldTypeResponse enableField: + description: Enables field. $ref: >- #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseEnableFieldResponse - description: Enables Field. - createSelectionChoice: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseCreateSelectionChoiceResponse - description: Creates a new selection list option to add to a Selection Field. disableField: + description: Disables field. $ref: >- #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseDisableFieldResponse - description: Disables Field. + deleteField: + description: Deletes a field from the label. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseDeleteFieldResponse + createSelectionChoice: + description: Creates a selection list option to add to a selection field. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseCreateSelectionChoiceResponse updateSelectionChoiceProperties: - description: Updates a Choice within a Selection Field. + description: Updates a choice within a selection field. $ref: >- #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseUpdateSelectionChoicePropertiesResponse + enableSelectionChoice: + description: Enables a choice within a selection field. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseEnableSelectionChoiceResponse disableSelectionChoice: - description: Disables a Choice within a Selection Field. + description: Disables a choice within a selection field. $ref: >- #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseDisableSelectionChoiceResponse - createField: + deleteSelectionChoice: + description: Deletes a choice from a selection field. $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseCreateFieldResponse - description: Creates a new Field. - description: A single response from an update. - GoogleAppsDriveLabelsV2LabelDisplayHints: - description: UI display hints for rendering the label. + #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseDeleteSelectionChoiceResponse + GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseUpdateLabelPropertiesResponse: + id: >- + GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseUpdateLabelPropertiesResponse + description: Response following update to label properties. + type: object + properties: {} + GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseCreateFieldResponse: + id: GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseCreateFieldResponse + description: Response following field create. + type: object properties: - priority: - type: string - description: Order to display label in a list. - format: int64 - disabled: - type: boolean - description: Whether the label should be shown in the UI as disabled. - shownInApply: + id: description: >- - This label should be shown in the apply menu when applying values to - a Drive item. - type: boolean - hiddenInSearch: + The field of the created field. When left blank in a create request, + a key will be autogenerated and can be identified here. + type: string + priority: description: >- - This label should be hidden in the search menu when searching for - Drive items. - type: boolean + The priority of the created field. The priority may change from what + was specified to assure contiguous priorities between fields (1-n). + type: integer + format: int32 + GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseUpdateFieldPropertiesResponse: + id: >- + GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseUpdateFieldPropertiesResponse + description: Response following update to field properties. type: object - id: GoogleAppsDriveLabelsV2LabelDisplayHints - GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestDisableFieldRequest: properties: - id: - description: Required. Key of the Field to disable. - type: string - updateMask: - type: string - format: google-fieldmask + priority: description: >- - The fields that should be updated. At least one field must be - specified. The root `disabled_policy` is implied and should not be - specified. A single `*` can be used as short-hand for updating every - field. - disabledPolicy: - description: Required. Field Disabled Policy. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LifecycleDisabledPolicy' + The priority of the updated field. The priority may change from what + was specified to assure contiguous priorities between fields (1-n). + type: integer + format: int32 + GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseUpdateFieldTypeResponse: + id: GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseUpdateFieldTypeResponse + description: Response following update to field type. type: object - id: GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestDisableFieldRequest - description: Request to disable the Field. - GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestCreateSelectionChoiceRequest: + properties: {} + GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseEnableFieldResponse: + id: GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseEnableFieldResponse + description: Response following field enable. + type: object + properties: {} + GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseDisableFieldResponse: + id: GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseDisableFieldResponse + description: Response following field disable. + type: object + properties: {} + GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseDeleteFieldResponse: + id: GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseDeleteFieldResponse + description: Response following field delete. type: object + properties: {} + GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseCreateSelectionChoiceResponse: id: >- - GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestCreateSelectionChoiceRequest - description: Request to create a Selection Choice. + GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseCreateSelectionChoiceResponse + description: Response following selection choice create. + type: object properties: - choice: - description: Required. The Choice to create. - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2FieldSelectionOptionsChoice fieldId: - description: Required. The Selection Field in which a Choice will be created. + description: The server-generated ID of the field. type: string - GoogleAppsDriveLabelsV2LabelAppliedLabelPolicy: - id: GoogleAppsDriveLabelsV2LabelAppliedLabelPolicy + id: + description: The server-generated ID of the created choice within the field. + type: string + GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseUpdateSelectionChoicePropertiesResponse: + id: >- + GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseUpdateSelectionChoicePropertiesResponse + description: Response following update to selection choice properties. + type: object + properties: + priority: + description: >- + The priority of the updated choice. The priority may change from + what was specified to assure contiguous priorities between choices + (1-n). + type: integer + format: int32 + GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseEnableSelectionChoiceResponse: + id: >- + GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseEnableSelectionChoiceResponse + description: Response following choice enable. + type: object + properties: {} + GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseDisableSelectionChoiceResponse: + id: >- + GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseDisableSelectionChoiceResponse + description: Response following choice disable. + type: object + properties: {} + GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseDeleteSelectionChoiceResponse: + id: >- + GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseDeleteSelectionChoiceResponse + description: Response following choice delete. + type: object + properties: {} + GoogleAppsDriveLabelsV2UpdateLabelCopyModeRequest: + id: GoogleAppsDriveLabelsV2UpdateLabelCopyModeRequest + description: >- + Request to update the `CopyMode` of the given label. Changes to this + policy aren't revisioned, don't require publishing, and take effect + immediately. \ + type: object properties: copyMode: - enum: - - COPY_MODE_UNSPECIFIED - - DO_NOT_COPY - - ALWAYS_COPY - - COPY_APPLIABLE + description: >- + Required. Indicates how the applied label and field values should be + copied when a Drive item is copied. type: string enumDescriptions: - Copy mode unspecified. - >- - The applied label and field values are not copied by default when + The applied label and field values aren't copied by default when the Drive item it's applied to is copied. - >- The applied label and field values are always copied when the @@ -1533,553 +1708,442 @@ components: - >- The applied label and field values are copied if the label is appliable by the user making the copy. + enum: + - COPY_MODE_UNSPECIFIED + - DO_NOT_COPY + - ALWAYS_COPY + - COPY_APPLIABLE + useAdminAccess: description: >- - Indicates how the applied label and field values should be copied - when a Drive item is copied. - type: object - description: Behavior of this label when it's applied to Drive items. - GoogleAppsDriveLabelsV2FieldDisplayHints: - description: UI display hints for rendering a field. - type: object - id: GoogleAppsDriveLabelsV2FieldDisplayHints - properties: - shownInApply: - description: >- - This field should be shown in the apply menu when applying values to - a Drive item. - type: boolean - required: - type: boolean - description: Whether the field should be shown as required in the UI. - hiddenInSearch: + Set to `true` in order to use the user's admin credentials. The + server will verify the user is an admin for the label before + allowing access. type: boolean + languageCode: description: >- - This field should be hidden in the search menu when searching for - Drive items. - disabled: - type: boolean - description: Whether the field should be shown in the UI as disabled. - GoogleAppsDriveLabelsV2DeleteLabelPermissionRequest: - description: >- - Deletes a Label Permission. Permissions affect the Label resource as a - whole, are not revisioned, and do not require publishing. - id: GoogleAppsDriveLabelsV2DeleteLabelPermissionRequest - properties: - name: - description: Required. Label Permission resource name. + The BCP-47 language code to use for evaluating localized field + labels. When not specified, values in the default configured + language will be used. type: string - useAdminAccess: - type: boolean + view: description: >- - Set to `true` in order to use the user's admin credentials. The - server will verify the user is an admin for the Label before - allowing access. - type: object - GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseEnableFieldResponse: - id: GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseEnableFieldResponse - description: Response following Field enable. - properties: {} - type: object - GoogleAppsDriveLabelsV2DisableLabelRequest: + When specified, only certain fields belonging to the indicated view + will be returned. + type: string + enumDescriptions: + - >- + Implies the field mask: + `name,id,revision_id,label_type,properties.*` + - All possible fields. + enum: + - LABEL_VIEW_BASIC + - LABEL_VIEW_FULL + GoogleAppsDriveLabelsV2PublishLabelRequest: + id: GoogleAppsDriveLabelsV2PublishLabelRequest + description: Request to publish a label. type: object properties: useAdminAccess: description: >- Set to `true` in order to use the user's admin credentials. The - server will verify the user is an admin for the Label before + server will verify the user is an admin for the label before allowing access. type: boolean + writeControl: + description: >- + Provides control over how write requests are executed. Defaults to + unset, which means the last write wins. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2WriteControl' languageCode: - type: string description: >- The BCP-47 language code to use for evaluating localized field labels. When not specified, values in the default configured language will be used. + type: string + GoogleAppsDriveLabelsV2DisableLabelRequest: + id: GoogleAppsDriveLabelsV2DisableLabelRequest + description: Request to deprecate a published label. + type: object + properties: updateMask: description: >- The fields that should be updated. At least one field must be specified. The root `disabled_policy` is implied and should not be - specified. A single `*` can be used as short-hand for updating every - field. - format: google-fieldmask + specified. A single `*` can be used as a short-hand for updating + every field. type: string + format: google-fieldmask + useAdminAccess: + description: >- + Set to `true` in order to use the user's admin credentials. The + server will verify the user is an admin for the label before + allowing access. + type: boolean writeControl: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2WriteControl' description: >- Provides control over how write requests are executed. Defaults to - unset, which means last write wins. + unset, which means the last write wins. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2WriteControl' disabledPolicy: description: Disabled policy to use. $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LifecycleDisabledPolicy' - description: Request to deprecate a published Label. - id: GoogleAppsDriveLabelsV2DisableLabelRequest - GoogleAppsDriveLabelsV2LabelPermission: - id: GoogleAppsDriveLabelsV2LabelPermission - properties: - group: - type: string - description: Group resource name. - role: - description: The role the principal should have. - enum: - - LABEL_ROLE_UNSPECIFIED - - READER - - APPLIER - - ORGANIZER - - EDITOR - enumDescriptions: - - Unknown role. - - >- - A reader can read the label and associated metadata applied to - Drive items. - - >- - An applier can write associated metadata on Drive items in which - they also have write access to. Implies `READER`. - - >- - An organizer can pin this label in shared drives they manage and - add new appliers to the label. - - >- - Editors can make any update including deleting the label which - also deletes the associated Drive item metadata. Implies - `APPLIER`. - type: string - person: - type: string - description: Person resource name. - audience: - type: string + languageCode: description: >- - Audience to grant a role to. The magic value of `audiences/default` - may be used to apply the role to the default audience in the context - of the organization that owns the Label. - email: + The BCP-47 language code to use for evaluating localized field + labels. When not specified, values in the default configured + language will be used. type: string + GoogleAppsDriveLabelsV2EnableLabelRequest: + id: GoogleAppsDriveLabelsV2EnableLabelRequest + description: Request to enable a label. + type: object + properties: + useAdminAccess: description: >- - Specifies the email address for a user or group pricinpal. Not - populated for audience principals. User and Group permissions may - only be inserted using email address. On update requests, if email - address is specified, no principal should be specified. - name: - description: Resource name of this permission. + Set to `true` in order to use the user's admin credentials. The + server will verify the user is an admin for the label before + allowing access. + type: boolean + writeControl: + description: >- + Provides control over how write requests are executed. Defaults to + unset, which means the last write wins. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2WriteControl' + languageCode: + description: >- + The BCP-47 language code to use for evaluating localized field + labels. When not specified, values in the default configured + language will be used. type: string + GoogleProtobufEmpty: + id: GoogleProtobufEmpty + description: >- + A generic empty message that you can re-use to avoid defining duplicated + empty messages in your APIs. A typical example is to use it as the + request or the response type of an API method. For instance: service Foo + { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } + type: object + properties: {} + GoogleAppsDriveLabelsV2ListLabelPermissionsResponse: + id: GoogleAppsDriveLabelsV2ListLabelPermissionsResponse + description: Response for listing the permissions on a label. type: object + properties: + labelPermissions: + description: Label permissions. + type: array + items: + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelPermission' + nextPageToken: + description: The token of the next page in the response. + type: string + GoogleAppsDriveLabelsV2LabelPermission: + id: GoogleAppsDriveLabelsV2LabelPermission description: >- The permission that applies to a principal (user, group, audience) on a label. - GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestEnableSelectionChoiceRequest: - id: >- - GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestEnableSelectionChoiceRequest - properties: - fieldId: - description: Required. The Selection Field in which a Choice will be enabled. - type: string - id: - type: string - description: Required. Choice to enable. - description: Request to enable a Choice. - type: object - GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestRequest: type: object - id: GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestRequest - description: A single kind of update to apply to a Label. - properties: - deleteSelectionChoice: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestDeleteSelectionChoiceRequest - description: Delete a Choice within a Selection Field. - updateFieldType: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateFieldTypeRequest - description: Update Field type and/or type options. - enableSelectionChoice: - description: Enable a Choice within a Selection Field. - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestEnableSelectionChoiceRequest - enableField: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestEnableFieldRequest - description: Enables the Field. - disableField: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestDisableFieldRequest - description: Disables the Field. - updateSelectionChoiceProperties: - description: Update a Choice properties within a Selection Field. - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateSelectionChoicePropertiesRequest - deleteField: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestDeleteFieldRequest - description: Deletes a Field from the label. - updateField: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateFieldPropertiesRequest - description: Updates basic properties of a Field. - disableSelectionChoice: - description: Disable a Choice within a Selection Field. - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestDisableSelectionChoiceRequest - createField: - description: Creates a new Field. - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestCreateFieldRequest - updateLabel: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateLabelPropertiesRequest - description: Updates the Label properties. - createSelectionChoice: - description: Creates Choice within a Selection field. - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestCreateSelectionChoiceRequest - GoogleAppsDriveLabelsV2LabelLock: properties: - createTime: - readOnly: true - type: string - description: Output only. The time this LabelLock was created. - format: google-datetime - capabilities: - description: Output only. The user's capabilities on this LabelLock. - readOnly: true - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelLockCapabilities' - fieldId: - type: string - description: >- - The ID of the Field that should be locked. Empty if the whole Label - should be locked. - name: - description: Output only. Resource name of this LabelLock. - readOnly: true - type: string - choiceId: + person: + description: Person resource name. type: string - description: >- - The ID of the Selection Field Choice that should be locked. If - present, `field_id` must also be present. - state: - enum: - - STATE_UNSPECIFIED - - ACTIVE - - DELETING - enumDescriptions: - - Unknown state. - - The LabelLock is active and is being enforced by the server. - - >- - The LabelLock is being deleted. The LabelLock will continue to be - enforced by the server until it has been fully removed. - readOnly: true + group: + description: Group resource name. type: string - description: Output only. This LabelLock's state. - creator: + audience: description: >- - Output only. The user whose credentials were used to create the - LabelLock. This will not be present if no user was responsible for - creating the LabelLock. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2UserInfo' - readOnly: true - deleteTime: - readOnly: true + Audience to grant a role to. The magic value of `audiences/default` + may be used to apply the role to the default audience in the context + of the organization that owns the label. + type: string + name: + description: Resource name of this permission. type: string + email: description: >- - Output only. A timestamp indicating when this LabelLock was - scheduled for deletion. This will be present only if this LabelLock - is in the DELETING state. - format: google-datetime - description: A Lock that can be applied to a Label, Field, or Choice. - id: GoogleAppsDriveLabelsV2LabelLock - type: object - GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestDeleteFieldRequest: - id: GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestDeleteFieldRequest - description: Request to delete the Field. - type: object - properties: - id: - description: Required. ID of the Field to delete. + Specifies the email address for a user or group principal. Not + populated for audience principals. User and group permissions may + only be inserted using an email address. On update requests, if + email address is specified, no principal should be specified. type: string - GoogleAppsDriveLabelsV2UpdateLabelCopyModeRequest: - properties: - copyMode: - enum: - - COPY_MODE_UNSPECIFIED - - DO_NOT_COPY - - ALWAYS_COPY - - COPY_APPLIABLE + role: + description: The role the principal should have. type: string enumDescriptions: - - Copy mode unspecified. + - Unknown role. - >- - The applied label and field values are not copied by default when - the Drive item it's applied to is copied. + A reader can read the label and associated metadata applied to + Drive items. - >- - The applied label and field values are always copied when the - Drive item it's applied to is copied. Only admins can use this - mode. + An applier can write associated metadata on Drive items in which + they also have write access to. Implies `READER`. - >- - The applied label and field values are copied if the label is - appliable by the user making the copy. - description: >- - Required. Indicates how the applied Label, and Field values should - be copied when a Drive item is copied. + An organizer can pin this label in shared drives they manage and + add new appliers to the label. + - >- + Editors can make any update including deleting the label which + also deletes the associated Drive item metadata. Implies + `APPLIER`. + enum: + - LABEL_ROLE_UNSPECIFIED + - READER + - APPLIER + - ORGANIZER + - EDITOR + GoogleAppsDriveLabelsV2BatchUpdateLabelPermissionsRequest: + id: GoogleAppsDriveLabelsV2BatchUpdateLabelPermissionsRequest + description: Updates one or more label permissions. + type: object + properties: + requests: + description: Required. The request message specifying the resources to update. + type: array + items: + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2UpdateLabelPermissionRequest useAdminAccess: + description: >- + Set to `true` in order to use the user's admin credentials. The + server will verify the user is an admin for the label before + allowing access. If this is set, the `use_admin_access` field in the + `UpdateLabelPermissionRequest` messages must either be empty or + match this field. type: boolean + GoogleAppsDriveLabelsV2UpdateLabelPermissionRequest: + id: GoogleAppsDriveLabelsV2UpdateLabelPermissionRequest + description: >- + Updates a label permission. Permissions affect the label resource as a + whole, aren't revisioned, and don't require publishing. + type: object + properties: + parent: + description: Required. The parent label resource name. + type: string + labelPermission: + description: Required. The permission to create or update on the label. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelPermission' + useAdminAccess: description: >- Set to `true` in order to use the user's admin credentials. The - server will verify the user is an admin for the Label before + server will verify the user is an admin for the label before allowing access. - view: + type: boolean + GoogleAppsDriveLabelsV2BatchUpdateLabelPermissionsResponse: + id: GoogleAppsDriveLabelsV2BatchUpdateLabelPermissionsResponse + description: Response for updating one or more label permissions. + type: object + properties: + permissions: + description: Required. Permissions updated. + type: array + items: + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelPermission' + GoogleAppsDriveLabelsV2BatchDeleteLabelPermissionsRequest: + id: GoogleAppsDriveLabelsV2BatchDeleteLabelPermissionsRequest + description: Deletes one or more label permissions. + type: object + properties: + requests: + description: Required. The request message specifying the resources to update. + type: array + items: + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2DeleteLabelPermissionRequest + useAdminAccess: description: >- - When specified, only certain fields belonging to the indicated view - will be returned. - enumDescriptions: - - >- - Implies the field mask: - `name,id,revision_id,label_type,properties.*` - - All possible fields. - type: string - enum: - - LABEL_VIEW_BASIC - - LABEL_VIEW_FULL - languageCode: + Set to `true` in order to use the user's admin credentials. The + server will verify the user is an admin for the label before + allowing access. If this is set, the `use_admin_access` field in the + `DeleteLabelPermissionRequest` messages must either be empty or + match this field. + type: boolean + GoogleAppsDriveLabelsV2DeleteLabelPermissionRequest: + id: GoogleAppsDriveLabelsV2DeleteLabelPermissionRequest + description: >- + Deletes a label permission. Permissions affect the label resource as a + whole, aren't revisioned, and don't require publishing. + type: object + properties: + name: + description: Required. Label permission resource name. type: string + useAdminAccess: description: >- - The BCP-47 language code to use for evaluating localized field - labels. When not specified, values in the default configured - language will be used. - description: >- - Request to update the `CopyMode` of the given Label. Changes to this - policy are not revisioned, do not require publishing, and take effect - immediately. \ + Set to `true` in order to use the user's admin credentials. The + server will verify the user is an admin for the label before + allowing access. + type: boolean + GoogleAppsDriveLabelsV2ListLabelLocksResponse: + id: GoogleAppsDriveLabelsV2ListLabelLocksResponse + description: The response to a `ListLabelLocksRequest`. type: object - id: GoogleAppsDriveLabelsV2UpdateLabelCopyModeRequest - GoogleAppsDriveLabelsV2Field: - description: >- - Defines a field that has a display name, data type, and other - configuration options. This field defines the kind of metadata that may - be set on a Drive item. + properties: + labelLocks: + description: Label locks. + type: array + items: + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelLock' + nextPageToken: + description: The token of the next page in the response. + type: string + GoogleAppsDriveLabelsV2LabelLock: + id: GoogleAppsDriveLabelsV2LabelLock + description: A lock that can be applied to a label, field, or choice. type: object properties: - userOptions: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldUserOptions' - description: User field options. - creator: - description: Output only. The user who created this field. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2UserInfo' - readOnly: true - selectionOptions: - description: Selection field options. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldSelectionOptions' - lifecycle: - description: Output only. The lifecycle of this field. - readOnly: true - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2Lifecycle' - dateOptions: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldDateOptions' - description: Date field options. - integerOptions: - description: Integer field options. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldIntegerOptions' - disabler: - description: >- - Output only. The user who disabled this field. This value has no - meaning when the field is not disabled. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2UserInfo' - readOnly: true - publisher: - readOnly: true - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2UserInfo' - description: >- - Output only. The user who published this field. This value has no - meaning when the field is not published. - lockStatus: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LockStatus' - description: Output only. The LockStatus of this field. - readOnly: true - disableTime: + name: + description: Output only. Resource name of this label lock. readOnly: true - format: google-datetime + type: string + fieldId: description: >- - Output only. The time this field was disabled. This value has no - meaning when the field is not disabled. + The ID of the field that should be locked. Empty if the whole label + should be locked. type: string - appliedCapabilities: - readOnly: true + choiceId: description: >- - Output only. The capabilities this user has on this field and its - value when the label is applied on Drive items. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldAppliedCapabilities' - schemaCapabilities: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldSchemaCapabilities' - description: Output only. The capabilities this user has when editing this field. + The ID of the selection field choice that should be locked. If + present, `field_id` must also be present. + type: string + createTime: + description: Output only. The time this label lock was created. readOnly: true - queryKey: type: string + format: google-datetime + creator: description: >- - Output only. The key to use when constructing Drive search queries - to find files based on values defined for this field on files. For - example, "`{query_key}` > 2001-01-01". + Output only. The user whose credentials were used to create the + label lock. Not present if no user was responsible for creating the + label lock. readOnly: true - id: + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2UserInfo' + deleteTime: description: >- - Output only. The key of a field, unique within a label or library. - This value is autogenerated. Matches the regex: `([a-zA-Z0-9])+` + Output only. A timestamp indicating when this label lock was + scheduled for deletion. Present only if this label lock is in the + `DELETING` state. readOnly: true type: string - createTime: - type: string - readOnly: true - description: Output only. The time this field was created. format: google-datetime - displayHints: - description: Output only. UI display hints for rendering a field. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldDisplayHints' - readOnly: true - textOptions: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldTextOptions' - description: Text field options. - updater: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2UserInfo' - description: Output only. The user who modified this field. + capabilities: + description: Output only. The user's capabilities on this label lock. readOnly: true - updateTime: + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelLockCapabilities' + state: + description: Output only. This label lock's state. readOnly: true - description: Output only. The time this field was updated. - format: google-datetime type: string - properties: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2FieldProperties' - description: The basic properties of the field. - id: GoogleAppsDriveLabelsV2Field - GoogleAppsDriveLabelsV2DeltaUpdateLabelRequest: + enumDescriptions: + - Unknown state. + - The label lock is active and is being enforced by the server. + - >- + The label lock is being deleted. The label lock will continue to + be enforced by the server until it has been fully removed. + enum: + - STATE_UNSPECIFIED + - ACTIVE + - DELETING + GoogleAppsDriveLabelsV2LabelLockCapabilities: + id: GoogleAppsDriveLabelsV2LabelLockCapabilities + description: A description of a user's capabilities on a label lock. + type: object + properties: + canViewPolicy: + description: True if the user is authorized to view the policy. + type: boolean + GoogleAppsDriveLabelsV2UpdateLabelEnabledAppSettingsRequest: + id: GoogleAppsDriveLabelsV2UpdateLabelEnabledAppSettingsRequest description: >- - The set of requests for updating aspects of a Label. If any request is - not valid, no requests will be applied. + Request to update the `EnabledAppSettings` of the given label. This + change is not revisioned, doesn't require publishing, and takes effect + immediately. \ type: object - id: GoogleAppsDriveLabelsV2DeltaUpdateLabelRequest properties: - requests: - description: >- - A list of updates to apply to the Label. Requests will be applied in - the order they are specified. - items: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestRequest - type: array + enabledAppSettings: + description: Required. The new `EnabledAppSettings` value for the label. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelEnabledAppSettings' useAdminAccess: description: >- - Set to `true` in order to use the user's admin credentials. The - server will verify the user is an admin for the Label before - allowing access. + Optional. Set to `true` in order to use the user's admin + credentials. The server will verify the user is an admin for the + label before allowing access. type: boolean - writeControl: - description: Provides control over how write requests are executed. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2WriteControl' + languageCode: + description: >- + Optional. The BCP-47 language code to use for evaluating localized + field labels. When not specified, values in the default configured + language will be used. + type: string view: - enum: - - LABEL_VIEW_BASIC - - LABEL_VIEW_FULL + description: >- + Optional. When specified, only certain fields belonging to the + indicated view will be returned. + type: string enumDescriptions: - >- Implies the field mask: `name,id,revision_id,label_type,properties.*` - All possible fields. - description: >- - When specified, only certain fields belonging to the indicated view - will be returned. - type: string - languageCode: - type: string - description: >- - The BCP-47 language code to use for evaluating localized Field - labels when `include_label_in_response` is `true`. - GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseUpdateLabelPropertiesResponse: - id: >- - GoogleAppsDriveLabelsV2DeltaUpdateLabelResponseUpdateLabelPropertiesResponse - description: Response following update to Label properties. - type: object - properties: {} - GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestDisableSelectionChoiceRequest: - description: Request to disable a Choice. - properties: - fieldId: - type: string - description: Required. The Selection Field in which a Choice will be disabled. - disabledPolicy: - description: Required. The disabled policy to update. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LifecycleDisabledPolicy' - updateMask: - type: string - description: >- - The fields that should be updated. At least one field must be - specified. The root `disabled_policy` is implied and should not be - specified. A single `*` can be used as short-hand for updating every - field. - format: google-fieldmask - id: - description: Required. Choice to disable. - type: string - type: object - id: >- - GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestDisableSelectionChoiceRequest + enum: + - LABEL_VIEW_BASIC + - LABEL_VIEW_FULL parameters: - key: - description: >- - API key. Your API key identifies your project and provides you with API - access, quota, and reports. Required unless you provide an OAuth 2.0 - token. + access_token: + description: OAuth access token. in: query - name: key + name: access_token + schema: + type: string + alt: + description: Data format for response. + in: query + name: alt schema: type: string + enum: + - json + - media + - proto callback: description: JSONP in: query name: callback schema: type: string - uploadType: - description: Legacy upload protocol for media (e.g. "media", "multipart"). + fields: + description: Selector specifying which fields to include in a partial response. in: query - name: uploadType + name: fields schema: type: string - quotaUser: + key: description: >- - Available to use for quota purposes for server-side applications. Can be - any arbitrary string assigned to a user, but should not exceed 40 - characters. - in: query - name: quotaUser - schema: - type: string - _.xgafv: - description: V1 error format. + API key. Your API key identifies your project and provides you with API + access, quota, and reports. Required unless you provide an OAuth 2.0 + token. in: query - name: $.xgafv + name: key schema: type: string - enum: - - '1' - - '2' oauth_token: description: OAuth 2.0 token for the current user. in: query name: oauth_token schema: type: string - alt: - description: Data format for response. + prettyPrint: + description: Returns response with indentations and line breaks. in: query - name: alt + name: prettyPrint schema: - type: string - enum: - - json - - media - - proto - fields: - description: Selector specifying which fields to include in a partial response. + type: boolean + quotaUser: + description: >- + Available to use for quota purposes for server-side applications. Can be + any arbitrary string assigned to a user, but should not exceed 40 + characters. in: query - name: fields + name: quotaUser schema: type: string upload_protocol: @@ -2088,37 +2152,22 @@ components: name: upload_protocol schema: type: string - access_token: - description: OAuth access token. + uploadType: + description: Legacy upload protocol for media (e.g. "media", "multipart"). in: query - name: access_token + name: uploadType schema: type: string - prettyPrint: - description: Returns response with indentations and line breaks. + _.xgafv: + description: V1 error format. in: query - name: prettyPrint + name: $.xgafv schema: - type: boolean + type: string + enum: + - '1' + - '2' x-stackQL-resources: - limits_label: - id: googleworkspace.drivelabelsv2.limits_label - name: limits_label - title: Limits_label - methods: - get_label: - operation: - $ref: '#/paths/~1v2~1limits~1label/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/limits_label/methods/get_label' - insert: [] - update: [] - replace: [] - delete: [] users_capabilities: id: googleworkspace.drivelabelsv2.users_capabilities name: users_capabilities @@ -2138,52 +2187,33 @@ components: update: [] replace: [] delete: [] - labels_label_copy_mode: - id: googleworkspace.drivelabelsv2.labels_label_copy_mode - name: labels_label_copy_mode - title: Labels_label_copy_mode - methods: - update_label_copy_mode: - operation: - $ref: '#/paths/~1v2~1labels~1{labelsId}:updateLabelCopyMode/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: - - $ref: >- - #/components/x-stackQL-resources/labels_label_copy_mode/methods/update_label_copy_mode - replace: [] - delete: [] labels: id: googleworkspace.drivelabelsv2.labels name: labels title: Labels methods: - enable: + list: operation: - $ref: '#/paths/~1v2~1labels~1{labelsId}:enable/post' + $ref: '#/paths/~1v2~1labels/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.labels create: operation: $ref: '#/paths/~1v2~1labels/post' response: mediaType: application/json openAPIDocKey: '200' - list: + get: operation: - $ref: '#/paths/~1v2~1labels/get' + $ref: '#/paths/~1v2~1labels~1{labelsId}/get' response: mediaType: application/json openAPIDocKey: '200' - objectKey: $.labels - publish: + delete: operation: - $ref: '#/paths/~1v2~1labels~1{labelsId}:publish/post' + $ref: '#/paths/~1v2~1labels~1{labelsId}/delete' response: mediaType: application/json openAPIDocKey: '200' @@ -2193,21 +2223,21 @@ components: response: mediaType: application/json openAPIDocKey: '200' - delete: + publish: operation: - $ref: '#/paths/~1v2~1labels~1{labelsId}/delete' + $ref: '#/paths/~1v2~1labels~1{labelsId}:publish/post' response: mediaType: application/json openAPIDocKey: '200' - get: + disable: operation: - $ref: '#/paths/~1v2~1labels~1{labelsId}/get' + $ref: '#/paths/~1v2~1labels~1{labelsId}:disable/post' response: mediaType: application/json openAPIDocKey: '200' - disable: + enable: operation: - $ref: '#/paths/~1v2~1labels~1{labelsId}:disable/post' + $ref: '#/paths/~1v2~1labels~1{labelsId}:enable/post' response: mediaType: application/json openAPIDocKey: '200' @@ -2221,6 +2251,25 @@ components: replace: [] delete: - $ref: '#/components/x-stackQL-resources/labels/methods/delete' + labels_label_copy_mode: + id: googleworkspace.drivelabelsv2.labels_label_copy_mode + name: labels_label_copy_mode + title: Labels_label_copy_mode + methods: + update_label_copy_mode: + operation: + $ref: '#/paths/~1v2~1labels~1{labelsId}:updateLabelCopyMode/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: [] + insert: [] + update: + - $ref: >- + #/components/x-stackQL-resources/labels_label_copy_mode/methods/update_label_copy_mode + replace: [] + delete: [] labels_permissions: id: googleworkspace.drivelabelsv2.labels_permissions name: labels_permissions @@ -2260,17 +2309,17 @@ components: response: mediaType: application/json openAPIDocKey: '200' - batch_update: + delete: operation: $ref: >- - #/paths/~1v2~1labels~1{labelsId}~1revisions~1{revisionsId}~1permissions:batchUpdate/post + #/paths/~1v2~1labels~1{labelsId}~1revisions~1{revisionsId}~1permissions~1{permissionsId}/delete response: mediaType: application/json openAPIDocKey: '200' - delete: + batch_update: operation: $ref: >- - #/paths/~1v2~1labels~1{labelsId}~1revisions~1{revisionsId}~1permissions~1{permissionsId}/delete + #/paths/~1v2~1labels~1{labelsId}~1revisions~1{revisionsId}~1permissions:batchUpdate/post response: mediaType: application/json openAPIDocKey: '200' @@ -2292,6 +2341,26 @@ components: delete: - $ref: '#/components/x-stackQL-resources/permissions/methods/delete' - $ref: '#/components/x-stackQL-resources/permissions/methods/batch_delete' + labels_label_enabled_app_settings: + id: googleworkspace.drivelabelsv2.labels_label_enabled_app_settings + name: labels_label_enabled_app_settings + title: Labels_label_enabled_app_settings + methods: + update_label_enabled_app_settings: + operation: + $ref: >- + #/paths/~1v2~1labels~1{labelsId}:updateLabelEnabledAppSettings/post + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: [] + insert: [] + update: + - $ref: >- + #/components/x-stackQL-resources/labels_label_enabled_app_settings/methods/update_label_enabled_app_settings + replace: [] + delete: [] revisions_permissions: id: googleworkspace.drivelabelsv2.revisions_permissions name: revisions_permissions @@ -2317,39 +2386,55 @@ components: name: locks title: Locks methods: - list: + list: + operation: + $ref: '#/paths/~1v2~1labels~1{labelsId}~1locks/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.labelLocks + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/locks/methods/list' + insert: [] + update: [] + replace: [] + delete: [] + limits_label: + id: googleworkspace.drivelabelsv2.limits_label + name: limits_label + title: Limits_label + methods: + get_label: operation: - $ref: '#/paths/~1v2~1labels~1{labelsId}~1locks/get' + $ref: '#/paths/~1v2~1limits~1label/get' response: mediaType: application/json openAPIDocKey: '200' - objectKey: $.labelLocks sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/locks/methods/list' + - $ref: '#/components/x-stackQL-resources/limits_label/methods/get_label' insert: [] update: [] replace: [] delete: [] paths: - /v2/limits/label: + /v2/users/{usersId}/capabilities: parameters: &ref_1 - - $ref: '#/components/parameters/key' - - $ref: '#/components/parameters/callback' - - $ref: '#/components/parameters/uploadType' - - $ref: '#/components/parameters/quotaUser' - - $ref: '#/components/parameters/_.xgafv' - - $ref: '#/components/parameters/oauth_token' + - $ref: '#/components/parameters/access_token' - $ref: '#/components/parameters/alt' + - $ref: '#/components/parameters/callback' - $ref: '#/components/parameters/fields' - - $ref: '#/components/parameters/upload_protocol' - - $ref: '#/components/parameters/access_token' + - $ref: '#/components/parameters/key' + - $ref: '#/components/parameters/oauth_token' - $ref: '#/components/parameters/prettyPrint' + - $ref: '#/components/parameters/quotaUser' + - $ref: '#/components/parameters/upload_protocol' + - $ref: '#/components/parameters/uploadType' + - $ref: '#/components/parameters/_.xgafv' get: - description: >- - Get the constraints on the structure of a Label; such as, the maximum - number of Fields allowed and maximum length of the label title. - operationId: drivelabels.limits.getLabel + description: Gets the user capabilities. + operationId: drivelabels.users.getCapabilities security: - Oauth2: - https://www.googleapis.com/auth/drive.admin.labels @@ -2373,17 +2458,24 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelLimits' + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2UserCapabilities' parameters: + - in: path + name: usersId + required: true + schema: + type: string - in: query - name: name + name: customer schema: type: string - /v2/users/{usersId}/capabilities: + /v2/labels: parameters: *ref_1 get: - description: Gets the user capabilities. - operationId: drivelabels.users.getCapabilities + description: >- + List labels. For more information, see [Search for + labels](https://developers.google.com/workspace/drive/labels/guides/search-label). + operationId: drivelabels.labels.list security: - Oauth2: - https://www.googleapis.com/auth/drive.admin.labels @@ -2407,30 +2499,51 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2UserCapabilities' + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2ListLabelsResponse' parameters: - - in: path - name: usersId - required: true + - in: query + name: useAdminAccess + schema: + type: boolean + - in: query + name: minimumRole schema: type: string + - in: query + name: publishedOnly + schema: + type: boolean - in: query name: customer schema: type: string - /v2/labels/{labelsId}:updateLabelCopyMode: - parameters: *ref_1 + - in: query + name: languageCode + schema: + type: string + - in: query + name: pageSize + schema: + type: integer + format: int32 + - in: query + name: pageToken + schema: + type: string + - in: query + name: view + schema: + type: string post: description: >- - Updates a Label's `CopyMode`. Changes to this policy are not revisioned, - do not require publishing, and take effect immediately. - operationId: drivelabels.labels.updateLabelCopyMode + Creates a label. For more information, see [Create and publish a + label](https://developers.google.com/workspace/drive/labels/guides/create-label). + operationId: drivelabels.labels.create requestBody: content: application/json: schema: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2UpdateLabelCopyModeRequest + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2Label' security: - Oauth2: - https://www.googleapis.com/auth/drive.admin.labels @@ -2448,34 +2561,43 @@ paths: schema: $ref: '#/components/schemas/GoogleAppsDriveLabelsV2Label' parameters: - - in: path - name: labelsId - required: true + - in: query + name: useAdminAccess + schema: + type: boolean + - in: query + name: languageCode schema: type: string - /v2/labels/{labelsId}:enable: + /v2/labels/{labelsId}: parameters: *ref_1 - post: + get: description: >- - Enable a disabled Label and restore it to its published state. This will - result in a new published revision based on the current disabled - published revision. If there is an existing disabled draft revision, a - new revision will be created based on that draft and will be enabled. - operationId: drivelabels.labels.enable - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2EnableLabelRequest' + Get a label by its resource name. For more information, see [Search for + labels](https://developers.google.com/workspace/drive/labels/guides/search-label). + Resource name may be any of: * `labels/{id}` - See `labels/{id}@latest` + * `labels/{id}@latest` - Gets the latest revision of the label. * + `labels/{id}@published` - Gets the current published revision of the + label. * `labels/{id}@{revision_id}` - Gets the label at the specified + revision ID. + operationId: drivelabels.labels.get security: - Oauth2: - https://www.googleapis.com/auth/drive.admin.labels Oauth2c: - https://www.googleapis.com/auth/drive.admin.labels + - Oauth2: + - https://www.googleapis.com/auth/drive.admin.labels.readonly + Oauth2c: + - https://www.googleapis.com/auth/drive.admin.labels.readonly - Oauth2: - https://www.googleapis.com/auth/drive.labels Oauth2c: - https://www.googleapis.com/auth/drive.labels + - Oauth2: + - https://www.googleapis.com/auth/drive.labels.readonly + Oauth2c: + - https://www.googleapis.com/auth/drive.labels.readonly responses: '200': description: Successful response @@ -2489,33 +2611,6 @@ paths: required: true schema: type: string - /v2/labels: - parameters: *ref_1 - post: - description: Creates a new Label. - operationId: drivelabels.labels.create - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2Label' - security: - - Oauth2: - - https://www.googleapis.com/auth/drive.admin.labels - Oauth2c: - - https://www.googleapis.com/auth/drive.admin.labels - - Oauth2: - - https://www.googleapis.com/auth/drive.labels - Oauth2c: - - https://www.googleapis.com/auth/drive.labels - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2Label' - parameters: - in: query name: useAdminAccess schema: @@ -2524,40 +2619,38 @@ paths: name: languageCode schema: type: string - get: - description: List labels. - operationId: drivelabels.labels.list + - in: query + name: view + schema: + type: string + delete: + description: >- + Permanently deletes a label and related metadata on Drive items. For + more information, see [Disable, enable, and delete a + label](https://developers.google.com/workspace/drive/labels/guides/disable-delete-label). + Once deleted, the label and related Drive item metadata will be deleted. + Only draft labels and disabled labels may be deleted. + operationId: drivelabels.labels.delete security: - Oauth2: - https://www.googleapis.com/auth/drive.admin.labels Oauth2c: - https://www.googleapis.com/auth/drive.admin.labels - - Oauth2: - - https://www.googleapis.com/auth/drive.admin.labels.readonly - Oauth2c: - - https://www.googleapis.com/auth/drive.admin.labels.readonly - Oauth2: - https://www.googleapis.com/auth/drive.labels Oauth2c: - https://www.googleapis.com/auth/drive.labels - - Oauth2: - - https://www.googleapis.com/auth/drive.labels.readonly - Oauth2c: - - https://www.googleapis.com/auth/drive.labels.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2ListLabelsResponse' + $ref: '#/components/schemas/GoogleProtobufEmpty' parameters: - - in: query - name: customer - schema: - type: string - - in: query - name: pageToken + - in: path + name: labelsId + required: true schema: type: string - in: query @@ -2565,50 +2658,26 @@ paths: schema: type: boolean - in: query - name: pageSize - schema: - type: integer - format: int32 - - in: query - name: view - schema: - type: string - - in: query - name: minimumRole - schema: - type: string - - in: query - name: languageCode + name: writeControl.requiredRevisionId schema: type: string - - in: query - name: publishedOnly - schema: - type: boolean - /v2/labels/{labelsId}:publish: + /v2/labels/{labelsId}:delta: parameters: *ref_1 post: description: >- - Publish all draft changes to the Label. Once published, the Label may - not return to its draft state. See - `google.apps.drive.labels.v2.Lifecycle` for more information. Publishing - a Label will result in a new published revision. All previous draft - revisions will be deleted. Previous published revisions will be kept but - are subject to automated deletion as needed. Once published, some - changes are no longer permitted. Generally, any change that would - invalidate or cause new restrictions on existing metadata related to the - Label will be rejected. For example, the following changes to a Label - will be rejected after the Label is published: * The label cannot be - directly deleted. It must be disabled first, then deleted. * - Field.FieldType cannot be changed. * Changes to Field validation options - cannot reject something that was previously accepted. * Reducing the max - entries. - operationId: drivelabels.labels.publish + Updates a single label by applying a set of update requests resulting in + a new draft revision. For more information, see [Update a + label](https://developers.google.com/workspace/drive/labels/guides/update-label). + The batch update is all-or-nothing: If any of the update requests are + invalid, no changes are applied. The resulting draft revision must be + published before the changes may be used with Drive items. + operationId: drivelabels.labels.delta requestBody: content: application/json: schema: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2PublishLabelRequest' + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequest security: - Oauth2: - https://www.googleapis.com/auth/drive.admin.labels @@ -2624,29 +2693,27 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2Label' + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelResponse parameters: - in: path name: labelsId required: true schema: type: string - /v2/labels/{labelsId}:delta: + /v2/labels/{labelsId}:updateLabelCopyMode: parameters: *ref_1 post: description: >- - Updates a single Label by applying a set of update requests resulting in - a new draft revision. The batch update is all-or-nothing: If any of the - update requests are invalid, no changes are applied. The resulting draft - revision must be published before the changes may be used with Drive - Items. - operationId: drivelabels.labels.delta + Updates a label's `CopyMode`. Changes to this policy aren't revisioned, + don't require publishing, and take effect immediately. + operationId: drivelabels.labels.updateLabelCopyMode requestBody: content: application/json: schema: $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequest + #/components/schemas/GoogleAppsDriveLabelsV2UpdateLabelCopyModeRequest security: - Oauth2: - https://www.googleapis.com/auth/drive.admin.labels @@ -2662,28 +2729,40 @@ paths: content: application/json: schema: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelResponse + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2Label' parameters: - in: path name: labelsId required: true schema: type: string - /v2/labels/{labelsId}/permissions: + /v2/labels/{labelsId}:publish: parameters: *ref_1 - patch: + post: description: >- - Updates a Label's permissions. If a permission for the indicated - principal doesn't exist, a new Label Permission is created, otherwise - the existing permission is updated. Permissions affect the Label - resource as a whole, are not revisioned, and do not require publishing. - operationId: drivelabels.labels.updatePermissions + Publish all draft changes to the label. Once published, the label may + not return to its draft state. For more information, see [Create and + publish a + label](https://developers.google.com/workspace/drive/labels/guides/create-label). + Publishing a label will result in a new published revision. All previous + draft revisions will be deleted. Previous published revisions will be + kept but are subject to automated deletion as needed. For more + information, see [Label + lifecycle](https://developers.google.com/workspace/drive/labels/guides/label-lifecycle). + Once published, some changes are no longer permitted. Generally, any + change that would invalidate or cause new restrictions on existing + metadata related to the label will be rejected. For example, the + following changes to a label will be rejected after the label is + published: * The label cannot be directly deleted. It must be disabled + first, then deleted. * `Field.FieldType` cannot be changed. * Changes to + field validation options cannot reject something that was previously + accepted. * Reducing the maximum entries. + operationId: drivelabels.labels.publish requestBody: content: application/json: schema: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelPermission' + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2PublishLabelRequest' security: - Oauth2: - https://www.googleapis.com/auth/drive.admin.labels @@ -2699,76 +2778,70 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelPermission' + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2Label' parameters: - in: path name: labelsId required: true schema: type: string - - in: query - name: useAdminAccess - schema: - type: boolean - get: - description: Lists a Label's permissions. - operationId: drivelabels.labels.permissions.list + /v2/labels/{labelsId}:disable: + parameters: *ref_1 + post: + description: >- + Disable a published label. For more information, see [Disable, enable, + and delete a + label](https://developers.google.com/workspace/drive/labels/guides/disable-delete-label). + Disabling a label will result in a new disabled published revision based + on the current published revision. If there's a draft revision, a new + disabled draft revision will be created based on the latest draft + revision. Older draft revisions will be deleted. Once disabled, a label + may be deleted with `DeleteLabel`. + operationId: drivelabels.labels.disable + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2DisableLabelRequest' security: - Oauth2: - https://www.googleapis.com/auth/drive.admin.labels Oauth2c: - https://www.googleapis.com/auth/drive.admin.labels - - Oauth2: - - https://www.googleapis.com/auth/drive.admin.labels.readonly - Oauth2c: - - https://www.googleapis.com/auth/drive.admin.labels.readonly - Oauth2: - https://www.googleapis.com/auth/drive.labels Oauth2c: - https://www.googleapis.com/auth/drive.labels - - Oauth2: - - https://www.googleapis.com/auth/drive.labels.readonly - Oauth2c: - - https://www.googleapis.com/auth/drive.labels.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2ListLabelPermissionsResponse - parameters: - - in: path - name: labelsId - required: true - schema: - type: string - - in: query - name: useAdminAccess - schema: - type: boolean - - in: query - name: pageToken + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2Label' + parameters: + - in: path + name: labelsId + required: true schema: type: string - - in: query - name: pageSize - schema: - type: integer - format: int32 + /v2/labels/{labelsId}:enable: + parameters: *ref_1 post: description: >- - Updates a Label's permissions. If a permission for the indicated - principal doesn't exist, a new Label Permission is created, otherwise - the existing permission is updated. Permissions affect the Label - resource as a whole, are not revisioned, and do not require publishing. - operationId: drivelabels.labels.permissions.create + Enable a disabled label and restore it to its published state. For more + information, see [Disable, enable, and delete a + label](https://developers.google.com/workspace/drive/labels/guides/disable-delete-label). + This will result in a new published revision based on the current + disabled published revision. If there's an existing disabled draft + revision, a new revision will be created based on that draft and will be + enabled. + operationId: drivelabels.labels.enable requestBody: content: application/json: schema: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelPermission' + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2EnableLabelRequest' security: - Oauth2: - https://www.googleapis.com/auth/drive.admin.labels @@ -2784,25 +2857,27 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelPermission' + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2Label' parameters: - in: path name: labelsId required: true schema: type: string - - in: query - name: useAdminAccess - schema: - type: boolean - /v2/labels/{labelsId}: + /v2/labels/{labelsId}/permissions: parameters: *ref_1 - delete: + patch: description: >- - Permanently deletes a Label and related metadata on Drive Items. Once - deleted, the Label and related Drive item metadata will be deleted. Only - draft Labels, and disabled Labels may be deleted. - operationId: drivelabels.labels.delete + Updates a label's permissions. If a permission for the indicated + principal doesn't exist, a label permission is created, otherwise the + existing permission is updated. Permissions affect the label resource as + a whole, aren't revisioned, and don't require publishing. + operationId: drivelabels.labels.updatePermissions + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelPermission' security: - Oauth2: - https://www.googleapis.com/auth/drive.admin.labels @@ -2818,7 +2893,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/GoogleProtobufEmpty' + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelPermission' parameters: - in: path name: labelsId @@ -2829,18 +2904,9 @@ paths: name: useAdminAccess schema: type: boolean - - in: query - name: writeControl.requiredRevisionId - schema: - type: string get: - description: >- - Get a label by its resource name. Resource name may be any of: * - `labels/{id}` - See `labels/{id}@latest` * `labels/{id}@latest` - Gets - the latest revision of the label. * `labels/{id}@published` - Gets the - current published revision of the label. * `labels/{id}@{revision_id}` - - Gets the label at the specified revision ID. - operationId: drivelabels.labels.get + description: Lists a label's permissions. + operationId: drivelabels.labels.permissions.list security: - Oauth2: - https://www.googleapis.com/auth/drive.admin.labels @@ -2864,7 +2930,8 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2Label' + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2ListLabelPermissionsResponse parameters: - in: path name: labelsId @@ -2876,28 +2943,26 @@ paths: schema: type: boolean - in: query - name: languageCode + name: pageSize schema: - type: string + type: integer + format: int32 - in: query - name: view + name: pageToken schema: type: string - /v2/labels/{labelsId}:disable: - parameters: *ref_1 post: description: >- - Disable a published Label. Disabling a Label will result in a new - disabled published revision based on the current published revision. If - there is a draft revision, a new disabled draft revision will be created - based on the latest draft revision. Older draft revisions will be - deleted. Once disabled, a label may be deleted with `DeleteLabel`. - operationId: drivelabels.labels.disable + Updates a label's permissions. If a permission for the indicated + principal doesn't exist, a label permission is created, otherwise the + existing permission is updated. Permissions affect the label resource as + a whole, aren't revisioned, and don't require publishing. + operationId: drivelabels.labels.permissions.create requestBody: content: application/json: schema: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2DisableLabelRequest' + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelPermission' security: - Oauth2: - https://www.googleapis.com/auth/drive.admin.labels @@ -2913,45 +2978,39 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2Label' + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelPermission' parameters: - in: path name: labelsId required: true schema: type: string - /v2/labels/{labelsId}/permissions:batchUpdate: + - in: query + name: useAdminAccess + schema: + type: boolean + /v2/labels/{labelsId}:updateLabelEnabledAppSettings: parameters: *ref_1 post: description: >- - Updates Label permissions. If a permission for the indicated principal - doesn't exist, a new Label Permission is created, otherwise the existing - permission is updated. Permissions affect the Label resource as a whole, - are not revisioned, and do not require publishing. - operationId: drivelabels.labels.permissions.batchUpdate + Updates a label's `EnabledAppSettings`. Enabling a label in a Google + Workspace app allows it to be used in that app. This change isn't + revisioned, doesn't require publishing, and takes effect immediately. + operationId: drivelabels.labels.updateLabelEnabledAppSettings requestBody: content: application/json: schema: $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2BatchUpdateLabelPermissionsRequest - security: - - Oauth2: - - https://www.googleapis.com/auth/drive.admin.labels - Oauth2c: - - https://www.googleapis.com/auth/drive.admin.labels - - Oauth2: - - https://www.googleapis.com/auth/drive.labels - Oauth2c: - - https://www.googleapis.com/auth/drive.labels + #/components/schemas/GoogleAppsDriveLabelsV2UpdateLabelEnabledAppSettingsRequest + security: [] responses: '200': description: Successful response content: application/json: schema: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2BatchUpdateLabelPermissionsResponse + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2Label' parameters: - in: path name: labelsId @@ -2962,8 +3021,8 @@ paths: parameters: *ref_1 delete: description: >- - Deletes a Label's permission. Permissions affect the Label resource as a - whole, are not revisioned, and do not require publishing. + Deletes a label's permission. Permissions affect the label resource as a + whole, aren't revisioned, and don't require publishing. operationId: drivelabels.labels.permissions.delete security: - Oauth2: @@ -2996,12 +3055,50 @@ paths: name: useAdminAccess schema: type: boolean + /v2/labels/{labelsId}/permissions:batchUpdate: + parameters: *ref_1 + post: + description: >- + Updates label permissions. If a permission for the indicated principal + doesn't exist, a label permission is created, otherwise the existing + permission is updated. Permissions affect the label resource as a whole, + aren't revisioned, and don't require publishing. + operationId: drivelabels.labels.permissions.batchUpdate + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2BatchUpdateLabelPermissionsRequest + security: + - Oauth2: + - https://www.googleapis.com/auth/drive.admin.labels + Oauth2c: + - https://www.googleapis.com/auth/drive.admin.labels + - Oauth2: + - https://www.googleapis.com/auth/drive.labels + Oauth2c: + - https://www.googleapis.com/auth/drive.labels + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2BatchUpdateLabelPermissionsResponse + parameters: + - in: path + name: labelsId + required: true + schema: + type: string /v2/labels/{labelsId}/permissions:batchDelete: parameters: *ref_1 post: description: >- - Deletes Label permissions. Permissions affect the Label resource as a - whole, are not revisioned, and do not require publishing. + Deletes label permissions. Permissions affect the label resource as a + whole, aren't revisioned, and don't require publishing. operationId: drivelabels.labels.permissions.batchDelete requestBody: content: @@ -3035,10 +3132,10 @@ paths: parameters: *ref_1 patch: description: >- - Updates a Label's permissions. If a permission for the indicated - principal doesn't exist, a new Label Permission is created, otherwise - the existing permission is updated. Permissions affect the Label - resource as a whole, are not revisioned, and do not require publishing. + Updates a label's permissions. If a permission for the indicated + principal doesn't exist, a label permission is created, otherwise the + existing permission is updated. Permissions affect the label resource as + a whole, aren't revisioned, and don't require publishing. operationId: drivelabels.labels.revisions.updatePermissions requestBody: content: @@ -3077,7 +3174,7 @@ paths: schema: type: boolean get: - description: Lists a Label's permissions. + description: Lists a label's permissions. operationId: drivelabels.labels.revisions.permissions.list security: - Oauth2: @@ -3116,24 +3213,24 @@ paths: schema: type: string - in: query - name: pageToken + name: useAdminAccess schema: - type: string + type: boolean - in: query name: pageSize schema: type: integer format: int32 - in: query - name: useAdminAccess + name: pageToken schema: - type: boolean + type: string post: description: >- - Updates a Label's permissions. If a permission for the indicated - principal doesn't exist, a new Label Permission is created, otherwise - the existing permission is updated. Permissions affect the Label - resource as a whole, are not revisioned, and do not require publishing. + Updates a label's permissions. If a permission for the indicated + principal doesn't exist, a label permission is created, otherwise the + existing permission is updated. Permissions affect the label resource as + a whole, aren't revisioned, and don't require publishing. operationId: drivelabels.labels.revisions.permissions.create requestBody: content: @@ -3171,62 +3268,12 @@ paths: name: useAdminAccess schema: type: boolean - /v2/labels/{labelsId}/revisions/{revisionsId}/locks: - parameters: *ref_1 - get: - description: Lists the LabelLocks on a Label. - operationId: drivelabels.labels.revisions.locks.list - security: - - Oauth2: - - https://www.googleapis.com/auth/drive.admin.labels - Oauth2c: - - https://www.googleapis.com/auth/drive.admin.labels - - Oauth2: - - https://www.googleapis.com/auth/drive.admin.labels.readonly - Oauth2c: - - https://www.googleapis.com/auth/drive.admin.labels.readonly - - Oauth2: - - https://www.googleapis.com/auth/drive.labels - Oauth2c: - - https://www.googleapis.com/auth/drive.labels - - Oauth2: - - https://www.googleapis.com/auth/drive.labels.readonly - Oauth2c: - - https://www.googleapis.com/auth/drive.labels.readonly - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2ListLabelLocksResponse - parameters: - - in: path - name: labelsId - required: true - schema: - type: string - - in: path - name: revisionsId - required: true - schema: - type: string - - in: query - name: pageSize - schema: - type: integer - format: int32 - - in: query - name: pageToken - schema: - type: string /v2/labels/{labelsId}/revisions/{revisionsId}/permissions/{permissionsId}: parameters: *ref_1 delete: description: >- - Deletes a Label's permission. Permissions affect the Label resource as a - whole, are not revisioned, and do not require publishing. + Deletes a label's permission. Permissions affect the label resource as a + whole, aren't revisioned, and don't require publishing. operationId: drivelabels.labels.revisions.permissions.delete security: - Oauth2: @@ -3268,10 +3315,10 @@ paths: parameters: *ref_1 post: description: >- - Updates Label permissions. If a permission for the indicated principal - doesn't exist, a new Label Permission is created, otherwise the existing - permission is updated. Permissions affect the Label resource as a whole, - are not revisioned, and do not require publishing. + Updates label permissions. If a permission for the indicated principal + doesn't exist, a label permission is created, otherwise the existing + permission is updated. Permissions affect the label resource as a whole, + aren't revisioned, and don't require publishing. operationId: drivelabels.labels.revisions.permissions.batchUpdate requestBody: content: @@ -3311,8 +3358,8 @@ paths: parameters: *ref_1 post: description: >- - Deletes Label permissions. Permissions affect the Label resource as a - whole, are not revisioned, and do not require publishing. + Deletes label permissions. Permissions affect the label resource as a + whole, aren't revisioned, and don't require publishing. operationId: drivelabels.labels.revisions.permissions.batchDelete requestBody: content: @@ -3347,11 +3394,11 @@ paths: required: true schema: type: string - /v2/labels/{labelsId}/locks: + /v2/labels/{labelsId}/revisions/{revisionsId}/locks: parameters: *ref_1 get: - description: Lists the LabelLocks on a Label. - operationId: drivelabels.labels.locks.list + description: Lists the label locks on a label. + operationId: drivelabels.labels.revisions.locks.list security: - Oauth2: - https://www.googleapis.com/auth/drive.admin.labels @@ -3383,12 +3430,98 @@ paths: required: true schema: type: string + - in: path + name: revisionsId + required: true + schema: + type: string + - in: query + name: pageSize + schema: + type: integer + format: int32 - in: query name: pageToken schema: type: string + /v2/labels/{labelsId}/locks: + parameters: *ref_1 + get: + description: Lists the label locks on a label. + operationId: drivelabels.labels.locks.list + security: + - Oauth2: + - https://www.googleapis.com/auth/drive.admin.labels + Oauth2c: + - https://www.googleapis.com/auth/drive.admin.labels + - Oauth2: + - https://www.googleapis.com/auth/drive.admin.labels.readonly + Oauth2c: + - https://www.googleapis.com/auth/drive.admin.labels.readonly + - Oauth2: + - https://www.googleapis.com/auth/drive.labels + Oauth2c: + - https://www.googleapis.com/auth/drive.labels + - Oauth2: + - https://www.googleapis.com/auth/drive.labels.readonly + Oauth2c: + - https://www.googleapis.com/auth/drive.labels.readonly + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2ListLabelLocksResponse + parameters: + - in: path + name: labelsId + required: true + schema: + type: string - in: query name: pageSize schema: type: integer format: int32 + - in: query + name: pageToken + schema: + type: string + /v2/limits/label: + parameters: *ref_1 + get: + description: >- + Get the constraints on the structure of a label; such as, the maximum + number of fields allowed and maximum length of the label title. + operationId: drivelabels.limits.getLabel + security: + - Oauth2: + - https://www.googleapis.com/auth/drive.admin.labels + Oauth2c: + - https://www.googleapis.com/auth/drive.admin.labels + - Oauth2: + - https://www.googleapis.com/auth/drive.admin.labels.readonly + Oauth2c: + - https://www.googleapis.com/auth/drive.admin.labels.readonly + - Oauth2: + - https://www.googleapis.com/auth/drive.labels + Oauth2c: + - https://www.googleapis.com/auth/drive.labels + - Oauth2: + - https://www.googleapis.com/auth/drive.labels.readonly + Oauth2c: + - https://www.googleapis.com/auth/drive.labels.readonly + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2LabelLimits' + parameters: + - in: query + name: name + schema: + type: string diff --git a/providers/src/googleworkspace/v00.00.00000/services/drivelabelsv2beta.yaml b/providers/src/googleworkspace/v00.00.00000/services/drivelabelsv2beta.yaml index acd7f346..3919ffa5 100644 --- a/providers/src/googleworkspace/v00.00.00000/services/drivelabelsv2beta.yaml +++ b/providers/src/googleworkspace/v00.00.00000/services/drivelabelsv2beta.yaml @@ -7,10 +7,10 @@ info: title: Drive Labels API description: An API for managing Drive Labels version: v2beta - x-discovery-doc-revision: '20241204' - x-generated-date: '2024-12-07' + x-discovery-doc-revision: '20250825' + x-generated-date: '2025-08-28' externalDocs: - url: https://developers.google.com/drive/labels + url: https://developers.google.com/workspace/drive/labels servers: - url: https://drivelabels.googleapis.com components: @@ -22,14 +22,14 @@ components: implicit: authorizationUrl: https://accounts.google.com/o/oauth2/auth scopes: &ref_0 - https://www.googleapis.com/auth/drive.admin.labels.readonly: >- - See all Google Drive labels and label-related admin policies in - your organization - https://www.googleapis.com/auth/drive.labels: See, edit, create, and delete your Google Drive labels https://www.googleapis.com/auth/drive.admin.labels: >- See, edit, create, and delete all Google Drive labels in your organization, and see your organization's label-related admin policies + https://www.googleapis.com/auth/drive.admin.labels.readonly: >- + See all Google Drive labels and label-related admin policies in + your organization + https://www.googleapis.com/auth/drive.labels: See, edit, create, and delete your Google Drive labels https://www.googleapis.com/auth/drive.labels.readonly: See your Google Drive labels Oauth2c: type: oauth2 @@ -40,416 +40,241 @@ components: tokenUrl: https://accounts.google.com/o/oauth2/token scopes: *ref_0 schemas: - GoogleAppsDriveLabelsV2betaBatchUpdateLabelPermissionsResponse: - id: GoogleAppsDriveLabelsV2betaBatchUpdateLabelPermissionsResponse - description: Response for updating one or more Label Permissions. - properties: - permissions: - items: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLabelPermission' - type: array - description: Required. Permissions updated. - type: object - GoogleAppsDriveLabelsV2betaFieldSchemaCapabilities: - id: GoogleAppsDriveLabelsV2betaFieldSchemaCapabilities - description: The capabilities related to this field when editing the field. + GoogleAppsDriveLabelsV2betaUserCapabilities: + id: GoogleAppsDriveLabelsV2betaUserCapabilities + description: The capabilities of a user. type: object - properties: - canDelete: - type: boolean - description: >- - Whether the user can delete this field. The user must have - permission and the field must be deprecated. - canDisable: - description: >- - Whether the user can disable this field. The user must have - permission and this field must not already be disabled. - type: boolean - canUpdate: - type: boolean - description: Whether the user can change this field. - canEnable: - type: boolean - description: >- - Whether the user can enable this field. The user must have - permission and this field must be disabled. - GoogleAppsDriveLabelsV2betaDeleteLabelPermissionRequest: - description: >- - Deletes a Label Permission. Permissions affect the Label resource as a - whole, are not revisioned, and do not require publishing. properties: name: + description: Output only. Resource name for the user capabilities. + readOnly: true type: string - description: Required. Label Permission resource name. - useAdminAccess: - type: boolean + canAccessLabelManager: description: >- - Set to `true` in order to use the user's admin credentials. The - server will verify the user is an admin for the Label before - allowing access. - id: GoogleAppsDriveLabelsV2betaDeleteLabelPermissionRequest - type: object - GoogleAppsDriveLabelsV2betaLifecycleDisabledPolicy: - type: object - properties: - showInApply: + Output only. Whether the user is allowed access to the label + manager. + readOnly: true + type: boolean + canAdministrateLabels: description: >- - Whether to show this disabled object in the apply menu on Drive - items. * When `true`, the object is generally shown in the UI as - disabled and is unselectable. * When `false`, the object is - generally hidden in the UI. + Output only. Whether the user is an administrator for the shared + labels feature. + readOnly: true type: boolean - hideInSearch: + canCreateSharedLabels: + description: Output only. Whether the user is allowed to create shared labels. + readOnly: true type: boolean - description: >- - Whether to hide this disabled object in the search menu for Drive - items. * When `false`, the object is generally shown in the UI as - disabled but it appears in the search results when searching for - Drive items. * When `true`, the object is generally hidden in the UI - when searching for Drive items. - id: GoogleAppsDriveLabelsV2betaLifecycleDisabledPolicy - description: >- - The policy that governs how to treat a disabled label, field, or - selection choice in different contexts. - GoogleAppsDriveLabelsV2betaListLimits: + canCreateAdminLabels: + description: Output only. Whether the user is allowed to create admin labels. + readOnly: true + type: boolean + GoogleAppsDriveLabelsV2betaListLabelsResponse: + id: GoogleAppsDriveLabelsV2betaListLabelsResponse + description: Response for listing labels. type: object properties: - maxEntries: - description: Maximum number of values allowed for the Field type. - type: integer - format: int32 - id: GoogleAppsDriveLabelsV2betaListLimits - description: Limits for list-variant of a Field type. - GoogleAppsDriveLabelsV2betaUpdateLabelCopyModeRequest: - id: GoogleAppsDriveLabelsV2betaUpdateLabelCopyModeRequest - type: object + labels: + description: Labels. + type: array + items: + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLabel' + nextPageToken: + description: The token of the next page in the response. + type: string + GoogleAppsDriveLabelsV2betaLabel: + id: GoogleAppsDriveLabelsV2betaLabel description: >- - Request to update the `CopyMode` of the given Label. Changes to this - policy are not revisioned, do not require publishing, and take effect - immediately. \ + A label defines a taxonomy that can be applied to Drive items in order + to organize and search across items. Labels can be simple strings, or + can contain fields that describe additional metadata that can be further + used to organize and search Drive items. + type: object properties: - view: - type: string - enum: - - LABEL_VIEW_BASIC - - LABEL_VIEW_FULL - enumDescriptions: - - >- - Implies the field mask: - `name,id,revision_id,label_type,properties.*` - - All possible fields. - description: >- - When specified, only certain fields belonging to the indicated view - will be returned. - useAdminAccess: - description: >- - Set to `true` in order to use the user's admin credentials. The - server will verify the user is an admin for the Label before - allowing access. - type: boolean - copyMode: - enum: - - COPY_MODE_UNSPECIFIED - - DO_NOT_COPY - - ALWAYS_COPY - - COPY_APPLIABLE + name: description: >- - Required. Indicates how the applied Label, and Field values should - be copied when a Drive item is copied. - enumDescriptions: - - Copy mode unspecified. - - >- - The applied label and field values are not copied by default when - the Drive item it's applied to is copied. - - >- - The applied label and field values are always copied when the - Drive item it's applied to is copied. Only admins can use this - mode. - - >- - The applied label and field values are copied if the label is - appliable by the user making the copy. - type: string - languageCode: + Output only. Resource name of the label. Will be in the form of + either: `labels/{id}` or `labels/{id}@{revision_id}` depending on + the request. See `id` and `revision_id` below. + readOnly: true type: string + id: description: >- - The BCP-47 language code to use for evaluating localized field - labels. When not specified, values in the default configured - language will be used. - GoogleAppsDriveLabelsV2betaDisableLabelRequest: - properties: - updateMask: - format: google-fieldmask + Output only. Globally unique identifier of this label. ID makes up + part of the label `name`, but unlike `name`, ID is consistent + between revisions. Matches the regex: `([a-zA-Z0-9])+`. + readOnly: true type: string + revisionId: description: >- - The fields that should be updated. At least one field must be - specified. The root `disabled_policy` is implied and should not be - specified. A single `*` can be used as short-hand for updating every - field. - useAdminAccess: - type: boolean - description: >- - Set to `true` in order to use the user's admin credentials. The - server will verify the user is an admin for the Label before - allowing access. - writeControl: - description: >- - Provides control over how write requests are executed. Defaults to - unset, which means last write wins. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaWriteControl' - languageCode: - description: >- - The BCP-47 language code to use for evaluating localized field - labels. When not specified, values in the default configured - language will be used. - type: string - disabledPolicy: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaLifecycleDisabledPolicy - description: Disabled policy to use. - type: object - description: Request to deprecate a published Label. - id: GoogleAppsDriveLabelsV2betaDisableLabelRequest - GoogleAppsDriveLabelsV2betaLabelLock: - type: object - description: A Lock that can be applied to a Label, Field, or Choice. - id: GoogleAppsDriveLabelsV2betaLabelLock - properties: - name: + Output only. Revision ID of the label. Revision ID might be part of + the label `name` depending on the request issued. A new revision is + created whenever revisioned properties of a label are changed. + Matches the regex: `([a-zA-Z0-9])+`. readOnly: true - description: Output only. Resource name of this LabelLock. type: string - capabilities: - readOnly: true - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaLabelLockCapabilities - description: Output only. The user's capabilities on this LabelLock. - fieldId: + labelType: + description: Required. The type of label. type: string - description: >- - The ID of the Field that should be locked. Empty if the whole Label - should be locked. + enumDescriptions: + - Unknown label type. + - Shared labels may be shared with users to apply to Drive items. + - >- + Admin-owned label. Only creatable and editable by admins. Supports + some additional admin-only features. + - >- + A label owned by an internal Google application rather than a + customer. These labels are read-only. + enum: + - LABEL_TYPE_UNSPECIFIED + - SHARED + - ADMIN + - GOOGLE_APP + creator: + description: Output only. The user who created this label. + readOnly: true + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaUserInfo' createTime: - format: google-datetime - type: string + description: Output only. The time this label was created. readOnly: true - description: Output only. The time this LabelLock was created. - deleteTime: + type: string format: google-datetime + revisionCreator: + description: Output only. The user who created this label revision. readOnly: true - description: >- - Output only. A timestamp indicating when this LabelLock was - scheduled for deletion. This will be present only if this LabelLock - is in the DELETING state. - type: string - creator: + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaUserInfo' + revisionCreateTime: + description: Output only. The time this label revision was created. readOnly: true + type: string + format: google-datetime + publisher: description: >- - Output only. The user whose credentials were used to create the - LabelLock. This will not be present if no user was responsible for - creating the LabelLock. + Output only. The user who published this label. This value has no + meaning when the label isn't published.>> + readOnly: true $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaUserInfo' - state: - enumDescriptions: - - Unknown state. - - The LabelLock is active and is being enforced by the server. - - >- - The LabelLock is being deleted. The LabelLock will continue to be - enforced by the server until it has been fully removed. - enum: - - STATE_UNSPECIFIED - - ACTIVE - - DELETING - description: Output only. This LabelLock's state. + publishTime: + description: >- + Output only. The time this label was published. This value has no + meaning when the label isn't published. readOnly: true type: string - choiceId: + format: google-datetime + disabler: description: >- - The ID of the Selection Field Choice that should be locked. If - present, `field_id` must also be present. - type: string - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestDeleteSelectionChoiceRequest: - type: object - id: >- - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestDeleteSelectionChoiceRequest - properties: - fieldId: - description: Required. The Selection Field from which a Choice will be deleted. + Output only. The user who disabled this label. This value has no + meaning when the label isn't disabled. + readOnly: true + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaUserInfo' + disableTime: + description: >- + Output only. The time this label was disabled. This value has no + meaning when the label isn't disabled. + readOnly: true type: string - id: - description: Required. Choice to delete. + format: google-datetime + customer: + description: >- + Output only. The customer this label belongs to. For example: + `customers/123abc789`. + readOnly: true type: string - description: Request to delete a Choice. - GoogleAppsDriveLabelsV2betaFieldDisplayHints: - properties: - disabled: - description: Whether the field should be shown in the UI as disabled. - type: boolean - required: - type: boolean - description: Whether the field should be shown as required in the UI. - hiddenInSearch: + properties: + description: Required. The basic properties of the label. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLabelProperties' + lifecycle: description: >- - This field should be hidden in the search menu when searching for - Drive items. - type: boolean - shownInApply: - type: boolean + Output only. The lifecycle state of the label including whether it's + published, deprecated, and has draft changes. + readOnly: true + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLifecycle' + displayHints: + description: Output only. UI display hints for rendering the label. + readOnly: true + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLabelDisplayHints' + appliedCapabilities: description: >- - This field should be shown in the apply menu when applying values to - a Drive item. - id: GoogleAppsDriveLabelsV2betaFieldDisplayHints - type: object - description: UI display hints for rendering a field. - GoogleAppsDriveLabelsV2betaListLabelsResponse: - type: object - properties: - labels: - items: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLabel' - type: array - description: Labels. - nextPageToken: - type: string - description: The token of the next page in the response. - description: Response for listing Labels. - id: GoogleAppsDriveLabelsV2betaListLabelsResponse - GoogleAppsDriveLabelsV2betaLockStatus: - properties: - locked: + Output only. The capabilities related to this label on applied + metadata. + readOnly: true + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaLabelAppliedCapabilities + schemaCapabilities: + description: Output only. The capabilities the user has on this label. readOnly: true + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaLabelSchemaCapabilities + appliedLabelPolicy: description: >- - Output only. Indicates whether this label component is the (direct) - target of a LabelLock. A label component can be implicitly locked - even if it's not the direct target of a LabelLock, in which case - this field is set to false. - type: boolean - type: object - id: GoogleAppsDriveLabelsV2betaLockStatus - description: >- - Contains information about whether a label component should be - considered locked. - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestEnableSelectionChoiceRequest: - description: Request to enable a Choice. - id: >- - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestEnableSelectionChoiceRequest - type: object - properties: - id: - type: string - description: Required. Choice to enable. - fieldId: - description: Required. The Selection Field in which a Choice will be enabled. + Output only. Behavior of this label when it's applied to Drive + items. + readOnly: true + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaLabelAppliedLabelPolicy + fields: + description: List of fields in descending priority order. + type: array + items: + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaField' + learnMoreUri: + description: >- + Custom URL to present to users to allow them to learn more about + this label and how it should be used. type: string - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseUpdateSelectionChoicePropertiesResponse: + lockStatus: + description: Output only. The `LockStatus` of this label. + readOnly: true + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLockStatus' + enabledAppSettings: + description: Optional. The `EnabledAppSettings` for this Label. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaLabelEnabledAppSettings + GoogleAppsDriveLabelsV2betaUserInfo: + id: GoogleAppsDriveLabelsV2betaUserInfo + description: Information about a user. type: object - id: >- - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseUpdateSelectionChoicePropertiesResponse - description: Response following update to Selection Choice properties. properties: - priority: + person: description: >- - The priority of the updated choice. The priority may change from - what was specified to assure contiguous priorities between choices - (1-n). - type: integer - format: int32 - GoogleAppsDriveLabelsV2betaUserLimits: - type: object - description: Limits for Field.Type.USER. - properties: - listLimits: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaListLimits' - description: Limits for list-variant of a Field type. - id: GoogleAppsDriveLabelsV2betaUserLimits - GoogleAppsDriveLabelsV2betaListLabelPermissionsResponse: - description: Response for listing the permissions on a Label. - id: GoogleAppsDriveLabelsV2betaListLabelPermissionsResponse - type: object - properties: - nextPageToken: + The identifier for this user that can be used with the [People + API](https://developers.google.com/people) to get more information. + For example, `people/12345678`. type: string - description: The token of the next page in the response. - labelPermissions: - type: array - description: Label permissions. - items: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLabelPermission' - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestRequest: - description: A single kind of update to apply to a Label. + GoogleAppsDriveLabelsV2betaLabelProperties: + id: GoogleAppsDriveLabelsV2betaLabelProperties + description: Basic properties of the label. type: object - id: GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestRequest properties: - deleteSelectionChoice: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestDeleteSelectionChoiceRequest - description: Delete a Choice within a Selection Field. - updateLabel: - description: Updates the Label properties. - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestUpdateLabelPropertiesRequest - updateFieldType: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestUpdateFieldTypeRequest - description: Update Field type and/or type options. - createField: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestCreateFieldRequest - description: Creates a new Field. - deleteField: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestDeleteFieldRequest - description: Deletes a Field from the label. - updateField: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestUpdateFieldPropertiesRequest - description: Updates basic properties of a Field. - enableField: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestEnableFieldRequest - description: Enables the Field. - disableSelectionChoice: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestDisableSelectionChoiceRequest - description: Disable a Choice within a Selection Field. - enableSelectionChoice: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestEnableSelectionChoiceRequest - description: Enable a Choice within a Selection Field. - disableField: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestDisableFieldRequest - description: Disables the Field. - updateSelectionChoiceProperties: - description: Update a Choice properties within a Selection Field. - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestUpdateSelectionChoicePropertiesRequest - createSelectionChoice: - description: Creates Choice within a Selection field. - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestCreateSelectionChoiceRequest + title: + description: Required. Title of the label. + type: string + description: + description: The description of the label. + type: string GoogleAppsDriveLabelsV2betaLifecycle: + id: GoogleAppsDriveLabelsV2betaLifecycle description: >- - The lifecycle state of an object, such as label, field, or choice. The - lifecycle enforces the following transitions: * `UNPUBLISHED_DRAFT` + The lifecycle state of an object, such as label, field, or choice. For + more information, see [Label + lifecycle](https://developers.google.com/workspace/drive/labels/guides/label-lifecycle). + The lifecycle enforces the following transitions: * `UNPUBLISHED_DRAFT` (starting state) * `UNPUBLISHED_DRAFT` -> `PUBLISHED` * `UNPUBLISHED_DRAFT` -> (Deleted) * `PUBLISHED` -> `DISABLED` * `DISABLED` -> `PUBLISHED` * `DISABLED` -> (Deleted) The published and - disabled states have some distinct characteristics: * Published—Some + disabled states have some distinct characteristics: * `Published`: Some kinds of changes might be made to an object in this state, in which case - `has_unpublished_changes` will be true. Also, some kinds of changes are - not permitted. Generally, any change that would invalidate or cause new - restrictions on existing metadata related to the label are rejected. * - Disabled—When disabled, the configured `DisabledPolicy` takes effect. - id: GoogleAppsDriveLabelsV2betaLifecycle + `has_unpublished_changes` will be true. Also, some kinds of changes + aren't permitted. Generally, any change that would invalidate or cause + new restrictions on existing metadata related to the label are rejected. + * `Disabled`: When disabled, the configured `DisabledPolicy` takes + effect. type: object properties: - disabledPolicy: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaLifecycleDisabledPolicy - description: >- - The policy that governs how to show a disabled label, field, or - selection choice. state: + description: Output only. The state of the object associated with this lifecycle. + readOnly: true + type: string enumDescriptions: - Unknown State. - >- @@ -470,1208 +295,1424 @@ components: - PUBLISHED - DISABLED - DELETED - readOnly: true - description: Output only. The state of the object associated with this lifecycle. - type: string hasUnpublishedChanges: description: >- Output only. Whether the object associated with this lifecycle has unpublished changes. readOnly: true type: boolean - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequest: - properties: - view: - type: string + disabledPolicy: description: >- - When specified, only certain fields belonging to the indicated view - will be returned. - enum: - - LABEL_VIEW_BASIC - - LABEL_VIEW_FULL - enumDescriptions: - - >- - Implies the field mask: - `name,id,revision_id,label_type,properties.*` - - All possible fields. - requests: - items: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestRequest + The policy that governs how to show a disabled label, field, or + selection choice. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaLifecycleDisabledPolicy + GoogleAppsDriveLabelsV2betaLifecycleDisabledPolicy: + id: GoogleAppsDriveLabelsV2betaLifecycleDisabledPolicy + description: >- + The policy that governs how to treat a disabled label, field, or + selection choice in different contexts. + type: object + properties: + hideInSearch: description: >- - A list of updates to apply to the Label. Requests will be applied in - the order they are specified. - type: array - writeControl: - description: Provides control over how write requests are executed. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaWriteControl' - useAdminAccess: + Whether to hide this disabled object in the search menu for Drive + items. * When `false`, the object is generally shown in the UI as + disabled but it appears in the search results when searching for + Drive items. * When `true`, the object is generally hidden in the UI + when searching for Drive items. type: boolean + showInApply: description: >- - Set to `true` in order to use the user's admin credentials. The - server will verify the user is an admin for the Label before - allowing access. - languageCode: - description: >- - The BCP-47 language code to use for evaluating localized Field - labels when `include_label_in_response` is `true`. - type: string - type: object - id: GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequest - description: >- - The set of requests for updating aspects of a Label. If any request is - not valid, no requests will be applied. - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseResponse: + Whether to show this disabled object in the apply menu on Drive + items. * When `true`, the object is generally shown in the UI as + disabled and is unselectable. * When `false`, the object is + generally hidden in the UI. + type: boolean + GoogleAppsDriveLabelsV2betaLabelDisplayHints: + id: GoogleAppsDriveLabelsV2betaLabelDisplayHints + description: The UI display hints for rendering the label. + type: object properties: - updateLabel: - description: Updated basic properties of a Label. - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseUpdateLabelPropertiesResponse - enableSelectionChoice: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseEnableSelectionChoiceResponse - description: Enables a Choice within a Selection Field. - updateFieldType: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseUpdateFieldTypeResponse - description: Update Field type and/or type options. - updateField: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseUpdateFieldPropertiesResponse - description: Updates basic properties of a Field. - updateSelectionChoiceProperties: - description: Updates a Choice within a Selection Field. - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseUpdateSelectionChoicePropertiesResponse - disableField: - description: Disables Field. - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseDisableFieldResponse - disableSelectionChoice: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseDisableSelectionChoiceResponse - description: Disables a Choice within a Selection Field. - createSelectionChoice: - description: Creates a new selection list option to add to a Selection Field. - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseCreateSelectionChoiceResponse - createField: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseCreateFieldResponse - description: Creates a new Field. - deleteSelectionChoice: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseDeleteSelectionChoiceResponse - description: Deletes a Choice from a Selection Field. - deleteField: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseDeleteFieldResponse - description: Deletes a Field from the label. - enableField: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseEnableFieldResponse - description: Enables Field. - description: A single response from an update. + disabled: + description: Whether the label should be shown in the UI as disabled. + type: boolean + hiddenInSearch: + description: >- + This label should be hidden in the search menu when searching for + Drive items. + type: boolean + shownInApply: + description: >- + This label should be shown in the apply menu when applying values to + a Drive item. + type: boolean + priority: + description: The order to display labels in a list. + type: string + format: int64 + GoogleAppsDriveLabelsV2betaLabelAppliedCapabilities: + id: GoogleAppsDriveLabelsV2betaLabelAppliedCapabilities + description: The capabilities a user has on this label's applied metadata. type: object - id: GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseResponse - GoogleAppsDriveLabelsV2betaLabelLockCapabilities: - id: GoogleAppsDriveLabelsV2betaLabelLockCapabilities - description: A description of a user's capabilities on a LabelLock. properties: - canViewPolicy: + canRead: + description: Whether the user can read applied metadata related to this label. type: boolean - description: True if the user is authorized to view the policy. + canApply: + description: Whether the user can apply this label to items. + type: boolean + canRemove: + description: Whether the user can remove this label from items. + type: boolean + GoogleAppsDriveLabelsV2betaLabelSchemaCapabilities: + id: GoogleAppsDriveLabelsV2betaLabelSchemaCapabilities + description: The capabilities related to this label when editing the label. type: object - GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoice: - id: GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoice - description: Selection field choice. properties: - properties: + canUpdate: + description: Whether the user can change this label. + type: boolean + canDelete: + description: >- + Whether the user can delete this label. The user must have + permission and the label must be disabled. + type: boolean + canDisable: + description: >- + Whether the user can disable this label. The user must have + permission and this label must not already be disabled. + type: boolean + canEnable: + description: >- + Whether the user can enable this label. The user must have + permission and this label must be disabled. + type: boolean + GoogleAppsDriveLabelsV2betaLabelAppliedLabelPolicy: + id: GoogleAppsDriveLabelsV2betaLabelAppliedLabelPolicy + description: Behavior of this label when it's applied to Drive items. + type: object + properties: + copyMode: + description: >- + Indicates how the applied label and field values should be copied + when a Drive item is copied. + type: string + enumDescriptions: + - Copy mode unspecified. + - >- + The applied label and field values aren't copied by default when + the Drive item it's applied to is copied. + - >- + The applied label and field values are always copied when the + Drive item it's applied to is copied. Only admins can use this + mode. + - >- + The applied label and field values are copied if the label is + appliable by the user making the copy. + enum: + - COPY_MODE_UNSPECIFIED + - DO_NOT_COPY + - ALWAYS_COPY + - COPY_APPLIABLE + GoogleAppsDriveLabelsV2betaField: + id: GoogleAppsDriveLabelsV2betaField + description: >- + Defines a field that has a display name, data type, and other + configuration options. This field defines the kind of metadata that may + be set on a Drive item. + type: object + properties: + textOptions: + description: Text field options. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaFieldTextOptions' + integerOptions: + description: Integer field options. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaFieldIntegerOptions' + dateOptions: + description: Date field options. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaFieldDateOptions' + selectionOptions: + description: Selection field options. $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoiceProperties - description: Basic properties of the choice. - publisher: - readOnly: true + #/components/schemas/GoogleAppsDriveLabelsV2betaFieldSelectionOptions + userOptions: + description: User field options. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaFieldUserOptions' + id: description: >- - Output only. The user who published this choice. This value has no - meaning when the choice is not published. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaUserInfo' - disableTime: + Output only. The key of a field, unique within a label or library. + This value is autogenerated. Matches the regex: `([a-zA-Z0-9])+`. + readOnly: true type: string + queryKey: description: >- - Output only. The time this choice was disabled. This value has no - meaning when the choice is not disabled. + Output only. The key to use when constructing Drive search queries + to find files based on values defined for this field on files. For + example, "`{query_key}` > 2001-01-01". readOnly: true - format: google-datetime - updateTime: - format: google-datetime - description: Output only. The time this choice was updated last. type: string + properties: + description: The basic properties of the field. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaFieldProperties' + lifecycle: + description: Output only. The lifecycle of this field. readOnly: true - updater: + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLifecycle' + displayHints: + description: Output only. UI display hints for rendering a field. readOnly: true - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaUserInfo' - description: Output only. The user who updated this choice last. - publishTime: + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaFieldDisplayHints' + schemaCapabilities: + description: Output only. The capabilities this user has when editing this field. readOnly: true - type: string - format: google-datetime + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaFieldSchemaCapabilities + appliedCapabilities: description: >- - Output only. The time this choice was published. This value has no - meaning when the choice is not published. + Output only. The capabilities this user has on this field and its + value when the label is applied on Drive items. + readOnly: true + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaFieldAppliedCapabilities + creator: + description: Output only. The user who created this field. + readOnly: true + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaUserInfo' createTime: + description: Output only. The time this field was created. + readOnly: true type: string + format: google-datetime + updater: + description: Output only. The user who modified this field. readOnly: true - description: Output only. The time this choice was created. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaUserInfo' + updateTime: + description: Output only. The time this field was updated. + readOnly: true + type: string format: google-datetime - id: + publisher: description: >- - The unique value of the choice. This ID is autogenerated. Matches - the regex: `([a-zA-Z0-9_])+`. - type: string - schemaCapabilities: + Output only. The user who published this field. This value has no + meaning when the field is not published. readOnly: true - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoiceSchemaCapabilities - description: >- - Output only. The capabilities related to this option when editing - the option. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaUserInfo' disabler: - readOnly: true description: >- - Output only. The user who disabled this choice. This value has no - meaning when the option is not disabled. + Output only. The user who disabled this field. This value has no + meaning when the field is not disabled. + readOnly: true $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaUserInfo' - appliedCapabilities: + disableTime: description: >- - Output only. The capabilities related to this choice on applied - metadata. - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoiceAppliedCapabilities - readOnly: true - lifecycle: - description: Output only. Lifecycle of the choice. + Output only. The time this field was disabled. This value has no + meaning when the field is not disabled. readOnly: true - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLifecycle' - displayHints: - description: Output only. UI display hints for rendering a choice. - readOnly: true - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoiceDisplayHints - creator: - description: Output only. The user who created this choice. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaUserInfo' - readOnly: true - lockStatus: - description: Output only. The LockStatus of this choice. + type: string + format: google-datetime + lockStatus: + description: Output only. The `LockStatus` of this field. readOnly: true $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLockStatus' + GoogleAppsDriveLabelsV2betaFieldTextOptions: + id: GoogleAppsDriveLabelsV2betaFieldTextOptions + description: Options for the Text field type. type: object - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseUpdateFieldPropertiesResponse: - description: Response following update to Field properties. properties: - priority: - description: >- - The priority of the updated field. The priority may change from what - was specified to assure contiguous priorities between fields (1-n). + minLength: + description: Output only. The minimum valid length of values for the text field. + readOnly: true type: integer format: int32 - id: >- - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseUpdateFieldPropertiesResponse + maxLength: + description: Output only. The maximum valid length of values for the text field. + readOnly: true + type: integer + format: int32 + GoogleAppsDriveLabelsV2betaFieldIntegerOptions: + id: GoogleAppsDriveLabelsV2betaFieldIntegerOptions + description: Options for the Integer field type. type: object - GoogleAppsDriveLabelsV2betaSelectionLimits: properties: - maxChoices: - description: The max number of choices. - format: int32 - type: integer - listLimits: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaListLimits' - description: Limits for list-variant of a Field type. - maxIdLength: - description: Maximum ID length for a selection options. + minValue: + description: Output only. The minimum valid value for the integer field. + readOnly: true + type: string + format: int64 + maxValue: + description: Output only. The maximum valid value for the integer field. + readOnly: true + type: string + format: int64 + GoogleAppsDriveLabelsV2betaFieldDateOptions: + id: GoogleAppsDriveLabelsV2betaFieldDateOptions + description: Options for the date field type. + type: object + properties: + dateFormatType: + description: >- + Localized date formatting option. Field values are rendered in this + format according to their locale. + type: string + enumDescriptions: + - Date format unspecified. + - >- + Includes full month name. For example, January 12, 1999 (MMMM d, + y) + - Short, numeric, representation. For example, 12/13/99 (M/d/yy) + enum: + - DATE_FORMAT_UNSPECIFIED + - LONG_DATE + - SHORT_DATE + dateFormat: + description: Output only. ICU date format. + readOnly: true + type: string + minValue: + description: Output only. Minimum valid value (year, month, day). + readOnly: true + $ref: '#/components/schemas/GoogleTypeDate' + maxValue: + description: Output only. Maximum valid value (year, month, day). + readOnly: true + $ref: '#/components/schemas/GoogleTypeDate' + GoogleTypeDate: + id: GoogleTypeDate + description: >- + Represents a whole or partial calendar date, such as a birthday. The + time of day and time zone are either specified elsewhere or are + insignificant. The date is relative to the Gregorian Calendar. This can + represent one of the following: * A full date, with non-zero year, + month, and day values. * A month and day, with a zero year (for example, + an anniversary). * A year on its own, with a zero month and a zero day. + * A year and month, with a zero day (for example, a credit card + expiration date). Related types: * google.type.TimeOfDay * + google.type.DateTime * google.protobuf.Timestamp + type: object + properties: + year: + description: >- + Year of the date. Must be from 1 to 9999, or 0 to specify a date + without a year. type: integer format: int32 - maxDisplayNameLength: + month: + description: >- + Month of a year. Must be from 1 to 12, or 0 to specify a year + without a month and day. type: integer format: int32 - description: Maximum length for display name. - maxDeletedChoices: - description: Maximum number of deleted choices. + day: + description: >- + Day of a month. Must be from 1 to 31 and valid for the year and + month, or 0 to specify a year by itself or a year and month where + the day isn't significant. type: integer format: int32 + GoogleAppsDriveLabelsV2betaFieldSelectionOptions: + id: GoogleAppsDriveLabelsV2betaFieldSelectionOptions + description: Options for the selection field type. type: object - description: Limits for selection Field type. - id: GoogleAppsDriveLabelsV2betaSelectionLimits + properties: + listOptions: + description: >- + When specified, indicates this field supports a list of values. Once + the field is published, this cannot be changed. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaFieldListOptions' + choices: + description: >- + The options available for this selection field. The list order is + consistent, and modified with `insert_before_choice`. + type: array + items: + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoice GoogleAppsDriveLabelsV2betaFieldListOptions: id: GoogleAppsDriveLabelsV2betaFieldListOptions + description: Options for a multi-valued variant of an associated field type. + type: object properties: maxEntries: description: Maximum number of entries permitted. - format: int32 type: integer + format: int32 + GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoice: + id: GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoice + description: Selection field choice. type: object - description: Options for a multi-valued variant of an associated field type. - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestUpdateSelectionChoicePropertiesRequest: - type: object - description: Request to update a Choice properties. properties: id: - description: Required. The Choice to update. - type: string - fieldId: - description: Required. The Selection Field to update. + description: >- + The unique value of the choice. This ID is autogenerated. Matches + the regex: `([a-zA-Z0-9_])+`. type: string properties: + description: Basic properties of the choice. $ref: >- #/components/schemas/GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoiceProperties - description: Required. The Choice properties to update. - updateMask: + lifecycle: + description: Output only. Lifecycle of the choice. + readOnly: true + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLifecycle' + displayHints: + description: Output only. UI display hints for rendering a choice. + readOnly: true + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoiceDisplayHints + schemaCapabilities: + description: >- + Output only. The capabilities related to this option when editing + the option. + readOnly: true + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoiceSchemaCapabilities + appliedCapabilities: + description: >- + Output only. The capabilities related to this choice on applied + metadata. + readOnly: true + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoiceAppliedCapabilities + creator: + description: Output only. The user who created this choice. + readOnly: true + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaUserInfo' + createTime: + description: Output only. The time this choice was created. + readOnly: true + type: string + format: google-datetime + updater: + description: Output only. The user who updated this choice last. + readOnly: true + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaUserInfo' + updateTime: + description: Output only. The time this choice was updated last. + readOnly: true type: string + format: google-datetime + publisher: description: >- - The fields that should be updated. At least one field must be - specified. The root `properties` is implied and should not be - specified. A single `*` can be used as short-hand for updating every - field. - format: google-fieldmask - id: >- - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestUpdateSelectionChoicePropertiesRequest - GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoiceAppliedCapabilities: + Output only. The user who published this choice. This value has no + meaning when the choice is not published. + readOnly: true + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaUserInfo' + publishTime: + description: >- + Output only. The time this choice was published. This value has no + meaning when the choice is not published. + readOnly: true + type: string + format: google-datetime + disabler: + description: >- + Output only. The user who disabled this choice. This value has no + meaning when the option is not disabled. + readOnly: true + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaUserInfo' + disableTime: + description: >- + Output only. The time this choice was disabled. This value has no + meaning when the choice is not disabled. + readOnly: true + type: string + format: google-datetime + lockStatus: + description: Output only. The `LockStatus` of this choice. + readOnly: true + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLockStatus' + GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoiceProperties: + id: GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoiceProperties + description: Basic properties of the choice. type: object - description: The capabilities related to this choice on applied metadata. - id: >- - GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoiceAppliedCapabilities properties: - canRead: - description: Whether the user can read related applied metadata on items. - type: boolean - canSearch: - type: boolean - description: Whether the user can use this choice in search queries. - canSelect: - description: Whether the user can select this choice on an item. - type: boolean - GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoiceSchemaCapabilities: + displayName: + description: Required. The display text to show in the UI identifying this field. + type: string + description: + description: The description of this label. + type: string + badgeConfig: + description: >- + The badge configuration for this choice. When set, the label that + owns this choice is considered a "badged label". + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaBadgeConfig' + insertBeforeChoice: + description: >- + Input only. Insert or move this choice before the indicated choice. + If empty, the choice is placed at the end of the list. + type: string + GoogleAppsDriveLabelsV2betaBadgeConfig: + id: GoogleAppsDriveLabelsV2betaBadgeConfig + description: Badge status of the label. type: object properties: - canUpdate: - type: boolean - description: Whether the user can update this choice. - canEnable: - type: boolean - description: Whether the user can enable this choice. - canDelete: - description: Whether the user can delete this choice. - type: boolean - canDisable: - type: boolean - description: Whether the user can disable this choice. - id: GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoiceSchemaCapabilities - description: The capabilities related to this choice when editing the choice. - GoogleAppsDriveLabelsV2betaBatchUpdateLabelPermissionsRequest: - type: object - properties: - useAdminAccess: - type: boolean + color: description: >- - Set to `true` in order to use the user's admin credentials. The - server will verify the user is an admin for the Label before - allowing access. If this is set, the use_admin_access field in the - UpdateLabelPermissionRequest messages must either be empty or match - this field. - requests: - type: array - items: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaUpdateLabelPermissionRequest - description: Required. The request message specifying the resources to update. - id: GoogleAppsDriveLabelsV2betaBatchUpdateLabelPermissionsRequest - description: Updates one or more Label Permissions. - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestUpdateFieldPropertiesRequest: - type: object - properties: - properties: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaFieldProperties' - description: Required. Basic Field properties. - updateMask: - format: google-fieldmask + The color of the badge. When not specified, no badge is rendered. + The background, foreground, and solo (light and dark mode) colors + set here are changed in the Drive UI into the closest recommended + supported color. + $ref: '#/components/schemas/GoogleTypeColor' + priorityOverride: description: >- - The fields that should be updated. At least one field must be - specified. The root `properties` is implied and should not be - specified. A single `*` can be used as short-hand for updating every - field. - type: string - id: + Override the default global priority of this badge. When set to 0, + the default priority heuristic is used. type: string - description: Required. The Field to update. - id: >- - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestUpdateFieldPropertiesRequest - description: Request to update Field properties. - GoogleAppsDriveLabelsV2betaDateLimits: - id: GoogleAppsDriveLabelsV2betaDateLimits - properties: - minValue: - $ref: '#/components/schemas/GoogleTypeDate' - description: Minimum value for the date Field type. - maxValue: - description: Maximum value for the date Field type. - $ref: '#/components/schemas/GoogleTypeDate' - description: Limits for date Field type. - type: object - GoogleAppsDriveLabelsV2betaEnableLabelRequest: + format: int64 + GoogleTypeColor: + id: GoogleTypeColor + description: >- + Represents a color in the RGBA color space. This representation is + designed for simplicity of conversion to and from color representations + in various languages over compactness. For example, the fields of this + representation can be trivially provided to the constructor of + `java.awt.Color` in Java; it can also be trivially provided to UIColor's + `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little + work, it can be easily formatted into a CSS `rgba()` string in + JavaScript. This reference page doesn't have information about the + absolute color space that should be used to interpret the RGB value—for + example, sRGB, Adobe RGB, DCI-P3, and BT.2020. By default, applications + should assume the sRGB color space. When color equality needs to be + decided, implementations, unless documented otherwise, treat two colors + as equal if all their red, green, blue, and alpha values each differ by + at most `1e-5`. Example (Java): import com.google.type.Color; // ... + public static java.awt.Color fromProto(Color protocolor) { float alpha = + protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return + new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), + protocolor.getBlue(), alpha); } public static Color + toProto(java.awt.Color color) { float red = (float) color.getRed(); + float green = (float) color.getGreen(); float blue = (float) + color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder + = Color .newBuilder() .setRed(red / denominator) .setGreen(green / + denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); + if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() + .setValue(((float) alpha) / denominator) .build()); } return + resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static + UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; + float green = [protocolor green]; float blue = [protocolor blue]; + FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if + (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return + [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static + Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if + (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return + nil; } Color* result = [[Color alloc] init]; [result setRed:red]; + [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { + [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; + return result; } // ... Example (JavaScript): // ... var protoToCssColor + = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var + greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || + 0.0; var red = Math.floor(redFrac * 255); var green = + Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if + (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } + var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, + green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, + ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var + rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString + = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var + resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { + resultBuilder.push('0'); } resultBuilder.push(hexString); return + resultBuilder.join(''); }; // ... type: object - description: Request to enable a label. - id: GoogleAppsDriveLabelsV2betaEnableLabelRequest properties: - languageCode: - description: >- - The BCP-47 language code to use for evaluating localized field - labels. When not specified, values in the default configured - language will be used. - type: string - useAdminAccess: - type: boolean - description: >- - Set to `true` in order to use the user's admin credentials. The - server will verify the user is an admin for the Label before - allowing access. - writeControl: + red: + description: The amount of red in the color as a value in the interval [0, 1]. + type: number + format: float + green: + description: The amount of green in the color as a value in the interval [0, 1]. + type: number + format: float + blue: + description: The amount of blue in the color as a value in the interval [0, 1]. + type: number + format: float + alpha: description: >- - Provides control over how write requests are executed. Defaults to - unset, which means last write wins. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaWriteControl' - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseDisableSelectionChoiceResponse: - type: object - id: >- - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseDisableSelectionChoiceResponse - description: Response following Choice disable. - properties: {} - GoogleAppsDriveLabelsV2betaField: + The fraction of this color that should be applied to the pixel. That + is, the final pixel color is defined by the equation: `pixel color = + alpha * (this color) + (1.0 - alpha) * (background color)` This + means that a value of 1.0 corresponds to a solid color, whereas a + value of 0.0 corresponds to a completely transparent color. This + uses a wrapper message rather than a simple float scalar so that it + is possible to distinguish between a default value and the value + being unset. If omitted, this color object is rendered as a solid + color (as if the alpha value had been explicitly given a value of + 1.0). + type: number + format: float + GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoiceDisplayHints: + id: GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoiceDisplayHints + description: UI display hints for rendering an option. type: object properties: - selectionOptions: - description: Selection field options. - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaFieldSelectionOptions - updateTime: - description: Output only. The time this field was updated. - type: string - readOnly: true - format: google-datetime - id: - type: string - readOnly: true + disabled: + description: Whether the option should be shown in the UI as disabled. + type: boolean + hiddenInSearch: description: >- - Output only. The key of a field, unique within a label or library. - This value is autogenerated. Matches the regex: `([a-zA-Z0-9])+` - integerOptions: - description: Integer field options. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaFieldIntegerOptions' - publisher: - readOnly: true - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaUserInfo' + This option should be hidden in the search menu when searching for + Drive items. + type: boolean + shownInApply: description: >- - Output only. The user who published this field. This value has no - meaning when the field is not published. - lifecycle: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLifecycle' - readOnly: true - description: Output only. The lifecycle of this field. - lockStatus: - description: Output only. The LockStatus of this field. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLockStatus' - readOnly: true - creator: - description: Output only. The user who created this field. - readOnly: true - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaUserInfo' - properties: - description: The basic properties of the field. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaFieldProperties' - userOptions: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaFieldUserOptions' - description: User field options. - disableTime: - type: string - readOnly: true + This option should be shown in the apply menu when applying values + to a Drive item. + type: boolean + badgeColors: description: >- - Output only. The time this field was disabled. This value has no - meaning when the field is not disabled. - format: google-datetime - textOptions: - description: Text field options. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaFieldTextOptions' - dateOptions: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaFieldDateOptions' - description: Date field options. - updater: - readOnly: true - description: Output only. The user who modified this field. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaUserInfo' - displayHints: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaFieldDisplayHints' - readOnly: true - description: Output only. UI display hints for rendering a field. - disabler: - readOnly: true - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaUserInfo' + The colors to use for the badge. Changed to Google Material colors + based on the chosen `properties.badge_config.color`. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaBadgeColors' + darkBadgeColors: description: >- - Output only. The user who disabled this field. This value has no - meaning when the field is not disabled. - queryKey: + The dark-mode color to use for the badge. Changed to Google Material + colors based on the chosen `properties.badge_config.color`. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaBadgeColors' + badgePriority: description: >- - Output only. The key to use when constructing Drive search queries - to find files based on values defined for this field on files. For - example, "`{query_key}` > 2001-01-01". - readOnly: true + The priority of this badge. Used to compare and sort between + multiple badges. A lower number means the badge should be shown + first. When a badging configuration is not present, this will be 0. + Otherwise, this will be set to `BadgeConfig.priority_override` or + the default heuristic which prefers creation date of the label, and + field and option priority. type: string - schemaCapabilities: - description: Output only. The capabilities this user has when editing this field. - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaFieldSchemaCapabilities + format: int64 + GoogleAppsDriveLabelsV2betaBadgeColors: + id: GoogleAppsDriveLabelsV2betaBadgeColors + description: >- + The color derived from BadgeConfig and changed to the closest + recommended supported color. + type: object + properties: + backgroundColor: + description: Output only. Badge background that pairs with the foreground. readOnly: true - appliedCapabilities: + $ref: '#/components/schemas/GoogleTypeColor' + foregroundColor: + description: Output only. Badge foreground that pairs with the background. readOnly: true - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaFieldAppliedCapabilities - description: >- - Output only. The capabilities this user has on this field and its - value when the label is applied on Drive items. - createTime: - type: string - format: google-datetime + $ref: '#/components/schemas/GoogleTypeColor' + soloColor: + description: Output only. Color that can be used for text without a background. readOnly: true - description: Output only. The time this field was created. - id: GoogleAppsDriveLabelsV2betaField - description: >- - Defines a field that has a display name, data type, and other - configuration options. This field defines the kind of metadata that may - be set on a Drive item. - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestDisableSelectionChoiceRequest: + $ref: '#/components/schemas/GoogleTypeColor' + GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoiceSchemaCapabilities: + id: GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoiceSchemaCapabilities + description: The capabilities related to this choice when editing the choice. type: object + properties: + canUpdate: + description: Whether the user can update this choice. + type: boolean + canDelete: + description: Whether the user can delete this choice. + type: boolean + canDisable: + description: Whether the user can disable this choice. + type: boolean + canEnable: + description: Whether the user can enable this choice. + type: boolean + GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoiceAppliedCapabilities: id: >- - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestDisableSelectionChoiceRequest - description: Request to disable a Choice. + GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoiceAppliedCapabilities + description: The capabilities related to this choice on applied metadata. + type: object properties: - fieldId: - type: string - description: Required. The Selection Field in which a Choice will be disabled. - id: - description: Required. Choice to disable. - type: string - updateMask: + canRead: + description: Whether the user can read related applied metadata on items. + type: boolean + canSearch: + description: Whether the user can use this choice in search queries. + type: boolean + canSelect: + description: Whether the user can select this choice on an item. + type: boolean + GoogleAppsDriveLabelsV2betaLockStatus: + id: GoogleAppsDriveLabelsV2betaLockStatus + description: >- + Contains information about whether a label component should be + considered locked. + type: object + properties: + locked: description: >- - The fields that should be updated. At least one field must be - specified. The root `disabled_policy` is implied and should not be - specified. A single `*` can be used as short-hand for updating every - field. - type: string - format: google-fieldmask - disabledPolicy: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaLifecycleDisabledPolicy - description: Required. The disabled policy to update. - GoogleAppsDriveLabelsV2betaFieldSelectionOptions: - id: GoogleAppsDriveLabelsV2betaFieldSelectionOptions - description: Options for the selection field type. + Output only. Indicates whether this label component is the (direct) + target of a label lock. A label component can be implicitly locked + even if it's not the direct target of a label lock, in which case + this field is set to false. + readOnly: true + type: boolean + GoogleAppsDriveLabelsV2betaFieldUserOptions: + id: GoogleAppsDriveLabelsV2betaFieldUserOptions + description: Options for the user field type. type: object properties: listOptions: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaFieldListOptions' description: >- - When specified, indicates this field supports a list of values. Once - the field is published, this cannot be changed. - choices: - items: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoice - type: array - description: >- - The options available for this selection field. The list order is - consistent, and modified with `insert_before_choice`. - GoogleAppsDriveLabelsV2betaLongTextLimits: - description: Limits for long text Field type. - properties: - maxLength: - type: integer - description: Maximum length allowed for a long text Field type. - format: int32 - minLength: - format: int32 - description: Minimum length allowed for a long text Field type. - type: integer - id: GoogleAppsDriveLabelsV2betaLongTextLimits - type: object + When specified, indicates that this field supports a list of values. + Once the field is published, this cannot be changed. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaFieldListOptions' GoogleAppsDriveLabelsV2betaFieldProperties: + id: GoogleAppsDriveLabelsV2betaFieldProperties + description: The basic properties of the field. type: object properties: - insertBeforeField: + displayName: + description: Required. The display text to show in the UI identifying this field. type: string + required: + description: Whether the field should be marked as required. + type: boolean + insertBeforeField: description: >- Input only. Insert or move this field before the indicated field. If empty, the field is placed at the end of the list. - displayName: type: string - description: Required. The display text to show in the UI identifying this field. + GoogleAppsDriveLabelsV2betaFieldDisplayHints: + id: GoogleAppsDriveLabelsV2betaFieldDisplayHints + description: UI display hints for rendering a field. + type: object + properties: required: - description: Whether the field should be marked as required. + description: Whether the field should be shown as required in the UI. type: boolean - id: GoogleAppsDriveLabelsV2betaFieldProperties - description: The basic properties of the field. - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseCreateSelectionChoiceResponse: - id: >- - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseCreateSelectionChoiceResponse + disabled: + description: Whether the field should be shown in the UI as disabled. + type: boolean + hiddenInSearch: + description: >- + This field should be hidden in the search menu when searching for + Drive items. + type: boolean + shownInApply: + description: >- + This field should be shown in the apply menu when applying values to + a Drive item. + type: boolean + GoogleAppsDriveLabelsV2betaFieldSchemaCapabilities: + id: GoogleAppsDriveLabelsV2betaFieldSchemaCapabilities + description: The capabilities related to this field when editing the field. type: object properties: - fieldId: - description: The server-generated id of the field. - type: string - id: - description: The server-generated ID of the created choice within the Field + canUpdate: + description: Whether the user can change this field. + type: boolean + canDelete: + description: >- + Whether the user can delete this field. The user must have + permission and the field must be deprecated. + type: boolean + canDisable: + description: >- + Whether the user can disable this field. The user must have + permission and this field must not already be disabled. + type: boolean + canEnable: + description: >- + Whether the user can enable this field. The user must have + permission and this field must be disabled. + type: boolean + GoogleAppsDriveLabelsV2betaFieldAppliedCapabilities: + id: GoogleAppsDriveLabelsV2betaFieldAppliedCapabilities + description: The capabilities related to this field on applied metadata. + type: object + properties: + canRead: + description: Whether the user can read related applied metadata on items. + type: boolean + canSearch: + description: Whether the user can search for Drive items referencing this field. + type: boolean + canWrite: + description: Whether the user can set this field on Drive items. + type: boolean + GoogleAppsDriveLabelsV2betaLabelEnabledAppSettings: + id: GoogleAppsDriveLabelsV2betaLabelEnabledAppSettings + description: Describes the Google Workspace apps in which the label can be used. + type: object + properties: + enabledApps: + description: Optional. The list of apps where the label can be used. + type: array + items: + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaLabelEnabledAppSettingsEnabledApp + GoogleAppsDriveLabelsV2betaLabelEnabledAppSettingsEnabledApp: + id: GoogleAppsDriveLabelsV2betaLabelEnabledAppSettingsEnabledApp + description: An app where the label can be used. + type: object + properties: + app: + description: Optional. The name of the app. type: string - description: Response following Selection Choice create. + enumDescriptions: + - Unspecified + - Drive + - Gmail + enum: + - APP_UNSPECIFIED + - DRIVE + - GMAIL GoogleAppsDriveLabelsV2betaLabelLimits: - type: object id: GoogleAppsDriveLabelsV2betaLabelLimits + description: >- + Label constraints governing the structure of a label; such as, the + maximum number of fields allowed and maximum length of the label title. + type: object properties: - maxDeletedFields: - type: integer - format: int32 - description: The maximum number of published Fields that can be deleted. - fieldLimits: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaFieldLimits' - description: The limits for Fields. name: - type: string description: Resource name. + type: string + maxTitleLength: + description: The maximum number of characters allowed for the title. + type: integer + format: int32 maxDescriptionLength: description: The maximum number of characters allowed for the description. - format: int32 type: integer + format: int32 maxFields: + description: The maximum number of fields allowed within the label. + type: integer + format: int32 + maxDeletedFields: + description: The maximum number of published fields that can be deleted. type: integer - description: The maximum number of Fields allowed within the label. format: int32 maxDraftRevisions: - type: integer description: >- The maximum number of draft revisions that will be kept before deleting old drafts. - format: int32 - maxTitleLength: - format: int32 - description: The maximum number of characters allowed for the title. type: integer - description: >- - Label constraints governing the structure of a Label; such as, the - maximum number of Fields allowed and maximum length of the label title. - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponse: - properties: - responses: - items: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseResponse - description: >- - The reply of the updates. This maps 1:1 with the updates, although - responses to some requests may be empty. - type: array - updatedLabel: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLabel' - description: >- - The label after updates were applied. This is only set if - [BatchUpdateLabelResponse2.include_label_in_response] is `true` and - there were no errors. - description: Response for Label update. - id: GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponse - type: object - GoogleAppsDriveLabelsV2betaBadgeConfig: - type: object - properties: - priorityOverride: - type: string - format: int64 - description: >- - Override the default global priority of this badge. When set to 0, - the default priority heuristic is used. - color: - description: >- - The color of the badge. When not specified, no badge is rendered. - The background, foreground, and solo (light and dark mode) colors - set here are changed in the Drive UI into the closest recommended - supported color. - $ref: '#/components/schemas/GoogleTypeColor' - id: GoogleAppsDriveLabelsV2betaBadgeConfig - description: Badge status of the label. - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseEnableFieldResponse: - properties: {} - type: object - id: GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseEnableFieldResponse - description: Response following Field enable. + format: int32 + fieldLimits: + description: The limits for fields. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaFieldLimits' GoogleAppsDriveLabelsV2betaFieldLimits: id: GoogleAppsDriveLabelsV2betaFieldLimits description: >- - Field constants governing the structure of a Field; such as, the maximum + Field constants governing the structure of a field; such as, the maximum title length, minimum and maximum field values or length, etc. + type: object properties: - longTextLimits: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLongTextLimits' - description: Long text Field limits. - dateLimits: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaDateLimits' - description: Date Field limits. - maxDescriptionLength: - description: Limits for Field description, also called help text. - type: integer - format: int32 maxIdLength: - description: Max length for the id. + description: Maximum length for the id. type: integer format: int32 maxDisplayNameLength: + description: Limits for field title. type: integer format: int32 - description: Limits for Field title. - selectionLimits: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaSelectionLimits' - description: Selection Field limits. + maxDescriptionLength: + description: Limits for field description, also called help text. + type: integer + format: int32 + textLimits: + description: The relevant limits for the specified Field.Type. Text field limits. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaTextLimits' + longTextLimits: + description: Long text field limits. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLongTextLimits' integerLimits: + description: Integer field limits. $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaIntegerLimits' - description: Integer Field limits. + dateLimits: + description: Date field limits. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaDateLimits' userLimits: - description: User Field limits. + description: User field limits. $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaUserLimits' - textLimits: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaTextLimits' - description: The relevant limits for the specified Field.Type. Text Field limits. - type: object - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseUpdateFieldTypeResponse: - description: Response following update to Field type. - id: >- - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseUpdateFieldTypeResponse + selectionLimits: + description: Selection field limits. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaSelectionLimits' + GoogleAppsDriveLabelsV2betaTextLimits: + id: GoogleAppsDriveLabelsV2betaTextLimits + description: Limits for text field type. type: object - properties: {} - GoogleTypeDate: properties: - month: + minLength: + description: Minimum length allowed for a text field type. + type: integer format: int32 - description: >- - Month of a year. Must be from 1 to 12, or 0 to specify a year - without a month and day. + maxLength: + description: Maximum length allowed for a text field type. type: integer - day: - description: >- - Day of a month. Must be from 1 to 31 and valid for the year and - month, or 0 to specify a year by itself or a year and month where - the day isn't significant. + format: int32 + GoogleAppsDriveLabelsV2betaLongTextLimits: + id: GoogleAppsDriveLabelsV2betaLongTextLimits + description: Limits for long text field type. + type: object + properties: + minLength: + description: Minimum length allowed for a long text field type. type: integer format: int32 - year: + maxLength: + description: Maximum length allowed for a long text field type. type: integer - description: >- - Year of the date. Must be from 1 to 9999, or 0 to specify a date - without a year. format: int32 - description: >- - Represents a whole or partial calendar date, such as a birthday. The - time of day and time zone are either specified elsewhere or are - insignificant. The date is relative to the Gregorian Calendar. This can - represent one of the following: * A full date, with non-zero year, - month, and day values. * A month and day, with a zero year (for example, - an anniversary). * A year on its own, with a zero month and a zero day. - * A year and month, with a zero day (for example, a credit card - expiration date). Related types: * google.type.TimeOfDay * - google.type.DateTime * google.protobuf.Timestamp + GoogleAppsDriveLabelsV2betaIntegerLimits: + id: GoogleAppsDriveLabelsV2betaIntegerLimits + description: Limits for integer field type. type: object - id: GoogleTypeDate - GoogleAppsDriveLabelsV2betaFieldIntegerOptions: properties: minValue: - description: Output only. The minimum valid value for the integer field. - readOnly: true - format: int64 + description: Minimum value for an integer field type. type: string - maxValue: format: int64 - readOnly: true + maxValue: + description: Maximum value for an integer field type. type: string - description: Output only. The maximum valid value for the integer field. - description: Options for the Integer field type. + format: int64 + GoogleAppsDriveLabelsV2betaDateLimits: + id: GoogleAppsDriveLabelsV2betaDateLimits + description: Limits for date field type. type: object - id: GoogleAppsDriveLabelsV2betaFieldIntegerOptions - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseEnableSelectionChoiceResponse: - description: Response following Choice enable. - id: >- - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseEnableSelectionChoiceResponse - properties: {} + properties: + minValue: + description: Minimum value for the date field type. + $ref: '#/components/schemas/GoogleTypeDate' + maxValue: + description: Maximum value for the date field type. + $ref: '#/components/schemas/GoogleTypeDate' + GoogleAppsDriveLabelsV2betaUserLimits: + id: GoogleAppsDriveLabelsV2betaUserLimits + description: Limits for Field.Type.USER. type: object - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseDeleteFieldResponse: - description: Response following Field delete. - properties: {} + properties: + listLimits: + description: Limits for list-variant of a field type. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaListLimits' + GoogleAppsDriveLabelsV2betaListLimits: + id: GoogleAppsDriveLabelsV2betaListLimits + description: Limits for list-variant of a field type. type: object - id: GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseDeleteFieldResponse - GoogleAppsDriveLabelsV2betaLabelAppliedCapabilities: - id: GoogleAppsDriveLabelsV2betaLabelAppliedCapabilities + properties: + maxEntries: + description: Maximum number of values allowed for the field type. + type: integer + format: int32 + GoogleAppsDriveLabelsV2betaSelectionLimits: + id: GoogleAppsDriveLabelsV2betaSelectionLimits + description: Limits for selection field type. type: object - description: The capabilities a user has on this label's applied metadata. properties: - canApply: - description: Whether the user can apply this label to items. - type: boolean - canRemove: - description: Whether the user can remove this label from items. - type: boolean - canRead: + listLimits: + description: Limits for list-variant of a field type. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaListLimits' + maxIdLength: + description: Maximum ID length for a selection option. + type: integer + format: int32 + maxDisplayNameLength: + description: Maximum length for display name. + type: integer + format: int32 + maxChoices: + description: Maximum number of choices. + type: integer + format: int32 + maxDeletedChoices: + description: Maximum number of deleted choices. + type: integer + format: int32 + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequest: + id: GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequest + description: >- + The set of requests for updating aspects of a label. If any request + isn't valid, no requests will be applied. + type: object + properties: + writeControl: + description: Provides control over how write requests are executed. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaWriteControl' + requests: + description: >- + A list of updates to apply to the label. Requests will be applied in + the order they are specified. + type: array + items: + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestRequest + useAdminAccess: + description: >- + Set to `true` in order to use the user's admin credentials. The + server will verify the user is an admin for the label before + allowing access. type: boolean - description: Whether the user can read applied metadata related to this label. - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestDisableFieldRequest: - id: GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestDisableFieldRequest - description: Request to disable the Field. + view: + description: >- + When specified, only certain fields belonging to the indicated view + will be returned. + type: string + enumDescriptions: + - >- + Implies the field mask: + `name,id,revision_id,label_type,properties.*` + - All possible fields. + enum: + - LABEL_VIEW_BASIC + - LABEL_VIEW_FULL + languageCode: + description: >- + The BCP-47 language code to use for evaluating localized field + labels when `include_label_in_response` is `true`. + type: string + GoogleAppsDriveLabelsV2betaWriteControl: + id: GoogleAppsDriveLabelsV2betaWriteControl + description: >- + Provides control over how write requests are executed. When not + specified, the last write wins. + type: object + properties: + requiredRevisionId: + description: >- + The revision ID of the label that the write request will be applied + to. If this isn't the latest revision of the label, the request will + not be processed and will return a 400 Bad Request error. + type: string + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestRequest: + id: GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestRequest + description: A single kind of update to apply to a label. + type: object + properties: + updateLabel: + description: Updates the label properties. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestUpdateLabelPropertiesRequest + createField: + description: Creates a field. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestCreateFieldRequest + updateField: + description: Updates basic properties of a field. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestUpdateFieldPropertiesRequest + updateFieldType: + description: Update field type and/or type options. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestUpdateFieldTypeRequest + enableField: + description: Enables the field. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestEnableFieldRequest + disableField: + description: Disables the field. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestDisableFieldRequest + deleteField: + description: Deletes a field from the label. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestDeleteFieldRequest + createSelectionChoice: + description: Create a choice within a selection field. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestCreateSelectionChoiceRequest + updateSelectionChoiceProperties: + description: Update a choice property within a selection field. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestUpdateSelectionChoicePropertiesRequest + enableSelectionChoice: + description: Enable a choice within a selection field. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestEnableSelectionChoiceRequest + disableSelectionChoice: + description: Disable a choice within a selection field. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestDisableSelectionChoiceRequest + deleteSelectionChoice: + description: Delete a choice within a selection field. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestDeleteSelectionChoiceRequest + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestUpdateLabelPropertiesRequest: + id: >- + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestUpdateLabelPropertiesRequest + description: Updates basic properties of a label. type: object properties: - id: - description: Required. Key of the Field to disable. - type: string - disabledPolicy: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaLifecycleDisabledPolicy - description: Required. Field Disabled Policy. updateMask: description: >- The fields that should be updated. At least one field must be - specified. The root `disabled_policy` is implied and should not be - specified. A single `*` can be used as short-hand for updating every - field. - format: google-fieldmask - type: string - GoogleAppsDriveLabelsV2betaFieldDateOptions: - properties: - minValue: - readOnly: true - description: Output only. Minimum valid value (year, month, day). - $ref: '#/components/schemas/GoogleTypeDate' - dateFormat: - type: string - readOnly: true - description: Output only. ICU date format. - maxValue: - readOnly: true - description: Output only. Maximum valid value (year, month, day). - $ref: '#/components/schemas/GoogleTypeDate' - dateFormatType: + specified. The root `label_properties` is implied and should not be + specified. A single `*` can be used as a short-hand for updating + every field. type: string - description: >- - Localized date formatting option. Field values are rendered in this - format according to their locale. - enumDescriptions: - - Date format unspecified. - - >- - Includes full month name. For example, January 12, 1999 (MMMM d, - y) - - Short, numeric, representation. For example, 12/13/99 (M/d/yy) - enum: - - DATE_FORMAT_UNSPECIFIED - - LONG_DATE - - SHORT_DATE - type: object - description: Options for the date field type. - id: GoogleAppsDriveLabelsV2betaFieldDateOptions + format: google-fieldmask + properties: + description: Required. Label properties to update. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLabelProperties' GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestCreateFieldRequest: - description: Request to create a Field within a Label. + id: GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestCreateFieldRequest + description: Request to create a field within a label. + type: object properties: field: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaField' description: Required. Field to create. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaField' + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestUpdateFieldPropertiesRequest: + id: >- + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestUpdateFieldPropertiesRequest + description: Request to update field properties. type: object - id: GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestCreateFieldRequest - GoogleAppsDriveLabelsV2betaFieldTextOptions: - type: object - id: GoogleAppsDriveLabelsV2betaFieldTextOptions - properties: - maxLength: - description: Output only. The maximum valid length of values for the text field. - type: integer - readOnly: true - format: int32 - minLength: - format: int32 - type: integer - description: Output only. The minimum valid length of values for the text field. - readOnly: true - description: Options for the Text field type. - GoogleAppsDriveLabelsV2betaUserCapabilities: properties: - name: - type: string - readOnly: true - description: Output only. Resource name for the user capabilities. - canCreateSharedLabels: - description: >- - Output only. Whether the user is allowed to create new shared - labels. - type: boolean - readOnly: true - canCreateAdminLabels: - readOnly: true - type: boolean - description: Output only. Whether the user is allowed to create new admin labels. - canAdministrateLabels: - readOnly: true - description: >- - Output only. Whether the user is an administrator for the shared - labels feature. - type: boolean - canAccessLabelManager: - readOnly: true - type: boolean + updateMask: description: >- - Output only. Whether the user is allowed access to the label - manager. - description: The capabilities of a user. - type: object - id: GoogleAppsDriveLabelsV2betaUserCapabilities - GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoiceDisplayHints: - description: UI display hints for rendering an option. + The fields that should be updated. At least one field must be + specified. The root `properties` is implied and should not be + specified. A single `*` can be used as a short-hand for updating + every field. + type: string + format: google-fieldmask + id: + description: Required. The field to update. + type: string + properties: + description: Required. Basic field properties. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaFieldProperties' + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestUpdateFieldTypeRequest: + id: GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestUpdateFieldTypeRequest + description: Request to change the type of a field. type: object - id: GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoiceDisplayHints properties: - badgeColors: + textOptions: + description: Update field to Text. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaFieldTextOptions' + integerOptions: + description: Update field to Integer. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaFieldIntegerOptions' + dateOptions: + description: Update field to Date. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaFieldDateOptions' + selectionOptions: + description: Update field to Selection. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaFieldSelectionOptions + userOptions: + description: Update field to User. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaFieldUserOptions' + updateMask: description: >- - The colors to use for the badge. Changed to Google Material colors - based on the chosen `properties.badge_config.color`. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaBadgeColors' - badgePriority: + The fields that should be updated. At least one field must be + specified. The root of `type_options` is implied and should not be + specified. A single `*` can be used as a short-hand for updating + every field. type: string - format: int64 - description: >- - The priority of this badge. Used to compare and sort between - multiple badges. A lower number means the badge should be shown - first. When a badging configuration is not present, this will be 0. - Otherwise, this will be set to `BadgeConfig.priority_override` or - the default heuristic which prefers creation date of the label, and - field and option priority. - shownInApply: - type: boolean - description: >- - This option should be shown in the apply menu when applying values - to a Drive item. - hiddenInSearch: - description: >- - This option should be hidden in the search menu when searching for - Drive items. - type: boolean - darkBadgeColors: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaBadgeColors' - description: >- - The dark-mode color to use for the badge. Changed to Google Material - colors based on the chosen `properties.badge_config.color`. - disabled: - type: boolean - description: Whether the option should be shown in the UI as disabled. - GoogleAppsDriveLabelsV2betaLabelSchemaCapabilities: + format: google-fieldmask + id: + description: Required. The field to update. + type: string + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestEnableFieldRequest: + id: GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestEnableFieldRequest + description: Request to enable the field. type: object - description: The capabilities related to this label when editing the label. - id: GoogleAppsDriveLabelsV2betaLabelSchemaCapabilities properties: - canDelete: - description: >- - Whether the user can delete this label. The user must have - permission and the label must be disabled. - type: boolean - canDisable: - description: >- - Whether the user can disable this label. The user must have - permission and this label must not already be disabled. - type: boolean - canEnable: - type: boolean - description: >- - Whether the user can enable this label. The user must have - permission and this label must be disabled. - canUpdate: - description: Whether the user can change this label. - type: boolean - GoogleAppsDriveLabelsV2betaUpdateLabelPermissionRequest: + id: + description: Required. ID of the field to enable. + type: string + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestDisableFieldRequest: + id: GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestDisableFieldRequest + description: Request to disable the field. type: object properties: - labelPermission: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLabelPermission' - description: Required. The permission to create or update on the Label. - useAdminAccess: - type: boolean + updateMask: description: >- - Set to `true` in order to use the user's admin credentials. The - server will verify the user is an admin for the Label before - allowing access. - parent: + The fields that should be updated. At least one field must be + specified. The root `disabled_policy` is implied and should not be + specified. A single `*` can be used as a short-hand for updating + every field. type: string - description: Required. The parent Label resource name. - description: >- - Updates a Label Permission. Permissions affect the Label resource as a - whole, are not revisioned, and do not require publishing. - id: GoogleAppsDriveLabelsV2betaUpdateLabelPermissionRequest - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseDeleteSelectionChoiceResponse: - description: Response following Choice delete. - type: object - properties: {} - id: >- - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseDeleteSelectionChoiceResponse - GoogleAppsDriveLabelsV2betaListLabelLocksResponse: - type: object - properties: - labelLocks: - description: LabelLocks. - type: array - items: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLabelLock' - nextPageToken: - description: The token of the next page in the response. + format: google-fieldmask + id: + description: Required. Key of the field to disable. type: string - id: GoogleAppsDriveLabelsV2betaListLabelLocksResponse - description: The response to a ListLabelLocksRequest. - GoogleAppsDriveLabelsV2betaBadgeColors: - type: object - id: GoogleAppsDriveLabelsV2betaBadgeColors - description: >- - The color derived from BadgeConfig and changed to the closest - recommended supported color. - properties: - backgroundColor: - $ref: '#/components/schemas/GoogleTypeColor' - description: Output only. Badge background that pairs with the foreground. - readOnly: true - soloColor: - description: Output only. Color that can be used for text without a background. - readOnly: true - $ref: '#/components/schemas/GoogleTypeColor' - foregroundColor: - readOnly: true - description: Output only. Badge foreground that pairs with the background. - $ref: '#/components/schemas/GoogleTypeColor' - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseCreateFieldResponse: - description: Response following Field create. - id: GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseCreateFieldResponse + disabledPolicy: + description: Required. Field disabled policy. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaLifecycleDisabledPolicy + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestDeleteFieldRequest: + id: GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestDeleteFieldRequest + description: Request to delete the field. type: object properties: id: + description: Required. ID of the field to delete. type: string - description: >- - The field of the created field. When left blank in a create request, - a key will be autogenerated and can be identified here. - priority: - format: int32 - type: integer - description: >- - The priority of the created field. The priority may change from what - was specified to assure contiguous priorities between fields (1-n). - GoogleAppsDriveLabelsV2betaLabelProperties: + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestCreateSelectionChoiceRequest: + id: >- + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestCreateSelectionChoiceRequest + description: Request to create a selection choice. type: object - id: GoogleAppsDriveLabelsV2betaLabelProperties - description: Basic properties of the label. properties: - title: - type: string - description: Required. Title of the label. - description: - description: The description of the label. + fieldId: + description: Required. The selection field in which a choice will be created. type: string - GoogleTypeColor: - id: GoogleTypeColor - properties: - red: - type: number - format: float - description: The amount of red in the color as a value in the interval [0, 1]. - alpha: - type: number - description: >- - The fraction of this color that should be applied to the pixel. That - is, the final pixel color is defined by the equation: `pixel color = - alpha * (this color) + (1.0 - alpha) * (background color)` This - means that a value of 1.0 corresponds to a solid color, whereas a - value of 0.0 corresponds to a completely transparent color. This - uses a wrapper message rather than a simple float scalar so that it - is possible to distinguish between a default value and the value - being unset. If omitted, this color object is rendered as a solid - color (as if the alpha value had been explicitly given a value of - 1.0). - format: float - green: - type: number - description: The amount of green in the color as a value in the interval [0, 1]. - format: float - blue: - type: number - format: float - description: The amount of blue in the color as a value in the interval [0, 1]. - type: object - description: >- - Represents a color in the RGBA color space. This representation is - designed for simplicity of conversion to and from color representations - in various languages over compactness. For example, the fields of this - representation can be trivially provided to the constructor of - `java.awt.Color` in Java; it can also be trivially provided to UIColor's - `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little - work, it can be easily formatted into a CSS `rgba()` string in - JavaScript. This reference page doesn't have information about the - absolute color space that should be used to interpret the RGB value—for - example, sRGB, Adobe RGB, DCI-P3, and BT.2020. By default, applications - should assume the sRGB color space. When color equality needs to be - decided, implementations, unless documented otherwise, treat two colors - as equal if all their red, green, blue, and alpha values each differ by - at most `1e-5`. Example (Java): import com.google.type.Color; // ... - public static java.awt.Color fromProto(Color protocolor) { float alpha = - protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return - new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), - protocolor.getBlue(), alpha); } public static Color - toProto(java.awt.Color color) { float red = (float) color.getRed(); - float green = (float) color.getGreen(); float blue = (float) - color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder - = Color .newBuilder() .setRed(red / denominator) .setGreen(green / - denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); - if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() - .setValue(((float) alpha) / denominator) .build()); } return - resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static - UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; - float green = [protocolor green]; float blue = [protocolor blue]; - FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if - (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return - [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static - Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if - (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return - nil; } Color* result = [[Color alloc] init]; [result setRed:red]; - [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { - [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; - return result; } // ... Example (JavaScript): // ... var protoToCssColor - = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var - greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || - 0.0; var red = Math.floor(redFrac * 255); var green = - Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if - (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } - var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, - green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, - ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var - rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString - = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var - resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { - resultBuilder.push('0'); } resultBuilder.push(hexString); return - resultBuilder.join(''); }; // ... - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestUpdateLabelPropertiesRequest: + choice: + description: Required. The choice to create. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoice + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestUpdateSelectionChoicePropertiesRequest: id: >- - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestUpdateLabelPropertiesRequest - description: Updates basic properties of a Label. + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestUpdateSelectionChoicePropertiesRequest + description: Request to update a choice property. type: object properties: updateMask: description: >- The fields that should be updated. At least one field must be - specified. The root `label_properties` is implied and should not be - specified. A single `*` can be used as short-hand for updating every - field. + specified. The root `properties` is implied and should not be + specified. A single `*` can be used as a short-hand for updating + every field. type: string format: google-fieldmask + fieldId: + description: Required. The selection field to update. + type: string + id: + description: Required. The choice to update. + type: string properties: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLabelProperties' - description: Required. Label properties to update. - GoogleAppsDriveLabelsV2betaLabelPermission: - description: >- - The permission that applies to a principal (user, group, audience) on a - label. + description: Required. The choice properties to update. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoiceProperties + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestEnableSelectionChoiceRequest: + id: >- + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestEnableSelectionChoiceRequest + description: Request to enable a choice. type: object properties: - person: - description: Person resource name. + fieldId: + description: Required. The selection field in which a choice will be enabled. type: string - audience: + id: + description: Required. Choice to enable. + type: string + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestDisableSelectionChoiceRequest: + id: >- + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestDisableSelectionChoiceRequest + description: Request to disable a choice. + type: object + properties: + updateMask: description: >- - Audience to grant a role to. The magic value of `audiences/default` - may be used to apply the role to the default audience in the context - of the organization that owns the Label. + The fields that should be updated. At least one field must be + specified. The root `disabled_policy` is implied and should not be + specified. A single `*` can be used as a short-hand for updating + every field. type: string - group: - description: Group resource name. + format: google-fieldmask + fieldId: + description: Required. The selection field in which a choice will be disabled. type: string - email: - description: >- - Specifies the email address for a user or group pricinpal. Not - populated for audience principals. User and Group permissions may - only be inserted using email address. On update requests, if email - address is specified, no principal should be specified. + id: + description: Required. Choice to disable. type: string - name: - description: Resource name of this permission. + disabledPolicy: + description: Required. The disabled policy to update. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaLifecycleDisabledPolicy + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestDeleteSelectionChoiceRequest: + id: >- + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestDeleteSelectionChoiceRequest + description: Request to delete a choice. + type: object + properties: + fieldId: + description: Required. The selection field from which a choice will be deleted. type: string - role: - enumDescriptions: - - Unknown role. - - >- - A reader can read the label and associated metadata applied to - Drive items. - - >- - An applier can write associated metadata on Drive items in which - they also have write access to. Implies `READER`. - - >- - An organizer can pin this label in shared drives they manage and - add new appliers to the label. - - >- - Editors can make any update including deleting the label which - also deletes the associated Drive item metadata. Implies - `APPLIER`. - enum: - - LABEL_ROLE_UNSPECIFIED - - READER - - APPLIER - - ORGANIZER - - EDITOR + id: + description: Required. Choice to delete. type: string - description: The role the principal should have. - id: GoogleAppsDriveLabelsV2betaLabelPermission - GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoiceProperties: + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponse: + id: GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponse + description: Response for label update. + type: object + properties: + responses: + description: >- + The reply of the updates. This maps 1:1 with the updates, although + responses to some requests may be empty. + type: array + items: + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseResponse + updatedLabel: + description: >- + The label after updates were applied. This is only set if + `include_label_in_response` is `true` and there were no errors. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLabel' + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseResponse: + id: GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseResponse + description: A single response from an update. + type: object + properties: + updateLabel: + description: Updates basic properties of a label. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseUpdateLabelPropertiesResponse + createField: + description: Creates a field. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseCreateFieldResponse + updateField: + description: Updates basic properties of a field. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseUpdateFieldPropertiesResponse + updateFieldType: + description: Updates field type and/or type options. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseUpdateFieldTypeResponse + enableField: + description: Enables field. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseEnableFieldResponse + disableField: + description: Disables field. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseDisableFieldResponse + deleteField: + description: Deletes a field from the label. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseDeleteFieldResponse + createSelectionChoice: + description: Creates a selection list option to add to a selection field. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseCreateSelectionChoiceResponse + updateSelectionChoiceProperties: + description: Updates a choice within a selection field. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseUpdateSelectionChoicePropertiesResponse + enableSelectionChoice: + description: Enables a choice within a selection field. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseEnableSelectionChoiceResponse + disableSelectionChoice: + description: Disables a choice within a selection field. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseDisableSelectionChoiceResponse + deleteSelectionChoice: + description: Deletes a choice from a selection field. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseDeleteSelectionChoiceResponse + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseUpdateLabelPropertiesResponse: + id: >- + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseUpdateLabelPropertiesResponse + description: Response following update to label properties. + type: object + properties: {} + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseCreateFieldResponse: + id: GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseCreateFieldResponse + description: Response following field create. type: object properties: - badgeConfig: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaBadgeConfig' + id: description: >- - The badge configuration for this choice. When set, the label that - owns this choice is considered a "badged label". - displayName: - description: Required. The display text to show in the UI identifying this field. - type: string - insertBeforeChoice: + The field of the created field. When left blank in a create request, + a key will be autogenerated and can be identified here. type: string + priority: description: >- - Input only. Insert or move this choice before the indicated choice. - If empty, the choice is placed at the end of the list. - description: - description: The description of this label. - type: string - id: GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoiceProperties - description: Basic properties of the choice. - GoogleAppsDriveLabelsV2betaIntegerLimits: - description: Limits for integer Field type. + The priority of the created field. The priority may change from what + was specified to assure contiguous priorities between fields (1-n). + type: integer + format: int32 + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseUpdateFieldPropertiesResponse: + id: >- + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseUpdateFieldPropertiesResponse + description: Response following update to field properties. type: object - id: GoogleAppsDriveLabelsV2betaIntegerLimits properties: - minValue: + priority: + description: >- + The priority of the updated field. The priority may change from what + was specified to assure contiguous priorities between fields (1-n). + type: integer + format: int32 + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseUpdateFieldTypeResponse: + id: >- + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseUpdateFieldTypeResponse + description: Response following update to field type. + type: object + properties: {} + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseEnableFieldResponse: + id: GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseEnableFieldResponse + description: Response following field enable. + type: object + properties: {} + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseDisableFieldResponse: + id: GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseDisableFieldResponse + description: Response following field disable. + type: object + properties: {} + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseDeleteFieldResponse: + id: GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseDeleteFieldResponse + description: Response following field delete. + type: object + properties: {} + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseCreateSelectionChoiceResponse: + id: >- + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseCreateSelectionChoiceResponse + description: Response following selection choice create. + type: object + properties: + fieldId: + description: The server-generated ID of the field. type: string - format: int64 - description: Minimum value for an integer Field type. - maxValue: + id: + description: The server-generated ID of the created choice within the field. type: string - description: Maximum value for an integer Field type. - format: int64 - GoogleAppsDriveLabelsV2betaLabelAppliedLabelPolicy: + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseUpdateSelectionChoicePropertiesResponse: + id: >- + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseUpdateSelectionChoicePropertiesResponse + description: Response following update to selection choice properties. + type: object + properties: + priority: + description: >- + The priority of the updated choice. The priority may change from + what was specified to assure contiguous priorities between choices + (1-n). + type: integer + format: int32 + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseEnableSelectionChoiceResponse: + id: >- + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseEnableSelectionChoiceResponse + description: Response following choice enable. + type: object + properties: {} + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseDisableSelectionChoiceResponse: + id: >- + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseDisableSelectionChoiceResponse + description: Response following choice disable. + type: object + properties: {} + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseDeleteSelectionChoiceResponse: + id: >- + GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseDeleteSelectionChoiceResponse + description: Response following choice delete. + type: object + properties: {} + GoogleAppsDriveLabelsV2betaUpdateLabelCopyModeRequest: + id: GoogleAppsDriveLabelsV2betaUpdateLabelCopyModeRequest + description: >- + Request to update the `CopyMode` of the given label. Changes to this + policy aren't revisioned, don't require publishing, and take effect + immediately. \ type: object - description: Behavior of this label when it's applied to Drive items. properties: copyMode: - type: string description: >- - Indicates how the applied label and field values should be copied - when a Drive item is copied. + Required. Indicates how the applied label and field values should be + copied when a Drive item is copied. + type: string enumDescriptions: - Copy mode unspecified. - >- - The applied label and field values are not copied by default when + The applied label and field values aren't copied by default when the Drive item it's applied to is copied. - >- The applied label and field values are always copied when the @@ -1685,183 +1726,102 @@ components: - DO_NOT_COPY - ALWAYS_COPY - COPY_APPLIABLE - id: GoogleAppsDriveLabelsV2betaLabelAppliedLabelPolicy - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseDisableFieldResponse: - id: GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseDisableFieldResponse - type: object - description: Response following Field disable. - properties: {} - GoogleAppsDriveLabelsV2betaBatchDeleteLabelPermissionsRequest: - id: GoogleAppsDriveLabelsV2betaBatchDeleteLabelPermissionsRequest - description: Deletes one of more Label Permissions. - properties: useAdminAccess: description: >- Set to `true` in order to use the user's admin credentials. The - server will verify the user is an admin for the Label before - allowing access. If this is set, the use_admin_access field in the - DeleteLabelPermissionRequest messages must either be empty or match - this field. + server will verify the user is an admin for the label before + allowing access. type: boolean - requests: - description: Required. The request message specifying the resources to update. - type: array - items: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaDeleteLabelPermissionRequest - type: object - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseUpdateLabelPropertiesResponse: - type: object - id: >- - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelResponseUpdateLabelPropertiesResponse - properties: {} - description: Response following update to Label properties. - GoogleAppsDriveLabelsV2betaFieldUserOptions: - type: object - id: GoogleAppsDriveLabelsV2betaFieldUserOptions - properties: - listOptions: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaFieldListOptions' + languageCode: description: >- - When specified, indicates that this field supports a list of values. - Once the field is published, this cannot be changed. - description: Options for the user field type. - GoogleAppsDriveLabelsV2betaLabelDisplayHints: - type: object - id: GoogleAppsDriveLabelsV2betaLabelDisplayHints - properties: - priority: - format: int64 + The BCP-47 language code to use for evaluating localized field + labels. When not specified, values in the default configured + language will be used. type: string - description: Order to display label in a list. - disabled: - type: boolean - description: Whether the label should be shown in the UI as disabled. - hiddenInSearch: - type: boolean - description: >- - This label should be hidden in the search menu when searching for - Drive items. - shownInApply: - description: >- - This label should be shown in the apply menu when applying values to - a Drive item. - type: boolean - description: UI display hints for rendering the label. - GoogleAppsDriveLabelsV2betaUserInfo: - properties: - person: + view: description: >- - The identifier for this user that can be used with the People API to - get more information. For example, people/12345678. - type: string - id: GoogleAppsDriveLabelsV2betaUserInfo - type: object - description: Information about a user. - GoogleProtobufEmpty: - type: object - description: >- - A generic empty message that you can re-use to avoid defining duplicated - empty messages in your APIs. A typical example is to use it as the - request or the response type of an API method. For instance: service Foo - { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } - properties: {} - id: GoogleProtobufEmpty - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestCreateSelectionChoiceRequest: - description: Request to create a Selection Choice. - type: object - id: >- - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestCreateSelectionChoiceRequest - properties: - choice: - description: Required. The Choice to create. - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaFieldSelectionOptionsChoice - fieldId: - description: Required. The Selection Field in which a Choice will be created. + When specified, only certain fields belonging to the indicated view + will be returned. type: string - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestUpdateFieldTypeRequest: - id: GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestUpdateFieldTypeRequest + enumDescriptions: + - >- + Implies the field mask: + `name,id,revision_id,label_type,properties.*` + - All possible fields. + enum: + - LABEL_VIEW_BASIC + - LABEL_VIEW_FULL + GoogleAppsDriveLabelsV2betaPublishLabelRequest: + id: GoogleAppsDriveLabelsV2betaPublishLabelRequest + description: Request to publish a label. type: object properties: - dateOptions: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaFieldDateOptions' - description: Update field to Date. - textOptions: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaFieldTextOptions' - description: Update field to Text. - userOptions: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaFieldUserOptions' - description: Update field to User. - updateMask: - type: string + useAdminAccess: description: >- - The fields that should be updated. At least one field must be - specified. The root of `type_options` is implied and should not be - specified. A single `*` can be used as short-hand for updating every - field. - format: google-fieldmask - integerOptions: - description: Update field to Integer. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaFieldIntegerOptions' - selectionOptions: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaFieldSelectionOptions - description: Update field to Selection. - id: - description: Required. The Field to update. - type: string - description: Request to change the type of a Field. - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestDeleteFieldRequest: - type: object - description: Request to delete the Field. - id: GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestDeleteFieldRequest - properties: - id: - description: Required. ID of the Field to delete. + Set to `true` in order to use the user's admin credentials. The + server will verify the user is an admin for the label before + allowing access. + type: boolean + writeControl: + description: >- + Provides control over how write requests are executed. Defaults to + unset, which means the last write wins. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaWriteControl' + languageCode: + description: >- + The BCP-47 language code to use for evaluating localized field + labels. When not specified, values in the default configured + language will be used. type: string - GoogleAppsDriveLabelsV2betaFieldAppliedCapabilities: + GoogleAppsDriveLabelsV2betaDisableLabelRequest: + id: GoogleAppsDriveLabelsV2betaDisableLabelRequest + description: Request to deprecate a published label. type: object - description: The capabilities related to this field on applied metadata. - id: GoogleAppsDriveLabelsV2betaFieldAppliedCapabilities - properties: - canWrite: - description: Whether the user can set this field on Drive items. - type: boolean - canRead: - description: Whether the user can read related applied metadata on items. - type: boolean - canSearch: - description: Whether the user can search for Drive items referencing this field. - type: boolean - GoogleAppsDriveLabelsV2betaWriteControl: - id: GoogleAppsDriveLabelsV2betaWriteControl properties: - requiredRevisionId: + updateMask: + description: >- + The fields that should be updated. At least one field must be + specified. The root `disabled_policy` is implied and should not be + specified. A single `*` can be used as a short-hand for updating + every field. type: string + format: google-fieldmask + useAdminAccess: description: >- - The revision_id of the label that the write request will be applied - to. If this is not the latest revision of the label, the request - will not be processed and will return a 400 Bad Request error. - description: >- - Provides control over how write requests are executed. When not - specified, the last write wins. - type: object - GoogleAppsDriveLabelsV2betaPublishLabelRequest: - description: Request to publish a label. + Set to `true` in order to use the user's admin credentials. The + server will verify the user is an admin for the label before + allowing access. + type: boolean + writeControl: + description: >- + Provides control over how write requests are executed. Defaults to + unset, which means the last write wins. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaWriteControl' + disabledPolicy: + description: Disabled policy to use. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaLifecycleDisabledPolicy + languageCode: + description: >- + The BCP-47 language code to use for evaluating localized field + labels. When not specified, values in the default configured + language will be used. + type: string + GoogleAppsDriveLabelsV2betaEnableLabelRequest: + id: GoogleAppsDriveLabelsV2betaEnableLabelRequest + description: Request to enable a label. type: object - id: GoogleAppsDriveLabelsV2betaPublishLabelRequest properties: useAdminAccess: description: >- Set to `true` in order to use the user's admin credentials. The - server will verify the user is an admin for the Label before + server will verify the user is an admin for the label before allowing access. type: boolean writeControl: description: >- Provides control over how write requests are executed. Defaults to - unset, which means last write wins. + unset, which means the last write wins. $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaWriteControl' languageCode: description: >- @@ -1869,185 +1829,301 @@ components: labels. When not specified, values in the default configured language will be used. type: string - GoogleAppsDriveLabelsV2betaTextLimits: - description: Limits for text Field type. - id: GoogleAppsDriveLabelsV2betaTextLimits - properties: - maxLength: - format: int32 - description: Maximum length allowed for a text Field type. - type: integer - minLength: - format: int32 - type: integer - description: Minimum length allowed for a text Field type. + GoogleProtobufEmpty: + id: GoogleProtobufEmpty + description: >- + A generic empty message that you can re-use to avoid defining duplicated + empty messages in your APIs. A typical example is to use it as the + request or the response type of an API method. For instance: service Foo + { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } type: object - GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestEnableFieldRequest: - description: Request to enable the Field. - id: GoogleAppsDriveLabelsV2betaDeltaUpdateLabelRequestEnableFieldRequest + properties: {} + GoogleAppsDriveLabelsV2betaListLabelPermissionsResponse: + id: GoogleAppsDriveLabelsV2betaListLabelPermissionsResponse + description: Response for listing the permissions on a label. type: object properties: - id: - description: Required. ID of the Field to enable. + labelPermissions: + description: Label permissions. + type: array + items: + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLabelPermission' + nextPageToken: + description: The token of the next page in the response. type: string - GoogleAppsDriveLabelsV2betaLabel: + GoogleAppsDriveLabelsV2betaLabelPermission: + id: GoogleAppsDriveLabelsV2betaLabelPermission description: >- - A label defines a taxonomy that can be applied to Drive items in order - to organize and search across items. Labels can be simple strings, or - can contain fields that describe additional metadata that can be further - used to organize and search Drive items. - id: GoogleAppsDriveLabelsV2betaLabel + The permission that applies to a principal (user, group, audience) on a + label. type: object properties: - lockStatus: - description: Output only. The LockStatus of this label. - readOnly: true - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLockStatus' - disabler: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaUserInfo' - description: >- - Output only. The user who disabled this label. This value has no - meaning when the label is not disabled. - readOnly: true - displayHints: - description: Output only. UI display hints for rendering the label. - readOnly: true - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLabelDisplayHints' - properties: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLabelProperties' - description: Required. The basic properties of the label. - lifecycle: - description: >- - Output only. The lifecycle state of the label including whether it's - published, deprecated, and has draft changes. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLifecycle' - readOnly: true - publishTime: + person: + description: Person resource name. type: string - description: >- - Output only. The time this label was published. This value has no - meaning when the label is not published. - format: google-datetime - readOnly: true - appliedCapabilities: - description: >- - Output only. The capabilities related to this label on applied - metadata. - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaLabelAppliedCapabilities - readOnly: true - id: - description: >- - Output only. Globally unique identifier of this label. ID makes up - part of the label `name`, but unlike `name`, ID is consistent - between revisions. Matches the regex: `([a-zA-Z0-9])+` + group: + description: Group resource name. type: string - readOnly: true - publisher: - readOnly: true + audience: description: >- - Output only. The user who published this label. This value has no - meaning when the label is not published. - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaUserInfo' - revisionId: + Audience to grant a role to. The magic value of `audiences/default` + may be used to apply the role to the default audience in the context + of the organization that owns the label. + type: string + name: + description: Resource name of this permission. + type: string + email: description: >- - Output only. Revision ID of the label. Revision ID might be part of - the label `name` depending on the request issued. A new revision is - created whenever revisioned properties of a label are changed. - Matches the regex: `([a-zA-Z0-9])+` + Specifies the email address for a user or group principal. Not + populated for audience principals. User and group permissions may + only be inserted using an email address. On update requests, if + email address is specified, no principal should be specified. + type: string + role: + description: The role the principal should have. type: string - readOnly: true - labelType: enumDescriptions: - - Unknown label type. - - Shared labels may be shared with users to apply to Drive items. + - Unknown role. - >- - Admin-owned label. Only creatable and editable by admins. Supports - some additional admin-only features. + A reader can read the label and associated metadata applied to + Drive items. - >- - A label owned by an internal Google application rather than a - customer. These labels are read-only. + An applier can write associated metadata on Drive items in which + they also have write access to. Implies `READER`. + - >- + An organizer can pin this label in shared drives they manage and + add new appliers to the label. + - >- + Editors can make any update including deleting the label which + also deletes the associated Drive item metadata. Implies + `APPLIER`. enum: - - LABEL_TYPE_UNSPECIFIED - - SHARED - - ADMIN - - GOOGLE_APP - description: Required. The type of label. + - LABEL_ROLE_UNSPECIFIED + - READER + - APPLIER + - ORGANIZER + - EDITOR + GoogleAppsDriveLabelsV2betaBatchUpdateLabelPermissionsRequest: + id: GoogleAppsDriveLabelsV2betaBatchUpdateLabelPermissionsRequest + description: Updates one or more label permissions. + type: object + properties: + requests: + description: Required. The request message specifying the resources to update. + type: array + items: + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaUpdateLabelPermissionRequest + useAdminAccess: + description: >- + Set to `true` in order to use the user's admin credentials. The + server will verify the user is an admin for the label before + allowing access. If this is set, the `use_admin_access` field in the + `UpdateLabelPermissionRequest` messages must either be empty or + match this field. + type: boolean + GoogleAppsDriveLabelsV2betaUpdateLabelPermissionRequest: + id: GoogleAppsDriveLabelsV2betaUpdateLabelPermissionRequest + description: >- + Updates a label permission. Permissions affect the label resource as a + whole, aren't revisioned, and don't require publishing. + type: object + properties: + parent: + description: Required. The parent label resource name. type: string - customer: - readOnly: true + labelPermission: + description: Required. The permission to create or update on the label. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLabelPermission' + useAdminAccess: + description: >- + Set to `true` in order to use the user's admin credentials. The + server will verify the user is an admin for the label before + allowing access. + type: boolean + GoogleAppsDriveLabelsV2betaBatchUpdateLabelPermissionsResponse: + id: GoogleAppsDriveLabelsV2betaBatchUpdateLabelPermissionsResponse + description: Response for updating one or more label permissions. + type: object + properties: + permissions: + description: Required. Permissions updated. + type: array + items: + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLabelPermission' + GoogleAppsDriveLabelsV2betaBatchDeleteLabelPermissionsRequest: + id: GoogleAppsDriveLabelsV2betaBatchDeleteLabelPermissionsRequest + description: Deletes one or more label permissions. + type: object + properties: + requests: + description: Required. The request message specifying the resources to update. + type: array + items: + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaDeleteLabelPermissionRequest + useAdminAccess: + description: >- + Set to `true` in order to use the user's admin credentials. The + server will verify the user is an admin for the label before + allowing access. If this is set, the `use_admin_access` field in the + `DeleteLabelPermissionRequest` messages must either be empty or + match this field. + type: boolean + GoogleAppsDriveLabelsV2betaDeleteLabelPermissionRequest: + id: GoogleAppsDriveLabelsV2betaDeleteLabelPermissionRequest + description: >- + Deletes a label permission. Permissions affect the label resource as a + whole, aren't revisioned, and don't require publishing. + type: object + properties: + name: + description: Required. Label permission resource name. type: string + useAdminAccess: description: >- - Output only. The customer this label belongs to. For example: - "customers/123abc789." - fields: - description: List of fields in descending priority order. + Set to `true` in order to use the user's admin credentials. The + server will verify the user is an admin for the label before + allowing access. + type: boolean + GoogleAppsDriveLabelsV2betaListLabelLocksResponse: + id: GoogleAppsDriveLabelsV2betaListLabelLocksResponse + description: The response to a `ListLabelLocksRequest`. + type: object + properties: + labelLocks: + description: Label locks. type: array items: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaField' - schemaCapabilities: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaLabelSchemaCapabilities - description: Output only. The capabilities the user has on this label. + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLabelLock' + nextPageToken: + description: The token of the next page in the response. + type: string + GoogleAppsDriveLabelsV2betaLabelLock: + id: GoogleAppsDriveLabelsV2betaLabelLock + description: A lock that can be applied to a label, field, or choice. + type: object + properties: + name: + description: Output only. Resource name of this label lock. readOnly: true - appliedLabelPolicy: + type: string + fieldId: description: >- - Output only. Behavior of this label when it's applied to Drive - items. - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaLabelAppliedLabelPolicy - readOnly: true - name: + The ID of the field that should be locked. Empty if the whole label + should be locked. + type: string + choiceId: description: >- - Output only. Resource name of the label. Will be in the form of - either: `labels/{id}` or `labels/{id}@{revision_id}` depending on - the request. See `id` and `revision_id` below. + The ID of the selection field choice that should be locked. If + present, `field_id` must also be present. + type: string + createTime: + description: Output only. The time this label lock was created. readOnly: true type: string + format: google-datetime creator: - description: Output only. The user who created this label. + description: >- + Output only. The user whose credentials were used to create the + label lock. Not present if no user was responsible for creating the + label lock. readOnly: true $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaUserInfo' - disableTime: - format: google-datetime + deleteTime: description: >- - Output only. The time this label was disabled. This value has no - meaning when the label is not disabled. + Output only. A timestamp indicating when this label lock was + scheduled for deletion. Present only if this label lock is in the + `DELETING` state. readOnly: true type: string - revisionCreateTime: format: google-datetime - type: string + capabilities: + description: Output only. The user's capabilities on this label lock. readOnly: true - description: Output only. The time this label revision was created. - learnMoreUri: + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaLabelLockCapabilities + state: + description: Output only. This label lock's state. + readOnly: true + type: string + enumDescriptions: + - Unknown state. + - The label lock is active and is being enforced by the server. + - >- + The label lock is being deleted. The label lock will continue to + be enforced by the server until it has been fully removed. + enum: + - STATE_UNSPECIFIED + - ACTIVE + - DELETING + GoogleAppsDriveLabelsV2betaLabelLockCapabilities: + id: GoogleAppsDriveLabelsV2betaLabelLockCapabilities + description: A description of a user's capabilities on a label lock. + type: object + properties: + canViewPolicy: + description: True if the user is authorized to view the policy. + type: boolean + GoogleAppsDriveLabelsV2betaUpdateLabelEnabledAppSettingsRequest: + id: GoogleAppsDriveLabelsV2betaUpdateLabelEnabledAppSettingsRequest + description: >- + Request to update the `EnabledAppSettings` of the given label. This + change is not revisioned, doesn't require publishing, and takes effect + immediately. \ + type: object + properties: + enabledAppSettings: + description: Required. The new `EnabledAppSettings` value for the label. + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaLabelEnabledAppSettings + useAdminAccess: + description: >- + Optional. Set to `true` in order to use the user's admin + credentials. The server will verify the user is an admin for the + label before allowing access. + type: boolean + languageCode: + description: >- + Optional. The BCP-47 language code to use for evaluating localized + field labels. When not specified, values in the default configured + language will be used. type: string + view: description: >- - Custom URL to present to users to allow them to learn more about - this label and how it should be used. - createTime: + Optional. When specified, only certain fields belonging to the + indicated view will be returned. type: string - description: Output only. The time this label was created. - readOnly: true - format: google-datetime - revisionCreator: - readOnly: true - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaUserInfo' - description: Output only. The user who created this label revision. + enumDescriptions: + - >- + Implies the field mask: + `name,id,revision_id,label_type,properties.*` + - All possible fields. + enum: + - LABEL_VIEW_BASIC + - LABEL_VIEW_FULL parameters: - uploadType: - description: Legacy upload protocol for media (e.g. "media", "multipart"). + access_token: + description: OAuth access token. in: query - name: uploadType + name: access_token schema: type: string - key: - description: >- - API key. Your API key identifies your project and provides you with API - access, quota, and reports. Required unless you provide an OAuth 2.0 - token. + alt: + description: Data format for response. in: query - name: key + name: alt + schema: + type: string + enum: + - json + - media + - proto + callback: + description: JSONP + in: query + name: callback schema: type: string fields: @@ -2056,19 +2132,19 @@ components: name: fields schema: type: string - _.xgafv: - description: V1 error format. + key: + description: >- + API key. Your API key identifies your project and provides you with API + access, quota, and reports. Required unless you provide an OAuth 2.0 + token. in: query - name: $.xgafv + name: key schema: type: string - enum: - - '1' - - '2' - upload_protocol: - description: Upload protocol for media (e.g. "raw", "multipart"). + oauth_token: + description: OAuth 2.0 token for the current user. in: query - name: upload_protocol + name: oauth_token schema: type: string prettyPrint: @@ -2086,34 +2162,27 @@ components: name: quotaUser schema: type: string - callback: - description: JSONP - in: query - name: callback - schema: - type: string - access_token: - description: OAuth access token. + upload_protocol: + description: Upload protocol for media (e.g. "raw", "multipart"). in: query - name: access_token + name: upload_protocol schema: type: string - oauth_token: - description: OAuth 2.0 token for the current user. + uploadType: + description: Legacy upload protocol for media (e.g. "media", "multipart"). in: query - name: oauth_token + name: uploadType schema: type: string - alt: - description: Data format for response. + _.xgafv: + description: V1 error format. in: query - name: alt + name: $.xgafv schema: type: string enum: - - json - - media - - proto + - '1' + - '2' x-stackQL-resources: users_capabilities: id: googleworkspace.drivelabelsv2beta.users_capabilities @@ -2139,12 +2208,6 @@ components: name: labels title: Labels methods: - create: - operation: - $ref: '#/paths/~1v2beta~1labels/post' - response: - mediaType: application/json - openAPIDocKey: '200' list: operation: $ref: '#/paths/~1v2beta~1labels/get' @@ -2152,27 +2215,27 @@ components: mediaType: application/json openAPIDocKey: '200' objectKey: $.labels - delta: + create: operation: - $ref: '#/paths/~1v2beta~1labels~1{labelsId}:delta/post' + $ref: '#/paths/~1v2beta~1labels/post' response: mediaType: application/json openAPIDocKey: '200' - delete: + get: operation: - $ref: '#/paths/~1v2beta~1labels~1{labelsId}/delete' + $ref: '#/paths/~1v2beta~1labels~1{labelsId}/get' response: mediaType: application/json openAPIDocKey: '200' - get: + delete: operation: - $ref: '#/paths/~1v2beta~1labels~1{labelsId}/get' + $ref: '#/paths/~1v2beta~1labels~1{labelsId}/delete' response: mediaType: application/json openAPIDocKey: '200' - enable: + delta: operation: - $ref: '#/paths/~1v2beta~1labels~1{labelsId}:enable/post' + $ref: '#/paths/~1v2beta~1labels~1{labelsId}:delta/post' response: mediaType: application/json openAPIDocKey: '200' @@ -2188,6 +2251,12 @@ components: response: mediaType: application/json openAPIDocKey: '200' + enable: + operation: + $ref: '#/paths/~1v2beta~1labels~1{labelsId}:enable/post' + response: + mediaType: application/json + openAPIDocKey: '200' sqlVerbs: select: - $ref: '#/components/x-stackQL-resources/labels/methods/get' @@ -2198,6 +2267,25 @@ components: replace: [] delete: - $ref: '#/components/x-stackQL-resources/labels/methods/delete' + labels_label_copy_mode: + id: googleworkspace.drivelabelsv2beta.labels_label_copy_mode + name: labels_label_copy_mode + title: Labels_label_copy_mode + methods: + update_label_copy_mode: + operation: + $ref: '#/paths/~1v2beta~1labels~1{labelsId}:updateLabelCopyMode/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: [] + insert: [] + update: + - $ref: >- + #/components/x-stackQL-resources/labels_label_copy_mode/methods/update_label_copy_mode + replace: [] + delete: [] labels_permissions: id: googleworkspace.drivelabelsv2beta.labels_permissions name: labels_permissions @@ -2222,37 +2310,39 @@ components: name: permissions title: Permissions methods: - create: + list: operation: $ref: >- - #/paths/~1v2beta~1labels~1{labelsId}~1revisions~1{revisionsId}~1permissions/post + #/paths/~1v2beta~1labels~1{labelsId}~1revisions~1{revisionsId}~1permissions/get response: mediaType: application/json openAPIDocKey: '200' - list: + objectKey: $.labelPermissions + create: operation: $ref: >- - #/paths/~1v2beta~1labels~1{labelsId}~1revisions~1{revisionsId}~1permissions/get + #/paths/~1v2beta~1labels~1{labelsId}~1revisions~1{revisionsId}~1permissions/post response: mediaType: application/json openAPIDocKey: '200' - objectKey: $.labelPermissions delete: operation: $ref: >- - #/paths/~1v2beta~1labels~1{labelsId}~1permissions~1{permissionsId}/delete + #/paths/~1v2beta~1labels~1{labelsId}~1revisions~1{revisionsId}~1permissions~1{permissionsId}/delete response: mediaType: application/json openAPIDocKey: '200' batch_update: operation: - $ref: '#/paths/~1v2beta~1labels~1{labelsId}~1permissions:batchUpdate/post' + $ref: >- + #/paths/~1v2beta~1labels~1{labelsId}~1revisions~1{revisionsId}~1permissions:batchUpdate/post response: mediaType: application/json openAPIDocKey: '200' batch_delete: operation: - $ref: '#/paths/~1v2beta~1labels~1{labelsId}~1permissions:batchDelete/post' + $ref: >- + #/paths/~1v2beta~1labels~1{labelsId}~1revisions~1{revisionsId}~1permissions:batchDelete/post response: mediaType: application/json openAPIDocKey: '200' @@ -2267,14 +2357,15 @@ components: delete: - $ref: '#/components/x-stackQL-resources/permissions/methods/delete' - $ref: '#/components/x-stackQL-resources/permissions/methods/batch_delete' - labels_label_copy_mode: - id: googleworkspace.drivelabelsv2beta.labels_label_copy_mode - name: labels_label_copy_mode - title: Labels_label_copy_mode + labels_label_enabled_app_settings: + id: googleworkspace.drivelabelsv2beta.labels_label_enabled_app_settings + name: labels_label_enabled_app_settings + title: Labels_label_enabled_app_settings methods: - update_label_copy_mode: + update_label_enabled_app_settings: operation: - $ref: '#/paths/~1v2beta~1labels~1{labelsId}:updateLabelCopyMode/post' + $ref: >- + #/paths/~1v2beta~1labels~1{labelsId}:updateLabelEnabledAppSettings/post response: mediaType: application/json openAPIDocKey: '200' @@ -2283,26 +2374,7 @@ components: insert: [] update: - $ref: >- - #/components/x-stackQL-resources/labels_label_copy_mode/methods/update_label_copy_mode - replace: [] - delete: [] - locks: - id: googleworkspace.drivelabelsv2beta.locks - name: locks - title: Locks - methods: - list: - operation: - $ref: '#/paths/~1v2beta~1labels~1{labelsId}~1locks/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.labelLocks - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/locks/methods/list' - insert: [] - update: [] + #/components/x-stackQL-resources/labels_label_enabled_app_settings/methods/update_label_enabled_app_settings replace: [] delete: [] revisions_permissions: @@ -2325,6 +2397,25 @@ components: #/components/x-stackQL-resources/revisions_permissions/methods/update_permissions replace: [] delete: [] + locks: + id: googleworkspace.drivelabelsv2beta.locks + name: locks + title: Locks + methods: + list: + operation: + $ref: '#/paths/~1v2beta~1labels~1{labelsId}~1locks/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.labelLocks + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/locks/methods/list' + insert: [] + update: [] + replace: [] + delete: [] limits_label: id: googleworkspace.drivelabelsv2beta.limits_label name: limits_label @@ -2346,17 +2437,17 @@ components: paths: /v2beta/users/{usersId}/capabilities: parameters: &ref_1 - - $ref: '#/components/parameters/uploadType' - - $ref: '#/components/parameters/key' + - $ref: '#/components/parameters/access_token' + - $ref: '#/components/parameters/alt' + - $ref: '#/components/parameters/callback' - $ref: '#/components/parameters/fields' - - $ref: '#/components/parameters/_.xgafv' - - $ref: '#/components/parameters/upload_protocol' + - $ref: '#/components/parameters/key' + - $ref: '#/components/parameters/oauth_token' - $ref: '#/components/parameters/prettyPrint' - $ref: '#/components/parameters/quotaUser' - - $ref: '#/components/parameters/callback' - - $ref: '#/components/parameters/access_token' - - $ref: '#/components/parameters/oauth_token' - - $ref: '#/components/parameters/alt' + - $ref: '#/components/parameters/upload_protocol' + - $ref: '#/components/parameters/uploadType' + - $ref: '#/components/parameters/_.xgafv' get: description: Gets the user capabilities. operationId: drivelabels.users.getCapabilities @@ -2397,41 +2488,10 @@ paths: type: string /v2beta/labels: parameters: *ref_1 - post: - description: Creates a new Label. - operationId: drivelabels.labels.create - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLabel' - security: - - Oauth2: - - https://www.googleapis.com/auth/drive.admin.labels - Oauth2c: - - https://www.googleapis.com/auth/drive.admin.labels - - Oauth2: - - https://www.googleapis.com/auth/drive.labels - Oauth2c: - - https://www.googleapis.com/auth/drive.labels - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLabel' - parameters: - - in: query - name: languageCode - schema: - type: string - - in: query - name: useAdminAccess - schema: - type: boolean get: - description: List labels. + description: >- + List labels. For more information, see [Search for + labels](https://developers.google.com/workspace/drive/labels/guides/search-label). operationId: drivelabels.labels.list security: - Oauth2: @@ -2460,15 +2520,11 @@ paths: #/components/schemas/GoogleAppsDriveLabelsV2betaListLabelsResponse parameters: - in: query - name: customer - schema: - type: string - - in: query - name: view + name: useAdminAccess schema: - type: string + type: boolean - in: query - name: languageCode + name: minimumRole schema: type: string - in: query @@ -2476,9 +2532,13 @@ paths: schema: type: boolean - in: query - name: useAdminAccess + name: customer schema: - type: boolean + type: string + - in: query + name: languageCode + schema: + type: string - in: query name: pageSize schema: @@ -2489,23 +2549,19 @@ paths: schema: type: string - in: query - name: minimumRole + name: view schema: type: string - /v2beta/labels/{labelsId}/permissions: - parameters: *ref_1 - patch: + post: description: >- - Updates a Label's permissions. If a permission for the indicated - principal doesn't exist, a new Label Permission is created, otherwise - the existing permission is updated. Permissions affect the Label - resource as a whole, are not revisioned, and do not require publishing. - operationId: drivelabels.labels.updatePermissions + Creates a label. For more information, see [Create and publish a + label](https://developers.google.com/workspace/drive/labels/guides/create-label). + operationId: drivelabels.labels.create requestBody: content: application/json: schema: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLabelPermission' + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLabel' security: - Oauth2: - https://www.googleapis.com/auth/drive.admin.labels @@ -2521,47 +2577,52 @@ paths: content: application/json: schema: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaLabelPermission + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLabel' parameters: - - in: path - name: labelsId - required: true - schema: - type: string - in: query name: useAdminAccess schema: type: boolean - post: + - in: query + name: languageCode + schema: + type: string + /v2beta/labels/{labelsId}: + parameters: *ref_1 + get: description: >- - Updates a Label's permissions. If a permission for the indicated - principal doesn't exist, a new Label Permission is created, otherwise - the existing permission is updated. Permissions affect the Label - resource as a whole, are not revisioned, and do not require publishing. - operationId: drivelabels.labels.permissions.create - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLabelPermission' + Get a label by its resource name. For more information, see [Search for + labels](https://developers.google.com/workspace/drive/labels/guides/search-label). + Resource name may be any of: * `labels/{id}` - See `labels/{id}@latest` + * `labels/{id}@latest` - Gets the latest revision of the label. * + `labels/{id}@published` - Gets the current published revision of the + label. * `labels/{id}@{revision_id}` - Gets the label at the specified + revision ID. + operationId: drivelabels.labels.get security: - Oauth2: - https://www.googleapis.com/auth/drive.admin.labels Oauth2c: - https://www.googleapis.com/auth/drive.admin.labels + - Oauth2: + - https://www.googleapis.com/auth/drive.admin.labels.readonly + Oauth2c: + - https://www.googleapis.com/auth/drive.admin.labels.readonly - Oauth2: - https://www.googleapis.com/auth/drive.labels Oauth2c: - https://www.googleapis.com/auth/drive.labels + - Oauth2: + - https://www.googleapis.com/auth/drive.labels.readonly + Oauth2c: + - https://www.googleapis.com/auth/drive.labels.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaLabelPermission + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLabel' parameters: - in: path name: labelsId @@ -2572,62 +2633,62 @@ paths: name: useAdminAccess schema: type: boolean - get: - description: Lists a Label's permissions. - operationId: drivelabels.labels.permissions.list + - in: query + name: languageCode + schema: + type: string + - in: query + name: view + schema: + type: string + delete: + description: >- + Permanently deletes a label and related metadata on Drive items. For + more information, see [Disable, enable, and delete a + label](https://developers.google.com/workspace/drive/labels/guides/disable-delete-label). + Once deleted, the label and related Drive item metadata will be deleted. + Only draft labels and disabled labels may be deleted. + operationId: drivelabels.labels.delete security: - Oauth2: - https://www.googleapis.com/auth/drive.admin.labels Oauth2c: - https://www.googleapis.com/auth/drive.admin.labels - - Oauth2: - - https://www.googleapis.com/auth/drive.admin.labels.readonly - Oauth2c: - - https://www.googleapis.com/auth/drive.admin.labels.readonly - Oauth2: - https://www.googleapis.com/auth/drive.labels Oauth2c: - https://www.googleapis.com/auth/drive.labels - - Oauth2: - - https://www.googleapis.com/auth/drive.labels.readonly - Oauth2c: - - https://www.googleapis.com/auth/drive.labels.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaListLabelPermissionsResponse + $ref: '#/components/schemas/GoogleProtobufEmpty' parameters: - in: path name: labelsId required: true schema: type: string - - in: query - name: pageSize - schema: - type: integer - format: int32 - in: query name: useAdminAccess schema: type: boolean - in: query - name: pageToken + name: writeControl.requiredRevisionId schema: type: string /v2beta/labels/{labelsId}:delta: parameters: *ref_1 post: description: >- - Updates a single Label by applying a set of update requests resulting in - a new draft revision. The batch update is all-or-nothing: If any of the - update requests are invalid, no changes are applied. The resulting draft - revision must be published before the changes may be used with Drive - Items. + Updates a single label by applying a set of update requests resulting in + a new draft revision. For more information, see [Update a + label](https://developers.google.com/workspace/drive/labels/guides/update-label). + The batch update is all-or-nothing: If any of the update requests are + invalid, no changes are applied. The resulting draft revision must be + published before the changes may be used with Drive items. operationId: drivelabels.labels.delta requestBody: content: @@ -2662,8 +2723,8 @@ paths: parameters: *ref_1 post: description: >- - Updates a Label's `CopyMode`. Changes to this policy are not revisioned, - do not require publishing, and take effect immediately. + Updates a label's `CopyMode`. Changes to this policy aren't revisioned, + don't require publishing, and take effect immediately. operationId: drivelabels.labels.updateLabelCopyMode requestBody: content: @@ -2693,14 +2754,34 @@ paths: required: true schema: type: string - /v2beta/labels/{labelsId}: + /v2beta/labels/{labelsId}:publish: parameters: *ref_1 - delete: + post: description: >- - Permanently deletes a Label and related metadata on Drive Items. Once - deleted, the Label and related Drive item metadata will be deleted. Only - draft Labels, and disabled Labels may be deleted. - operationId: drivelabels.labels.delete + Publish all draft changes to the label. Once published, the label may + not return to its draft state. For more information, see [Create and + publish a + label](https://developers.google.com/workspace/drive/labels/guides/create-label). + Publishing a label will result in a new published revision. All previous + draft revisions will be deleted. Previous published revisions will be + kept but are subject to automated deletion as needed. For more + information, see [Label + lifecycle](https://developers.google.com/workspace/drive/labels/guides/label-lifecycle). + Once published, some changes are no longer permitted. Generally, any + change that would invalidate or cause new restrictions on existing + metadata related to the label will be rejected. For example, the + following changes to a label will be rejected after the label is + published: * The label cannot be directly deleted. It must be disabled + first, then deleted. * `Field.FieldType` cannot be changed. * Changes to + field validation options cannot reject something that was previously + accepted. * Reducing the maximum entries. + operationId: drivelabels.labels.publish + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaPublishLabelRequest security: - Oauth2: - https://www.googleapis.com/auth/drive.admin.labels @@ -2716,46 +2797,41 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/GoogleProtobufEmpty' + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLabel' parameters: - in: path name: labelsId required: true schema: type: string - - in: query - name: useAdminAccess - schema: - type: boolean - - in: query - name: writeControl.requiredRevisionId - schema: - type: string - get: + /v2beta/labels/{labelsId}:disable: + parameters: *ref_1 + post: description: >- - Get a label by its resource name. Resource name may be any of: * - `labels/{id}` - See `labels/{id}@latest` * `labels/{id}@latest` - Gets - the latest revision of the label. * `labels/{id}@published` - Gets the - current published revision of the label. * `labels/{id}@{revision_id}` - - Gets the label at the specified revision ID. - operationId: drivelabels.labels.get + Disable a published label. For more information, see [Disable, enable, + and delete a + label](https://developers.google.com/workspace/drive/labels/guides/disable-delete-label). + Disabling a label will result in a new disabled published revision based + on the current published revision. If there's a draft revision, a new + disabled draft revision will be created based on the latest draft + revision. Older draft revisions will be deleted. Once disabled, a label + may be deleted with `DeleteLabel`. + operationId: drivelabels.labels.disable + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaDisableLabelRequest security: - Oauth2: - https://www.googleapis.com/auth/drive.admin.labels Oauth2c: - https://www.googleapis.com/auth/drive.admin.labels - - Oauth2: - - https://www.googleapis.com/auth/drive.admin.labels.readonly - Oauth2c: - - https://www.googleapis.com/auth/drive.admin.labels.readonly - Oauth2: - https://www.googleapis.com/auth/drive.labels Oauth2c: - https://www.googleapis.com/auth/drive.labels - - Oauth2: - - https://www.googleapis.com/auth/drive.labels.readonly - Oauth2c: - - https://www.googleapis.com/auth/drive.labels.readonly responses: '200': description: Successful response @@ -2769,26 +2845,17 @@ paths: required: true schema: type: string - - in: query - name: languageCode - schema: - type: string - - in: query - name: view - schema: - type: string - - in: query - name: useAdminAccess - schema: - type: boolean /v2beta/labels/{labelsId}:enable: parameters: *ref_1 post: description: >- - Enable a disabled Label and restore it to its published state. This will - result in a new published revision based on the current disabled - published revision. If there is an existing disabled draft revision, a - new revision will be created based on that draft and will be enabled. + Enable a disabled label and restore it to its published state. For more + information, see [Disable, enable, and delete a + label](https://developers.google.com/workspace/drive/labels/guides/disable-delete-label). + This will result in a new published revision based on the current + disabled published revision. If there's an existing disabled draft + revision, a new revision will be created based on that draft and will be + enabled. operationId: drivelabels.labels.enable requestBody: content: @@ -2804,45 +2871,120 @@ paths: - Oauth2: - https://www.googleapis.com/auth/drive.labels Oauth2c: - - https://www.googleapis.com/auth/drive.labels + - https://www.googleapis.com/auth/drive.labels + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLabel' + parameters: + - in: path + name: labelsId + required: true + schema: + type: string + /v2beta/labels/{labelsId}/permissions: + parameters: *ref_1 + patch: + description: >- + Updates a label's permissions. If a permission for the indicated + principal doesn't exist, a label permission is created, otherwise the + existing permission is updated. Permissions affect the label resource as + a whole, aren't revisioned, and don't require publishing. + operationId: drivelabels.labels.updatePermissions + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLabelPermission' + security: + - Oauth2: + - https://www.googleapis.com/auth/drive.admin.labels + Oauth2c: + - https://www.googleapis.com/auth/drive.admin.labels + - Oauth2: + - https://www.googleapis.com/auth/drive.labels + Oauth2c: + - https://www.googleapis.com/auth/drive.labels + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaLabelPermission + parameters: + - in: path + name: labelsId + required: true + schema: + type: string + - in: query + name: useAdminAccess + schema: + type: boolean + get: + description: Lists a label's permissions. + operationId: drivelabels.labels.permissions.list + security: + - Oauth2: + - https://www.googleapis.com/auth/drive.admin.labels + Oauth2c: + - https://www.googleapis.com/auth/drive.admin.labels + - Oauth2: + - https://www.googleapis.com/auth/drive.admin.labels.readonly + Oauth2c: + - https://www.googleapis.com/auth/drive.admin.labels.readonly + - Oauth2: + - https://www.googleapis.com/auth/drive.labels + Oauth2c: + - https://www.googleapis.com/auth/drive.labels + - Oauth2: + - https://www.googleapis.com/auth/drive.labels.readonly + Oauth2c: + - https://www.googleapis.com/auth/drive.labels.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLabel' + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaListLabelPermissionsResponse parameters: - in: path name: labelsId required: true schema: type: string - /v2beta/labels/{labelsId}:publish: - parameters: *ref_1 + - in: query + name: useAdminAccess + schema: + type: boolean + - in: query + name: pageSize + schema: + type: integer + format: int32 + - in: query + name: pageToken + schema: + type: string post: description: >- - Publish all draft changes to the Label. Once published, the Label may - not return to its draft state. See - `google.apps.drive.labels.v2.Lifecycle` for more information. Publishing - a Label will result in a new published revision. All previous draft - revisions will be deleted. Previous published revisions will be kept but - are subject to automated deletion as needed. Once published, some - changes are no longer permitted. Generally, any change that would - invalidate or cause new restrictions on existing metadata related to the - Label will be rejected. For example, the following changes to a Label - will be rejected after the Label is published: * The label cannot be - directly deleted. It must be disabled first, then deleted. * - Field.FieldType cannot be changed. * Changes to Field validation options - cannot reject something that was previously accepted. * Reducing the max - entries. - operationId: drivelabels.labels.publish + Updates a label's permissions. If a permission for the indicated + principal doesn't exist, a label permission is created, otherwise the + existing permission is updated. Permissions affect the label resource as + a whole, aren't revisioned, and don't require publishing. + operationId: drivelabels.labels.permissions.create requestBody: content: application/json: schema: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaPublishLabelRequest + $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLabelPermission' security: - Oauth2: - https://www.googleapis.com/auth/drive.admin.labels @@ -2858,38 +3000,33 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/GoogleAppsDriveLabelsV2betaLabel' + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaLabelPermission parameters: - in: path name: labelsId required: true schema: type: string - /v2beta/labels/{labelsId}:disable: + - in: query + name: useAdminAccess + schema: + type: boolean + /v2beta/labels/{labelsId}:updateLabelEnabledAppSettings: parameters: *ref_1 post: description: >- - Disable a published Label. Disabling a Label will result in a new - disabled published revision based on the current published revision. If - there is a draft revision, a new disabled draft revision will be created - based on the latest draft revision. Older draft revisions will be - deleted. Once disabled, a label may be deleted with `DeleteLabel`. - operationId: drivelabels.labels.disable + Updates a label's `EnabledAppSettings`. Enabling a label in a Google + Workspace app allows it to be used in that app. This change isn't + revisioned, doesn't require publishing, and takes effect immediately. + operationId: drivelabels.labels.updateLabelEnabledAppSettings requestBody: content: application/json: schema: $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaDisableLabelRequest - security: - - Oauth2: - - https://www.googleapis.com/auth/drive.admin.labels - Oauth2c: - - https://www.googleapis.com/auth/drive.admin.labels - - Oauth2: - - https://www.googleapis.com/auth/drive.labels - Oauth2c: - - https://www.googleapis.com/auth/drive.labels + #/components/schemas/GoogleAppsDriveLabelsV2betaUpdateLabelEnabledAppSettingsRequest + security: [] responses: '200': description: Successful response @@ -2903,36 +3040,29 @@ paths: required: true schema: type: string - /v2beta/labels/{labelsId}/revisions/{revisionsId}/locks: + /v2beta/labels/{labelsId}/permissions/{permissionsId}: parameters: *ref_1 - get: - description: Lists the LabelLocks on a Label. - operationId: drivelabels.labels.revisions.locks.list + delete: + description: >- + Deletes a label's permission. Permissions affect the label resource as a + whole, aren't revisioned, and don't require publishing. + operationId: drivelabels.labels.permissions.delete security: - Oauth2: - https://www.googleapis.com/auth/drive.admin.labels Oauth2c: - https://www.googleapis.com/auth/drive.admin.labels - - Oauth2: - - https://www.googleapis.com/auth/drive.admin.labels.readonly - Oauth2c: - - https://www.googleapis.com/auth/drive.admin.labels.readonly - Oauth2: - https://www.googleapis.com/auth/drive.labels Oauth2c: - https://www.googleapis.com/auth/drive.labels - - Oauth2: - - https://www.googleapis.com/auth/drive.labels.readonly - Oauth2c: - - https://www.googleapis.com/auth/drive.labels.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaListLabelLocksResponse + $ref: '#/components/schemas/GoogleProtobufEmpty' parameters: - in: path name: labelsId @@ -2940,26 +3070,29 @@ paths: schema: type: string - in: path - name: revisionsId + name: permissionsId required: true schema: type: string - in: query - name: pageSize - schema: - type: integer - format: int32 - - in: query - name: pageToken + name: useAdminAccess schema: - type: string - /v2beta/labels/{labelsId}/revisions/{revisionsId}/permissions/{permissionsId}: + type: boolean + /v2beta/labels/{labelsId}/permissions:batchUpdate: parameters: *ref_1 - delete: + post: description: >- - Deletes a Label's permission. Permissions affect the Label resource as a - whole, are not revisioned, and do not require publishing. - operationId: drivelabels.labels.revisions.permissions.delete + Updates label permissions. If a permission for the indicated principal + doesn't exist, a label permission is created, otherwise the existing + permission is updated. Permissions affect the label resource as a whole, + aren't revisioned, and don't require publishing. + operationId: drivelabels.labels.permissions.batchUpdate + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaBatchUpdateLabelPermissionsRequest security: - Oauth2: - https://www.googleapis.com/auth/drive.admin.labels @@ -2975,42 +3108,27 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/GoogleProtobufEmpty' + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaBatchUpdateLabelPermissionsResponse parameters: - in: path name: labelsId required: true schema: type: string - - in: path - name: revisionsId - required: true - schema: - type: string - - in: path - name: permissionsId - required: true - schema: - type: string - - in: query - name: useAdminAccess - schema: - type: boolean - /v2beta/labels/{labelsId}/revisions/{revisionsId}/permissions:batchUpdate: + /v2beta/labels/{labelsId}/permissions:batchDelete: parameters: *ref_1 post: description: >- - Updates Label permissions. If a permission for the indicated principal - doesn't exist, a new Label Permission is created, otherwise the existing - permission is updated. Permissions affect the Label resource as a whole, - are not revisioned, and do not require publishing. - operationId: drivelabels.labels.revisions.permissions.batchUpdate + Deletes label permissions. Permissions affect the label resource as a + whole, aren't revisioned, and don't require publishing. + operationId: drivelabels.labels.permissions.batchDelete requestBody: content: application/json: schema: $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaBatchUpdateLabelPermissionsRequest + #/components/schemas/GoogleAppsDriveLabelsV2betaBatchDeleteLabelPermissionsRequest security: - Oauth2: - https://www.googleapis.com/auth/drive.admin.labels @@ -3026,28 +3144,22 @@ paths: content: application/json: schema: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaBatchUpdateLabelPermissionsResponse + $ref: '#/components/schemas/GoogleProtobufEmpty' parameters: - in: path name: labelsId required: true schema: type: string - - in: path - name: revisionsId - required: true - schema: - type: string /v2beta/labels/{labelsId}/revisions/{revisionsId}/permissions: parameters: *ref_1 - post: + patch: description: >- - Updates a Label's permissions. If a permission for the indicated - principal doesn't exist, a new Label Permission is created, otherwise - the existing permission is updated. Permissions affect the Label - resource as a whole, are not revisioned, and do not require publishing. - operationId: drivelabels.labels.revisions.permissions.create + Updates a label's permissions. If a permission for the indicated + principal doesn't exist, a label permission is created, otherwise the + existing permission is updated. Permissions affect the label resource as + a whole, aren't revisioned, and don't require publishing. + operationId: drivelabels.labels.revisions.updatePermissions requestBody: content: application/json: @@ -3086,7 +3198,7 @@ paths: schema: type: boolean get: - description: Lists a Label's permissions. + description: Lists a label's permissions. operationId: drivelabels.labels.revisions.permissions.list security: - Oauth2: @@ -3128,22 +3240,22 @@ paths: name: useAdminAccess schema: type: boolean - - in: query - name: pageToken - schema: - type: string - in: query name: pageSize schema: type: integer format: int32 - patch: + - in: query + name: pageToken + schema: + type: string + post: description: >- - Updates a Label's permissions. If a permission for the indicated - principal doesn't exist, a new Label Permission is created, otherwise - the existing permission is updated. Permissions affect the Label - resource as a whole, are not revisioned, and do not require publishing. - operationId: drivelabels.labels.revisions.updatePermissions + Updates a label's permissions. If a permission for the indicated + principal doesn't exist, a label permission is created, otherwise the + existing permission is updated. Permissions affect the label resource as + a whole, aren't revisioned, and don't require publishing. + operationId: drivelabels.labels.revisions.permissions.create requestBody: content: application/json: @@ -3181,19 +3293,13 @@ paths: name: useAdminAccess schema: type: boolean - /v2beta/labels/{labelsId}/revisions/{revisionsId}/permissions:batchDelete: + /v2beta/labels/{labelsId}/revisions/{revisionsId}/permissions/{permissionsId}: parameters: *ref_1 - post: + delete: description: >- - Deletes Label permissions. Permissions affect the Label resource as a - whole, are not revisioned, and do not require publishing. - operationId: drivelabels.labels.revisions.permissions.batchDelete - requestBody: - content: - application/json: - schema: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaBatchDeleteLabelPermissionsRequest + Deletes a label's permission. Permissions affect the label resource as a + whole, aren't revisioned, and don't require publishing. + operationId: drivelabels.labels.revisions.permissions.delete security: - Oauth2: - https://www.googleapis.com/auth/drive.admin.labels @@ -3221,28 +3327,39 @@ paths: required: true schema: type: string - /v2beta/labels/{labelsId}/locks: + - in: path + name: permissionsId + required: true + schema: + type: string + - in: query + name: useAdminAccess + schema: + type: boolean + /v2beta/labels/{labelsId}/revisions/{revisionsId}/permissions:batchUpdate: parameters: *ref_1 - get: - description: Lists the LabelLocks on a Label. - operationId: drivelabels.labels.locks.list + post: + description: >- + Updates label permissions. If a permission for the indicated principal + doesn't exist, a label permission is created, otherwise the existing + permission is updated. Permissions affect the label resource as a whole, + aren't revisioned, and don't require publishing. + operationId: drivelabels.labels.revisions.permissions.batchUpdate + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaBatchUpdateLabelPermissionsRequest security: - Oauth2: - https://www.googleapis.com/auth/drive.admin.labels Oauth2c: - https://www.googleapis.com/auth/drive.admin.labels - - Oauth2: - - https://www.googleapis.com/auth/drive.admin.labels.readonly - Oauth2c: - - https://www.googleapis.com/auth/drive.admin.labels.readonly - Oauth2: - https://www.googleapis.com/auth/drive.labels Oauth2c: - https://www.googleapis.com/auth/drive.labels - - Oauth2: - - https://www.googleapis.com/auth/drive.labels.readonly - Oauth2c: - - https://www.googleapis.com/auth/drive.labels.readonly responses: '200': description: Successful response @@ -3250,29 +3367,25 @@ paths: application/json: schema: $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaListLabelLocksResponse + #/components/schemas/GoogleAppsDriveLabelsV2betaBatchUpdateLabelPermissionsResponse parameters: - in: path name: labelsId required: true schema: type: string - - in: query - name: pageSize - schema: - type: integer - format: int32 - - in: query - name: pageToken + - in: path + name: revisionsId + required: true schema: type: string - /v2beta/labels/{labelsId}/permissions:batchDelete: + /v2beta/labels/{labelsId}/revisions/{revisionsId}/permissions:batchDelete: parameters: *ref_1 post: description: >- - Deletes Label permissions. Permissions affect the Label resource as a - whole, are not revisioned, and do not require publishing. - operationId: drivelabels.labels.permissions.batchDelete + Deletes label permissions. Permissions affect the label resource as a + whole, aren't revisioned, and don't require publishing. + operationId: drivelabels.labels.revisions.permissions.batchDelete requestBody: content: application/json: @@ -3301,29 +3414,41 @@ paths: required: true schema: type: string - /v2beta/labels/{labelsId}/permissions/{permissionsId}: + - in: path + name: revisionsId + required: true + schema: + type: string + /v2beta/labels/{labelsId}/revisions/{revisionsId}/locks: parameters: *ref_1 - delete: - description: >- - Deletes a Label's permission. Permissions affect the Label resource as a - whole, are not revisioned, and do not require publishing. - operationId: drivelabels.labels.permissions.delete + get: + description: Lists the label locks on a label. + operationId: drivelabels.labels.revisions.locks.list security: - Oauth2: - https://www.googleapis.com/auth/drive.admin.labels Oauth2c: - https://www.googleapis.com/auth/drive.admin.labels + - Oauth2: + - https://www.googleapis.com/auth/drive.admin.labels.readonly + Oauth2c: + - https://www.googleapis.com/auth/drive.admin.labels.readonly - Oauth2: - https://www.googleapis.com/auth/drive.labels Oauth2c: - https://www.googleapis.com/auth/drive.labels + - Oauth2: + - https://www.googleapis.com/auth/drive.labels.readonly + Oauth2c: + - https://www.googleapis.com/auth/drive.labels.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/GoogleProtobufEmpty' + $ref: >- + #/components/schemas/GoogleAppsDriveLabelsV2betaListLabelLocksResponse parameters: - in: path name: labelsId @@ -3331,38 +3456,41 @@ paths: schema: type: string - in: path - name: permissionsId + name: revisionsId required: true schema: type: string - in: query - name: useAdminAccess + name: pageSize schema: - type: boolean - /v2beta/labels/{labelsId}/permissions:batchUpdate: + type: integer + format: int32 + - in: query + name: pageToken + schema: + type: string + /v2beta/labels/{labelsId}/locks: parameters: *ref_1 - post: - description: >- - Updates Label permissions. If a permission for the indicated principal - doesn't exist, a new Label Permission is created, otherwise the existing - permission is updated. Permissions affect the Label resource as a whole, - are not revisioned, and do not require publishing. - operationId: drivelabels.labels.permissions.batchUpdate - requestBody: - content: - application/json: - schema: - $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaBatchUpdateLabelPermissionsRequest + get: + description: Lists the label locks on a label. + operationId: drivelabels.labels.locks.list security: - Oauth2: - https://www.googleapis.com/auth/drive.admin.labels Oauth2c: - https://www.googleapis.com/auth/drive.admin.labels + - Oauth2: + - https://www.googleapis.com/auth/drive.admin.labels.readonly + Oauth2c: + - https://www.googleapis.com/auth/drive.admin.labels.readonly - Oauth2: - https://www.googleapis.com/auth/drive.labels Oauth2c: - https://www.googleapis.com/auth/drive.labels + - Oauth2: + - https://www.googleapis.com/auth/drive.labels.readonly + Oauth2c: + - https://www.googleapis.com/auth/drive.labels.readonly responses: '200': description: Successful response @@ -3370,19 +3498,28 @@ paths: application/json: schema: $ref: >- - #/components/schemas/GoogleAppsDriveLabelsV2betaBatchUpdateLabelPermissionsResponse + #/components/schemas/GoogleAppsDriveLabelsV2betaListLabelLocksResponse parameters: - in: path name: labelsId required: true schema: type: string + - in: query + name: pageSize + schema: + type: integer + format: int32 + - in: query + name: pageToken + schema: + type: string /v2beta/limits/label: parameters: *ref_1 get: description: >- - Get the constraints on the structure of a Label; such as, the maximum - number of Fields allowed and maximum length of the label title. + Get the constraints on the structure of a label; such as, the maximum + number of fields allowed and maximum length of the label title. operationId: drivelabels.limits.getLabel security: - Oauth2: diff --git a/providers/src/googleworkspace/v00.00.00000/services/drivev2.yaml b/providers/src/googleworkspace/v00.00.00000/services/drivev2.yaml index 1b207b12..9a2c380a 100644 --- a/providers/src/googleworkspace/v00.00.00000/services/drivev2.yaml +++ b/providers/src/googleworkspace/v00.00.00000/services/drivev2.yaml @@ -7,10 +7,10 @@ info: title: Google Drive API description: The Google Drive API allows clients to access resources from Google Drive. version: v2 - x-discovery-doc-revision: '20241202' - x-generated-date: '2024-12-07' + x-discovery-doc-revision: '20250821' + x-generated-date: '2025-08-28' externalDocs: - url: https://developers.google.com/drive/ + url: https://developers.google.com/workspace/drive/ servers: - url: https://www.googleapis.com/drive/v2 components: @@ -272,30 +272,42 @@ components: properties: displayName: description: Output only. A plain text displayable name for this user. + readOnly: true type: string kind: - description: Output only. This is always `drive#user`. + description: >- + Output only. Identifies what kind of resource this is. Value: the + fixed string `drive#user`. default: drive#user + readOnly: true type: string isAuthenticatedUser: description: >- Output only. Whether this user is the same as the authenticated user for whom the request was made. + readOnly: true type: boolean permissionId: - description: Output only. The user's ID as visible in the permissions collection. + description: Output only. The user's ID as visible in Permission resources. + readOnly: true type: string emailAddress: - description: Output only. The email address of the user. + description: >- + Output only. The email address of the user. This may not be present + in certain contexts if the user has not made their email address + visible to the requester. + readOnly: true type: string picture: description: Output only. The user's profile picture. + readOnly: true type: object properties: url: description: >- - Output Only. A URL that points to a profile picture of this + Output only. A URL that points to a profile picture of this user. + readOnly: true type: string App: id: App @@ -1093,6 +1105,14 @@ components: Output only. Whether there is a content restriction on the file that can be removed by the current user. type: boolean + canDisableInheritedPermissions: + description: Output only. Whether a user can disable inherited permissions. + readOnly: true + type: boolean + canEnableInheritedPermissions: + description: Output only. Whether a user can re-enable inherited permissions. + readOnly: true + type: boolean hasAugmentedPermissions: description: >- Output only. Whether there are permissions directly on this file. @@ -1337,6 +1357,11 @@ components: stored in Google Drive; it is not populated for Docs Editors or shortcut files. type: string + inheritedPermissionsDisabled: + description: >- + Whether this file has inherited permissions disabled. Inherited + permissions are enabled by default. + type: boolean Permission: id: Permission description: >- @@ -1424,9 +1449,8 @@ components: type: string permissionDetails: description: >- - Output only. Details of whether the permissions on this shared drive - item are inherited or directly on this item. This is an output-only - field which is present only for shared drive items. + Output only. Details of whether the permissions on this item are + inherited or directly on this item. readOnly: true type: array items: @@ -1456,12 +1480,12 @@ components: inheritedFrom: description: >- Output only. The ID of the item from which this permission is - inherited. This is an output-only field. + inherited. This is only populated for items in shared drives. type: string inherited: description: >- Output only. Whether this permission is inherited. This field - is always populated. This is an output-only field. + is always populated. type: boolean expirationDate: description: >- @@ -1520,8 +1544,12 @@ components: view: description: >- Indicates the view for this permission. Only populated for - permissions that belong to a view. `published` is the only supported - value. + permissions that belong to a view. published and metadata are the + only supported values. - published: The permission's role is + published_reader. - metadata: The item is only visible to the + metadata view because the item has limited access and the scope has + at least read access to the parent. Note: The metadata view is + currently only supported on folders. type: string pendingOwner: description: >- @@ -1529,6 +1557,11 @@ components: owner. Only populated for `user` type permissions for files that are not in a shared drive. type: boolean + inheritedPermissionsDisabled: + description: >- + When true, only organizers, owners, and users with permissions added + directly on the item can access it. + type: boolean ParentReference: id: ParentReference description: >- @@ -2347,17 +2380,14 @@ components: $ref: '#/components/schemas/ChildReference' Comment: id: Comment - description: >- - A comment on a file in Google Drive. Some resource methods (such as - `comments.update`) require a `commentId`. Use the `comments.list` method - to retrieve the ID for a comment in a file. + description: A comment on a file in Google Drive. type: object properties: commentId: - description: Output only. The ID of the comment. + description: The ID of the comment. type: string kind: - description: Output only. This is always `drive#comment`. + description: This is always drive#comment. default: drive#comment type: string createdDate: @@ -2369,42 +2399,43 @@ components: type: string format: date-time fileId: - description: Output only. The file which this comment is addressing. + description: The file which this comment is addressing. + type: string + fileTitle: + description: The title of the file which this comment is addressing. type: string status: description: >- - Output only. The status of this comment. Status can be changed by - posting a reply to a comment with the desired status. * `open` - The - comment is still open. * `resolved` - The comment has been resolved - by one of its replies. + The status of this comment. Status can be changed by posting a reply + to a comment with the desired status. Possible values are: * `open` + - The comment is still open. * `resolved` - The comment has been + resolved by one of its replies. type: string anchor: description: >- A region of the document represented as a JSON string. For details - on defining anchor properties, refer to [Add comments and - replies](https://developers.google.com/drive/api/v2/manage-comments). + on defining anchor properties, refer to [Manage comments and + replies](https://developers.google.com/workspace/drive/api/v3/manage-comments). type: string replies: - description: Output only. Replies to this post. + description: Replies to this post. type: array items: $ref: '#/components/schemas/CommentReply' author: - description: >- - Output only. The author of the comment. The author's email address - and permission ID will not be populated. + description: The user who wrote this comment. $ref: '#/components/schemas/User' deleted: description: >- - Output only. Whether this comment has been deleted. If a comment has - been deleted the content will be cleared and this will only - represent a comment that once existed. + Whether this comment has been deleted. If a comment has been deleted + the content will be cleared and this will only represent a comment + that once existed. type: boolean selfLink: - description: Output only. A link back to this comment. + description: A link back to this comment. type: string htmlContent: - description: Output only. HTML formatted content for this comment. + description: HTML formatted content for this comment. type: string content: description: >- @@ -2418,7 +2449,7 @@ components: - drive.comments.update type: string context: - description: The context of the file which is being commented on. + description: Context of a file which is being commented on. type: object properties: type: @@ -2430,22 +2461,24 @@ components: on. In the case of a text file for example, this would be the actual text that the comment is about. type: string - fileTitle: - description: Output only. The title of the file which this comment is addressing. - type: string + resolved: + description: >- + Output only. Whether the comment has been resolved by one of its + replies. + type: boolean + genoaAuthor: + description: The user who wrote this comment as a GenoaUser. + $ref: '#/components/schemas/GenoaUser' CommentReply: id: CommentReply - description: >- - A comment on a file in Google Drive. Some resource methods (such as - `replies.update`) require a `replyId`. Use the `replies.list` method to - retrieve the ID for a reply. + description: A reply to a comment on a file in Google Drive. type: object properties: replyId: - description: Output only. The ID of the reply. + description: The ID of the reply. type: string kind: - description: Output only. This is always `drive#commentReply`. + description: This is always drive#commentReply. default: drive#commentReply type: string createdDate: @@ -2459,23 +2492,21 @@ components: verb: description: >- The action this reply performed to the parent comment. When creating - a new reply this is the action to be perform to the parent comment. + a new reply this is the action to be perform tSo the parent comment. Possible values are: * `resolve` - To resolve a comment. * `reopen` - To reopen (un-resolve) a comment. type: string author: - description: >- - Output only. The author of the reply. The author's email address and - permission ID will not be populated. + description: The user who wrote this reply. $ref: '#/components/schemas/User' deleted: description: >- - Output only. Whether this reply has been deleted. If a reply has - been deleted the content will be cleared and this will only - represent a reply that once existed. + Whether this reply has been deleted. If a reply has been deleted the + content will be cleared and this will only represent a reply that + once existed. type: boolean htmlContent: - description: Output only. HTML formatted content for this reply. + description: HTML formatted content for this reply. type: string content: description: >- @@ -2488,13 +2519,148 @@ components: - drive.replies.patch - drive.replies.update type: string + genoaAuthor: + description: The user who wrote this reply as a GenoaUser. + $ref: '#/components/schemas/GenoaUser' + GenoaUser: + id: GenoaUser + description: 'Next ID: 13' + type: object + properties: + name: + description: A displayable name for the user. + type: string + url: + description: A URL to get more information about the user. + type: string + photo: + description: A photo of the user. + $ref: '#/components/schemas/Photo' + isRequestingUser: + description: Whether this user is the same as the user making the request. + type: boolean + permissionId: + description: The user's ID as visible in the permissions collection + type: string + id: + description: The user's obfuscated Gaia ID as visible throughout Google APIs + type: string + domain: + description: >- + The domain name of this user or group. As per FlexOrgs M2 + compliance, usage of domain is not allowed. This field will continue + to exist/be populated with the organization's display name (which is + not necessarily the domain) to support mobile clients that use this + field for display purposes. For more information please see: + b/133505341 + deprecated: true + type: string + domainSharingSettings: + description: >- + The sharing settings for the domain of this user or group. + Deprecated, see go/trust-rules-api-surface + $ref: '#/components/schemas/DomainSharingSettings' + emailAddress: + description: The email address of the user + type: string + emailAddressFromGaia: + description: The primary email address of the user from GAIA. + type: string + customerId: + description: The customer id which the user belongs to. + type: string + organizationDisplayName: + description: The name of the organization that the user belongs to. + type: string + Photo: + id: Photo + description: 'Next ID: 4' + type: object + properties: + url: + description: The URL to get the picture from. + type: string + width: + description: The width of the picture in pixels. + type: integer + format: uint32 + height: + description: The height of the picture in pixels. + type: integer + format: uint32 + DomainSharingSettings: + id: DomainSharingSettings + description: 'Next ID: 5' + type: object + properties: + maxAllUsersRole: + description: Maximum allowed role when sharing with all users + type: string + enumDescriptions: + - '' + - '' + - '' + - '' + - '' + enum: + - OWNER + - WRITER + - COMMENTER + - READER + - NONE + maxDomainRole: + description: Maximum allowed role when sharing with all users inside the domain + type: string + enumDescriptions: + - '' + - '' + - '' + - '' + - '' + enum: + - OWNER + - WRITER + - COMMENTER + - READER + - NONE + shareOutPolicy: + description: Policy for sharing with a user outside the domain + type: string + enumDescriptions: + - '' + - '' + - '' + enum: + - ALLOWED + - ALLOWED_WITH_WARNING + - DISALLOWED + shareInPolicy: + description: Deprecated - See b/13414050 + deprecated: true + type: string + enumDescriptions: + - '' + - '' + - '' + enum: + - ALLOWED + - ALLOWED_WITH_WARNING + - DISALLOWED CommentList: id: CommentList description: A list of comments on a file in Google Drive. type: object properties: + items: + description: >- + The list of comments. If nextPageToken is populated, then this list + may be incomplete and an additional page of results should be + fetched. + type: array + items: + $ref: '#/components/schemas/Comment' kind: - description: This is always `drive#commentList`. + description: This is always drive#commentList. default: drive#commentList type: string selfLink: @@ -2503,14 +2669,6 @@ components: nextLink: description: A link to the next page of comments. type: string - items: - description: >- - The list of comments. If nextPageToken is populated, then this list - may be incomplete and an additional page of results should be - fetched. - type: array - items: - $ref: '#/components/schemas/Comment' nextPageToken: description: >- The page token for the next page of comments. This will be absent if @@ -2911,7 +3069,7 @@ components: publishedLink: description: >- Output only. A link to the published revision. This is only - populated for Google Sites files. + populated for Docs Editors files. type: string fileSize: description: >- @@ -4897,7 +5055,7 @@ paths: schema: type: string get: - description: ' Lists the user''s shared drives. This method accepts the `q` parameter, which is a search query combining one or more search terms. For more information, see the [Search for shared drives](/drive/api/guides/search-shareddrives) guide.' + description: ' Lists the user''s shared drives. This method accepts the `q` parameter, which is a search query combining one or more search terms. For more information, see the [Search for shared drives](/workspace/drive/api/guides/search-shareddrives) guide.' operationId: drive.drives.list security: - Oauth2: @@ -5092,7 +5250,7 @@ paths: schema: type: boolean get: - description: ' Gets a file''s metadata or content by ID. If you provide the URL parameter `alt=media`, then the response includes the file contents in the response body. Downloading content with `alt=media` only works if the file is stored in Drive. To download Google Docs, Sheets, and Slides use [`files.export`](/drive/api/reference/rest/v2/files/export) instead. For more information, see [Download & export files](/drive/api/guides/manage-downloads).' + description: ' Gets a file''s metadata or content by ID. If you provide the URL parameter `alt=media`, then the response includes the file contents in the response body. Downloading content with `alt=media` only works if the file is stored in Drive. To download Google Docs, Sheets, and Slides use [`files.export`](/workspace/drive/api/reference/rest/v2/files/export) instead. For more information, see [Download & export files](/workspace/drive/api/guides/manage-downloads).' operationId: drive.files.get security: - Oauth2: @@ -5295,7 +5453,7 @@ paths: schema: type: string put: - description: ' Updates a file''s metadata and/or content. When calling this method, only populate fields in the request that you want to modify. When updating fields, some fields might be changed automatically, such as `modifiedDate`. This method supports patch semantics. This method supports an */upload* URI and accepts uploaded media with the following characteristics: - *Maximum file size:* 5,120 GB - *Accepted Media MIME types:*`*/*` Note: Specify a valid MIME type, rather than the literal `*/*` value. The literal `*/*` is only used to indicate that any valid MIME type can be uploaded. For more information on uploading files, see [Upload file data](/drive/api/guides/manage-uploads).' + description: ' Updates a file''s metadata and/or content. When calling this method, only populate fields in the request that you want to modify. When updating fields, some fields might be changed automatically, such as `modifiedDate`. This method supports patch semantics. This method supports an */upload* URI and accepts uploaded media with the following characteristics: - *Maximum file size:* 5,120 GB - *Accepted Media MIME types:*`*/*` Note: Specify a valid MIME type, rather than the literal `*/*` value. The literal `*/*` is only used to indicate that any valid MIME type can be uploaded. For more information on uploading files, see [Upload file data](/workspace/drive/api/guides/manage-uploads).' operationId: drive.files.update requestBody: content: @@ -5517,7 +5675,7 @@ paths: /files: parameters: *ref_1 post: - description: ' Inserts a new file. This method supports an */upload* URI and accepts uploaded media with the following characteristics: - *Maximum file size:* 5,120 GB - *Accepted Media MIME types:*`*/*` Note: Specify a valid MIME type, rather than the literal `*/*` value. The literal `*/*` is only used to indicate that any valid MIME type can be uploaded. For more information on uploading files, see [Upload file data](/drive/api/guides/manage-uploads). Apps creating shortcuts with `files.insert` must specify the MIME type `application/vnd.google-apps.shortcut`. Apps should specify a file extension in the `title` property when inserting files with the API. For example, an operation to insert a JPEG file should specify something like `"title": "cat.jpg"` in the metadata. Subsequent `GET` requests include the read-only `fileExtension` property populated with the extension originally specified in the `title` property. When a Google Drive user requests to download a file, or when the file is downloaded through the sync client, Drive builds a full filename (with extension) based on the title. In cases where the extension is missing, Drive attempts to determine the extension based on the file''s MIME type.' + description: ' Inserts a new file. This method supports an */upload* URI and accepts uploaded media with the following characteristics: - *Maximum file size:* 5,120 GB - *Accepted Media MIME types:*`*/*` Note: Specify a valid MIME type, rather than the literal `*/*` value. The literal `*/*` is only used to indicate that any valid MIME type can be uploaded. For more information on uploading files, see [Upload file data](/workspace/drive/api/guides/manage-uploads). Apps creating shortcuts with `files.insert` must specify the MIME type `application/vnd.google-apps.shortcut`. Apps should specify a file extension in the `title` property when inserting files with the API. For example, an operation to insert a JPEG file should specify something like `"title": "cat.jpg"` in the metadata. Subsequent `GET` requests include the read-only `fileExtension` property populated with the extension originally specified in the `title` property. When a Google Drive user requests to download a file, or when the file is downloaded through the sync client, Drive builds a full filename (with extension) based on the title. In cases where the extension is missing, Drive attempts to determine the extension based on the file''s MIME type.' operationId: drive.files.insert requestBody: content: @@ -5602,7 +5760,7 @@ paths: schema: type: string get: - description: ' Lists the user''s files. This method accepts the `q` parameter, which is a search query combining one or more search terms. For more information, see the [Search for files & folders](/drive/api/guides/search-files) guide. *Note:* This method returns *all* files by default, including trashed files. If you don''t want trashed files to appear in the list, use the `trashed=false` query parameter to remove trashed files from the results.' + description: ' Lists the user''s files. This method accepts the `q` parameter, which is a search query combining one or more search terms. For more information, see the [Search for files & folders](/workspace/drive/api/guides/search-files) guide. *Note:* This method returns *all* files by default, including trashed files. If you don''t want trashed files to appear in the list, use the `trashed=false` query parameter to remove trashed files from the results.' operationId: drive.files.list security: - Oauth2: @@ -6281,6 +6439,10 @@ paths: name: useDomainAdminAccess schema: type: boolean + - in: query + name: enforceExpansiveAccess + schema: + type: boolean get: description: Gets a permission by ID. operationId: drive.permissions.get @@ -6401,6 +6563,10 @@ paths: name: useDomainAdminAccess schema: type: boolean + - in: query + name: enforceExpansiveAccess + schema: + type: boolean put: description: >- Updates a permission. **Warning:** Concurrent permissions operations on @@ -6458,6 +6624,10 @@ paths: name: useDomainAdminAccess schema: type: boolean + - in: query + name: enforceExpansiveAccess + schema: + type: boolean /permissionIds/{email}: parameters: *ref_1 get: @@ -6572,6 +6742,10 @@ paths: name: useDomainAdminAccess schema: type: boolean + - in: query + name: enforceExpansiveAccess + schema: + type: boolean get: description: Lists a file's or shared drive's permissions. operationId: drive.permissions.list diff --git a/providers/src/googleworkspace/v00.00.00000/services/drivev3.yaml b/providers/src/googleworkspace/v00.00.00000/services/drivev3.yaml index 3c2a93f7..6d561169 100644 --- a/providers/src/googleworkspace/v00.00.00000/services/drivev3.yaml +++ b/providers/src/googleworkspace/v00.00.00000/services/drivev3.yaml @@ -7,10 +7,10 @@ info: title: Google Drive API description: The Google Drive API allows clients to access resources from Google Drive. version: v3 - x-discovery-doc-revision: '20241202' - x-generated-date: '2024-12-07' + x-discovery-doc-revision: '20250821' + x-generated-date: '2025-08-28' externalDocs: - url: https://developers.google.com/drive/ + url: https://developers.google.com/workspace/drive/ servers: - url: https://www.googleapis.com/drive/v3 components: @@ -47,21 +47,6 @@ components: tokenUrl: https://accounts.google.com/o/oauth2/token scopes: *ref_0 schemas: - ListOperationsResponse: - id: ListOperationsResponse - description: The response message for Operations.ListOperations. - type: object - properties: - operations: - description: >- - A list of operations that matches the specified filter in the - request. - type: array - items: - $ref: '#/components/schemas/Operation' - nextPageToken: - description: The standard List next-page token. - type: string Operation: id: Operation description: >- @@ -274,27 +259,33 @@ components: properties: displayName: description: Output only. A plain text displayable name for this user. + readOnly: true type: string kind: description: >- Output only. Identifies what kind of resource this is. Value: the - fixed string `"drive#user"`. + fixed string `drive#user`. default: drive#user + readOnly: true type: string me: description: Output only. Whether this user is the requesting user. + readOnly: true type: boolean permissionId: description: Output only. The user's ID as visible in Permission resources. + readOnly: true type: string emailAddress: description: >- Output only. The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester. + readOnly: true type: string photoLink: description: Output only. A link to the user's profile photo, if available. + readOnly: true type: string App: id: App @@ -1090,6 +1081,17 @@ components: Output only. Whether there is a content restriction on the file that can be removed by the current user. type: boolean + canDisableInheritedPermissions: + description: Whether a user can disable inherited permissions. + type: boolean + canEnableInheritedPermissions: + description: Whether a user can re-enable inherited permissions. + type: boolean + canChangeItemDownloadRestriction: + description: >- + Output only. Whether the current user can change the owner or + organizer-applied download restrictions of the file. + type: boolean hasAugmentedPermissions: description: >- Output only. Whether there are permissions directly on this file. @@ -1313,14 +1315,25 @@ components: stored in Google Drive; it is not populated for Docs Editors or shortcut files. type: string + inheritedPermissionsDisabled: + description: >- + Whether this file has inherited permissions disabled. Inherited + permissions are enabled by default. + type: boolean + downloadRestrictions: + description: Download restrictions applied on the file. + $ref: '#/components/schemas/DownloadRestrictionsMetadata' Permission: id: Permission description: >- A permission for a file. A permission grants a user, group, domain, or - the world access to a file or a folder hierarchy. Some resource methods - (such as `permissions.update`) require a `permissionId`. Use the - `permissions.list` method to retrieve the ID for a file, folder, or - shared drive. + the world access to a file or a folder hierarchy. By default, + permissions requests only return a subset of fields. Permission kind, + ID, type, and role are always returned. To retrieve specific fields, see + https://developers.google.com/workspace/drive/api/guides/fields-parameter. + Some resource methods (such as `permissions.update`) require a + `permissionId`. Use the `permissions.list` method to retrieve the ID for + a file, folder, or shared drive. type: object properties: id: @@ -1357,9 +1370,8 @@ components: type: string permissionDetails: description: >- - Output only. Details of whether the permissions on this shared drive - item are inherited or directly on this item. This is an output-only - field which is present only for shared drive items. + Output only. Details of whether the permissions on this item are + inherited or directly on this item. readOnly: true type: array items: @@ -1374,14 +1386,14 @@ components: inheritedFrom: description: >- Output only. The ID of the item from which this permission is - inherited. This is an output-only field. + inherited. This is only populated for items in shared drives. type: string role: description: >- Output only. The primary role for this user. While new values may be added in the future, the following are currently - possible: * `organizer` * `fileOrganizer` * `writer` * - `commenter` * `reader` + possible: * `owner` * `organizer` * `fileOrganizer` * `writer` + * `commenter` * `reader` type: string inherited: description: >- @@ -1464,8 +1476,12 @@ components: view: description: >- Indicates the view for this permission. Only populated for - permissions that belong to a view. 'published' is the only supported - value. + permissions that belong to a view. published and metadata are the + only supported values. - published: The permission's role is + published_reader. - metadata: The item is only visible to the + metadata view because the item has limited access and the scope has + at least read access to the parent. Note: The metadata view is + currently only supported on folders. type: string pendingOwner: description: >- @@ -1473,6 +1489,11 @@ components: owner. Only populated for `user` type permissions for files that are not in a shared drive. type: boolean + inheritedPermissionsDisabled: + description: >- + When true, only organizers, owners, and users with permissions added + directly on the item can access it. + type: boolean ContentRestriction: id: ContentRestriction description: A restriction for accessing the content of the file. @@ -1584,6 +1605,35 @@ components: type: array items: $ref: '#/components/schemas/User' + DownloadRestrictionsMetadata: + id: DownloadRestrictionsMetadata + description: Download restrictions applied to the file. + type: object + properties: + itemDownloadRestriction: + description: >- + The download restriction of the file applied directly by the owner + or organizer. This does not take into account shared drive settings + or DLP rules. + $ref: '#/components/schemas/DownloadRestriction' + effectiveDownloadRestrictionWithContext: + description: >- + Output only. The effective download restriction applied to this + file. This considers all restriction settings and DLP rules. + $ref: '#/components/schemas/DownloadRestriction' + DownloadRestriction: + id: DownloadRestriction + description: A restriction for copy and download of the file. + type: object + properties: + restrictedForReaders: + description: Whether download and copy is restricted for readers. + type: boolean + restrictedForWriters: + description: >- + Whether download and copy is restricted for writers. If true, + download is also restricted for readers. + type: boolean TeamDrive: id: TeamDrive description: 'Deprecated: use the drive collection instead.' @@ -1716,6 +1766,11 @@ components: Whether the current user can reset the Team Drive restrictions to defaults. type: boolean + canChangeDownloadRestriction: + description: >- + Whether the current user can change organizer-applied download + restrictions of this shared drive. + type: boolean themeId: description: >- The ID of the theme from which the background image and color will @@ -1809,6 +1864,9 @@ components: If false, users with either the organizer role or the file organizer role can share folders. type: boolean + downloadRestriction: + description: Download restrictions applied by shared drive managers. + $ref: '#/components/schemas/DownloadRestriction' orgUnitId: description: >- The organizational unit of this shared drive. This field is only @@ -1953,6 +2011,11 @@ components: Output only. Whether the current user can trash children from folders in this shared drive. type: boolean + canChangeDownloadRestriction: + description: >- + Output only. Whether the current user can change + organizer-applied download restrictions of this shared drive. + type: boolean themeId: description: >- The ID of the theme from which the background image and color will @@ -2051,6 +2114,9 @@ components: If false, users with either the organizer role or the file organizer role can share folders. type: boolean + downloadRestriction: + description: Download restrictions applied by shared drive managers. + $ref: '#/components/schemas/DownloadRestriction' orgUnitId: description: >- Output only. The organizational unit of this shared drive. This @@ -2144,7 +2210,7 @@ components: description: >- A region of the document represented as a JSON string. For details on defining anchor properties, refer to [Manage comments and - replies](https://developers.google.com/drive/api/v3/manage-comments). + replies](https://developers.google.com/workspace/drive/api/v3/manage-comments). type: string replies: description: >- @@ -2594,7 +2660,7 @@ components: publishedLink: description: >- Output only. A link to the published revision. This is only - populated for Google Sites files. + populated for Docs Editors files. type: string size: description: >- @@ -2858,13 +2924,6 @@ components: name: operations title: Operations methods: - list: - operation: - $ref: '#/paths/~1operations/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.operations get: operation: $ref: '#/paths/~1operations~1{name}/get' @@ -2874,35 +2933,10 @@ components: sqlVerbs: select: - $ref: '#/components/x-stackQL-resources/operations/methods/get' - - $ref: '#/components/x-stackQL-resources/operations/methods/list' insert: [] update: [] replace: [] delete: [] - operation: - id: googleworkspace.drivev3.operation - name: operation - title: Operation - methods: - delete: - operation: - $ref: '#/paths/~1operation~1{name}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - cancel: - operation: - $ref: '#/paths/~1operation~1{name}:cancel/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - replace: [] - delete: - - $ref: '#/components/x-stackQL-resources/operation/methods/delete' about: id: googleworkspace.drivev3.about name: about @@ -3439,7 +3473,7 @@ components: replace: [] delete: [] paths: - /operations: + /operations/{name}: parameters: &ref_1 - $ref: '#/components/parameters/access_token' - $ref: '#/components/parameters/alt' @@ -3452,39 +3486,6 @@ paths: - $ref: '#/components/parameters/upload_protocol' - $ref: '#/components/parameters/uploadType' - $ref: '#/components/parameters/_.xgafv' - get: - description: >- - Lists operations that match the specified filter in the request. If the - server doesn't support this method, it returns `UNIMPLEMENTED`. - operationId: drive.operations.list - security: [] - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/ListOperationsResponse' - parameters: - - in: query - name: name - schema: - type: string - - in: query - name: filter - schema: - type: string - - in: query - name: pageSize - schema: - type: integer - format: int32 - - in: query - name: pageToken - schema: - type: string - /operations/{name}: - parameters: *ref_1 get: description: >- Gets the latest state of a long-running operation. Clients can use this @@ -3521,55 +3522,16 @@ paths: required: true schema: type: string - /operation/{name}: - parameters: *ref_1 - delete: - description: >- - Deletes a long-running operation. This method indicates that the client - is no longer interested in the operation result. It does not cancel the - operation. If the server doesn't support this method, it returns - `google.rpc.Code.UNIMPLEMENTED`. - operationId: drive.operation.delete - security: [] - responses: - '204': - description: No Content - parameters: - - in: path - name: name - required: true - schema: - type: string - /operation/{name}:cancel: - parameters: *ref_1 - post: - description: >- - Starts asynchronous cancellation on a long-running operation. The server - makes a best effort to cancel the operation, but success is not - guaranteed. If the server doesn't support this method, it returns - `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation - or other methods to check whether the cancellation succeeded or whether - the operation completed despite cancellation. On successful - cancellation, the operation is not deleted; instead, it becomes an - operation with an Operation.error value with a google.rpc.Status.code of - `1`, corresponding to `Code.CANCELLED`. - operationId: drive.operation.cancel - security: [] - responses: - '204': - description: No Content - parameters: - - in: path - name: name - required: true - schema: - type: string /about: parameters: *ref_1 get: description: >- Gets information about the user, the user's Drive, and system - capabilities. + capabilities. For more information, see [Return user + info](https://developers.google.com/workspace/drive/api/guides/user-info). + Required: The `fields` parameter must be set. To return the exact fields + you need, see [Return specific + fields](https://developers.google.com/workspace/drive/api/guides/fields-parameter). operationId: drive.about.get security: - Oauth2: @@ -3611,7 +3573,9 @@ paths: /apps/{appId}: parameters: *ref_1 get: - description: Gets a specific app. + description: >- + Gets a specific app. For more information, see [Return user + info](https://developers.google.com/workspace/drive/api/guides/user-info). operationId: drive.apps.get security: - Oauth2: @@ -3658,7 +3622,9 @@ paths: /apps: parameters: *ref_1 get: - description: Lists a user's installed apps. + description: >- + Lists a user's installed apps. For more information, see [Return user + info](https://developers.google.com/workspace/drive/api/guides/user-info). operationId: drive.apps.list security: - Oauth2: @@ -3688,7 +3654,10 @@ paths: /changes/startPageToken: parameters: *ref_1 get: - description: Gets the starting pageToken for listing future changes. + description: >- + Gets the starting pageToken for listing future changes. For more + information, see [Retrieve + changes](https://developers.google.com/workspace/drive/api/guides/manage-changes). operationId: drive.changes.getStartPageToken security: - Oauth2: @@ -3750,7 +3719,10 @@ paths: /changes: parameters: *ref_1 get: - description: Lists the changes for a user or shared drive. + description: >- + Lists the changes for a user or shared drive. For more information, see + [Retrieve + changes](https://developers.google.com/workspace/drive/api/guides/manage-changes). operationId: drive.changes.list security: - Oauth2: @@ -3854,7 +3826,10 @@ paths: /changes/watch: parameters: *ref_1 post: - description: Subscribes to changes for a user. + description: >- + Subscribes to changes for a user. For more information, see + [Notifications for resource + changes](https://developers.google.com/workspace/drive/api/guides/push). operationId: drive.changes.watch requestBody: content: @@ -3963,7 +3938,10 @@ paths: /channels/stop: parameters: *ref_1 post: - description: Stops watching resources through this channel. + description: >- + Stops watching resources through this channel. For more information, see + [Notifications for resource + changes](https://developers.google.com/workspace/drive/api/guides/push). operationId: drive.channels.stop requestBody: content: @@ -4010,7 +3988,13 @@ paths: /files/{fileId}/comments: parameters: *ref_1 post: - description: Creates a comment on a file. + description: >- + Creates a comment on a file. For more information, see [Manage comments + and + replies](https://developers.google.com/workspace/drive/api/guides/manage-comments). + Required: The `fields` parameter must be set. To return the exact fields + you need, see [Return specific + fields](https://developers.google.com/workspace/drive/api/guides/fields-parameter). operationId: drive.comments.create requestBody: content: @@ -4040,7 +4024,12 @@ paths: schema: type: string get: - description: Lists a file's comments. + description: >- + Lists a file's comments. For more information, see [Manage comments and + replies](https://developers.google.com/workspace/drive/api/guides/manage-comments). + Required: The `fields` parameter must be set. To return the exact fields + you need, see [Return specific + fields](https://developers.google.com/workspace/drive/api/guides/fields-parameter). operationId: drive.comments.list security: - Oauth2: @@ -4092,7 +4081,9 @@ paths: /files/{fileId}/comments/{commentId}: parameters: *ref_1 delete: - description: Deletes a comment. + description: >- + Deletes a comment. For more information, see [Manage comments and + replies](https://developers.google.com/workspace/drive/api/guides/manage-comments). operationId: drive.comments.delete security: - Oauth2: @@ -4118,7 +4109,12 @@ paths: schema: type: string get: - description: Gets a comment by ID. + description: >- + Gets a comment by ID. For more information, see [Manage comments and + replies](https://developers.google.com/workspace/drive/api/guides/manage-comments). + Required: The `fields` parameter must be set. To return the exact fields + you need, see [Return specific + fields](https://developers.google.com/workspace/drive/api/guides/fields-parameter). operationId: drive.comments.get security: - Oauth2: @@ -4160,7 +4156,13 @@ paths: schema: type: boolean patch: - description: Updates a comment with patch semantics. + description: >- + Updates a comment with patch semantics. For more information, see + [Manage comments and + replies](https://developers.google.com/workspace/drive/api/guides/manage-comments). + Required: The `fields` parameter must be set. To return the exact fields + you need, see [Return specific + fields](https://developers.google.com/workspace/drive/api/guides/fields-parameter). operationId: drive.comments.update requestBody: content: @@ -4197,7 +4199,9 @@ paths: /drives: parameters: *ref_1 post: - description: Creates a shared drive. + description: >- + Creates a shared drive. For more information, see [Manage shared + drives](https://developers.google.com/workspace/drive/api/guides/manage-shareddrives). operationId: drive.drives.create requestBody: content: @@ -4223,7 +4227,7 @@ paths: schema: type: string get: - description: ' Lists the user''s shared drives. This method accepts the `q` parameter, which is a search query combining one or more search terms. For more information, see the [Search for shared drives](/drive/api/guides/search-shareddrives) guide.' + description: ' Lists the user''s shared drives. This method accepts the `q` parameter, which is a search query combining one or more search terms. For more information, see the [Search for shared drives](/workspace/drive/api/guides/search-shareddrives) guide.' operationId: drive.drives.list security: - Oauth2: @@ -4264,7 +4268,9 @@ paths: delete: description: >- Permanently deletes a shared drive for which the user is an `organizer`. - The shared drive cannot contain any untrashed items. + The shared drive cannot contain any untrashed items. For more + information, see [Manage shared + drives](https://developers.google.com/workspace/drive/api/guides/manage-shareddrives). operationId: drive.drives.delete security: - Oauth2: @@ -4289,7 +4295,10 @@ paths: schema: type: boolean get: - description: Gets a shared drive's metadata by ID. + description: >- + Gets a shared drive's metadata by ID. For more information, see [Manage + shared + drives](https://developers.google.com/workspace/drive/api/guides/manage-shareddrives). operationId: drive.drives.get security: - Oauth2: @@ -4318,7 +4327,10 @@ paths: schema: type: boolean patch: - description: Updates the metadata for a shared drive. + description: >- + Updates the metadata for a shared drive. For more information, see + [Manage shared + drives](https://developers.google.com/workspace/drive/api/guides/manage-shareddrives). operationId: drive.drives.update requestBody: content: @@ -4350,7 +4362,10 @@ paths: /drives/{driveId}/hide: parameters: *ref_1 post: - description: Hides a shared drive from the default view. + description: >- + Hides a shared drive from the default view. For more information, see + [Manage shared + drives](https://developers.google.com/workspace/drive/api/guides/manage-shareddrives). operationId: drive.drives.hide security: - Oauth2: @@ -4373,7 +4388,10 @@ paths: /drives/{driveId}/unhide: parameters: *ref_1 post: - description: Restores a shared drive to the default view. + description: >- + Restores a shared drive to the default view. For more information, see + [Manage shared + drives](https://developers.google.com/workspace/drive/api/guides/manage-shareddrives). operationId: drive.drives.unhide security: - Oauth2: @@ -4470,7 +4488,7 @@ paths: /files: parameters: *ref_1 post: - description: ' Creates a new file. This method supports an */upload* URI and accepts uploaded media with the following characteristics: - *Maximum file size:* 5,120 GB - *Accepted Media MIME types:*`*/*` Note: Specify a valid MIME type, rather than the literal `*/*` value. The literal `*/*` is only used to indicate that any valid MIME type can be uploaded. For more information on uploading files, see [Upload file data](/drive/api/guides/manage-uploads). Apps creating shortcuts with `files.create` must specify the MIME type `application/vnd.google-apps.shortcut`. Apps should specify a file extension in the `name` property when inserting files with the API. For example, an operation to insert a JPEG file should specify something like `"name": "cat.jpg"` in the metadata. Subsequent `GET` requests include the read-only `fileExtension` property populated with the extension originally specified in the `title` property. When a Google Drive user requests to download a file, or when the file is downloaded through the sync client, Drive builds a full filename (with extension) based on the title. In cases where the extension is missing, Drive attempts to determine the extension based on the file''s MIME type.' + description: ' Creates a new file. This method supports an */upload* URI and accepts uploaded media with the following characteristics: - *Maximum file size:* 5,120 GB - *Accepted Media MIME types:*`*/*` Note: Specify a valid MIME type, rather than the literal `*/*` value. The literal `*/*` is only used to indicate that any valid MIME type can be uploaded. For more information on uploading files, see [Upload file data](/workspace/drive/api/guides/manage-uploads). Apps creating shortcuts with `files.create` must specify the MIME type `application/vnd.google-apps.shortcut`. Apps should specify a file extension in the `name` property when inserting files with the API. For example, an operation to insert a JPEG file should specify something like `"name": "cat.jpg"` in the metadata. Subsequent `GET` requests include the read-only `fileExtension` property populated with the extension originally specified in the `title` property. When a Google Drive user requests to download a file, or when the file is downloaded through the sync client, Drive builds a full filename (with extension) based on the title. In cases where the extension is missing, Drive attempts to determine the extension based on the file''s MIME type.' operationId: drive.files.create requestBody: content: @@ -4535,7 +4553,7 @@ paths: schema: type: string get: - description: ' Lists the user''s files. This method accepts the `q` parameter, which is a search query combining one or more search terms. For more information, see the [Search for files & folders](/drive/api/guides/search-files) guide. *Note:* This method returns *all* files by default, including trashed files. If you don''t want trashed files to appear in the list, use the `trashed=false` query parameter to remove trashed files from the results.' + description: ' Lists the user''s files. This method accepts the `q` parameter, which is a search query combining one or more search terms. For more information, see the [Search for files & folders](/workspace/drive/api/guides/search-files) guide. *Note:* This method returns *all* files by default, including trashed files. If you don''t want trashed files to appear in the list, use the `trashed=false` query parameter to remove trashed files from the results.' operationId: drive.files.list security: - Oauth2: @@ -4683,7 +4701,7 @@ paths: schema: type: boolean get: - description: ' Gets a file''s metadata or content by ID. If you provide the URL parameter `alt=media`, then the response includes the file contents in the response body. Downloading content with `alt=media` only works if the file is stored in Drive. To download Google Docs, Sheets, and Slides use [`files.export`](/drive/api/reference/rest/v3/files/export) instead. For more information, see [Download & export files](/drive/api/guides/manage-downloads).' + description: ' Gets a file''s metadata or content by ID. If you provide the URL parameter `alt=media`, then the response includes the file contents in the response body. Downloading content with `alt=media` only works if the file is stored in Drive. To download Google Docs, Sheets, and Slides use [`files.export`](/workspace/drive/api/reference/rest/v3/files/export) instead. For more information, see [Download & export files](/workspace/drive/api/guides/manage-downloads).' operationId: drive.files.get security: - Oauth2: @@ -4752,7 +4770,7 @@ paths: schema: type: string patch: - description: ' Updates a file''s metadata and/or content. When calling this method, only populate fields in the request that you want to modify. When updating fields, some fields might be changed automatically, such as `modifiedDate`. This method supports patch semantics. This method supports an */upload* URI and accepts uploaded media with the following characteristics: - *Maximum file size:* 5,120 GB - *Accepted Media MIME types:*`*/*` Note: Specify a valid MIME type, rather than the literal `*/*` value. The literal `*/*` is only used to indicate that any valid MIME type can be uploaded. For more information on uploading files, see [Upload file data](/drive/api/guides/manage-uploads).' + description: ' Updates a file''s metadata and/or content. When calling this method, only populate fields in the request that you want to modify. When updating fields, some fields might be changed automatically, such as `modifiedDate`. This method supports patch semantics. This method supports an */upload* URI and accepts uploaded media with the following characteristics: - *Maximum file size:* 5,120 GB - *Accepted Media MIME types:*`*/*` Note: Specify a valid MIME type, rather than the literal `*/*` value. The literal `*/*` is only used to indicate that any valid MIME type can be uploaded. For more information on uploading files, see [Upload file data](/workspace/drive/api/guides/manage-uploads).' operationId: drive.files.update requestBody: content: @@ -5209,6 +5227,10 @@ paths: name: useDomainAdminAccess schema: type: boolean + - in: query + name: enforceExpansiveAccess + schema: + type: boolean get: description: Lists a file's or shared drive's permissions. operationId: drive.permissions.list @@ -5321,6 +5343,10 @@ paths: name: useDomainAdminAccess schema: type: boolean + - in: query + name: enforceExpansiveAccess + schema: + type: boolean get: description: Gets a permission by ID. operationId: drive.permissions.get @@ -5441,6 +5467,10 @@ paths: name: useDomainAdminAccess schema: type: boolean + - in: query + name: enforceExpansiveAccess + schema: + type: boolean /files/{fileId}/comments/{commentId}/replies: parameters: *ref_1 post: @@ -5656,7 +5686,9 @@ paths: Permanently deletes a file version. You can only delete revisions for files with binary content in Google Drive, like images or videos. Revisions for other files, like Google Docs or Sheets, and the last - remaining file version can't be deleted. + remaining file version can't be deleted. For more information, see + [Manage file + revisions](https://developers.google.com/drive/api/guides/manage-revisions). operationId: drive.revisions.delete security: - Oauth2: @@ -5686,7 +5718,10 @@ paths: schema: type: string get: - description: Gets a revision's metadata or content by ID. + description: >- + Gets a revision's metadata or content by ID. For more information, see + [Manage file + revisions](https://developers.google.com/workspace/drive/api/guides/manage-revisions). operationId: drive.revisions.get security: - Oauth2: @@ -5744,7 +5779,10 @@ paths: schema: type: boolean patch: - description: Updates a revision with patch semantics. + description: >- + Updates a revision with patch semantics. For more information, see + [Manage file + revisions](https://developers.google.com/workspace/drive/api/guides/manage-revisions). operationId: drive.revisions.update requestBody: content: @@ -5785,7 +5823,9 @@ paths: /files/{fileId}/revisions: parameters: *ref_1 get: - description: Lists a file's revisions. + description: >- + Lists a file's revisions. For more information, see [Manage file + revisions](https://developers.google.com/workspace/drive/api/guides/manage-revisions). operationId: drive.revisions.list security: - Oauth2: From 44ab82821c54ba7b0e5da8de28332b28de6a6336 Mon Sep 17 00:00:00 2001 From: Jeffrey Aven Date: Fri, 29 Aug 2025 12:52:56 +1000 Subject: [PATCH 3/3] firebase update --- .../src/firebase/v00.00.00000/provider.yaml | 172 +- .../v00.00.00000/services/appcheck.yaml | 3489 ++++++++++++ .../services/appdistribution.yaml | 2428 ++++++++ .../v00.00.00000/services/apphosting.yaml | 3281 +++++++++++ .../{firebasedatabase.yaml => database.yaml} | 462 +- .../v00.00.00000/services/dataconnect.yaml | 2469 ++++++++ .../firebase/v00.00.00000/services/fcm.yaml | 867 +++ .../v00.00.00000/services/fcmdata.yaml | 479 ++ .../v00.00.00000/services/firebase.yaml | 3492 +++++++----- .../services/firebaseappcheck.yaml | 2351 -------- .../services/firebasedynamiclinks.yaml | 933 --- .../services/firebasehosting.yaml | 295 - .../v00.00.00000/services/hosting.yaml | 885 +++ .../services/{firebaseml.yaml => ml.yaml} | 406 +- .../{firebaserules.yaml => rules.yaml} | 1334 +++-- .../{firebasestorage.yaml => storage.yaml} | 490 +- .../v00.00.00000/services/testing.yaml | 3182 +++++++++++ .../v00.00.00000/services/toolresults.yaml | 5057 ++++++++++------- 18 files changed, 23917 insertions(+), 8155 deletions(-) create mode 100644 providers/src/firebase/v00.00.00000/services/appcheck.yaml create mode 100644 providers/src/firebase/v00.00.00000/services/appdistribution.yaml create mode 100644 providers/src/firebase/v00.00.00000/services/apphosting.yaml rename providers/src/firebase/v00.00.00000/services/{firebasedatabase.yaml => database.yaml} (70%) create mode 100644 providers/src/firebase/v00.00.00000/services/dataconnect.yaml create mode 100644 providers/src/firebase/v00.00.00000/services/fcm.yaml create mode 100644 providers/src/firebase/v00.00.00000/services/fcmdata.yaml delete mode 100644 providers/src/firebase/v00.00.00000/services/firebaseappcheck.yaml delete mode 100644 providers/src/firebase/v00.00.00000/services/firebasedynamiclinks.yaml delete mode 100644 providers/src/firebase/v00.00.00000/services/firebasehosting.yaml create mode 100644 providers/src/firebase/v00.00.00000/services/hosting.yaml rename providers/src/firebase/v00.00.00000/services/{firebaseml.yaml => ml.yaml} (59%) rename providers/src/firebase/v00.00.00000/services/{firebaserules.yaml => rules.yaml} (66%) rename providers/src/firebase/v00.00.00000/services/{firebasestorage.yaml => storage.yaml} (55%) create mode 100644 providers/src/firebase/v00.00.00000/services/testing.yaml diff --git a/providers/src/firebase/v00.00.00000/provider.yaml b/providers/src/firebase/v00.00.00000/provider.yaml index 007a91e5..0b753440 100644 --- a/providers/src/firebase/v00.00.00000/provider.yaml +++ b/providers/src/firebase/v00.00.00000/provider.yaml @@ -2,80 +2,157 @@ id: firebase name: firebase version: v00.00.00000 providerServices: - firebase: - description: The Firebase Management API enables programmatic setup and management of Firebase projects, including a project's Firebase resources and Firebase apps. - id: firebase:v00.00.00000 - name: firebase + appcheck: + id: appcheck:v00.00.00000 + name: appcheck preferred: true service: - $ref: firebase/v00.00.00000/services/firebase.yaml - title: Firebase Management API + $ref: firebase/v00.00.00000/services/appcheck.yaml + title: Firebase App Check API version: v00.00.00000 - firebaseappcheck: - description: Firebase App Check works alongside other Firebase services to help protect your backend resources from abuse, such as billing fraud or phishing. - id: firebaseappcheck:v00.00.00000 - name: firebaseappcheck + description: >- + Firebase App Check works alongside other Firebase services to help protect + your backend resources from abuse, such as billing fraud or phishing. + appdistribution: + id: appdistribution:v00.00.00000 + name: appdistribution preferred: true service: - $ref: firebase/v00.00.00000/services/firebaseappcheck.yaml - title: Firebase App Check API + $ref: firebase/v00.00.00000/services/appdistribution.yaml + title: Firebase App Distribution API + version: v00.00.00000 + description: '' + apphosting: + id: apphosting:v00.00.00000 + name: apphosting + preferred: true + service: + $ref: firebase/v00.00.00000/services/apphosting.yaml + title: Firebase App Hosting API + version: v00.00.00000 + description: >- + Firebase App Hosting streamlines the development and deployment of dynamic + Next.js and Angular applications, offering built-in framework support, + GitHub integration, and integration with other Firebase products. You can + use this API to intervene in the Firebase App Hosting build process and + add custom functionality not supported in our default Console & CLI flows, + including triggering builds from external CI/CD workflows or deploying + from pre-built container images. + database: + id: database:v00.00.00000 + name: database + preferred: true + service: + $ref: firebase/v00.00.00000/services/database.yaml + title: Firebase Realtime Database Management API version: v00.00.00000 - firebasedatabase: - description: The Firebase Realtime Database API enables programmatic provisioning and management of Realtime Database instances. - id: firebasedatabase:v00.00.00000 - name: firebasedatabase + description: >- + The Firebase Realtime Database API enables programmatic provisioning and + management of Realtime Database instances. + dataconnect: + id: dataconnect:v00.00.00000 + name: dataconnect preferred: true service: - $ref: firebase/v00.00.00000/services/firebasedatabase.yaml - title: Firebase Realtime Database API + $ref: firebase/v00.00.00000/services/dataconnect.yaml + title: Firebase Data Connect API version: v00.00.00000 - firebasedynamiclinks: - description: Programmatically creates and manages Firebase Dynamic Links. - id: firebasedynamiclinks:v00.00.00000 - name: firebasedynamiclinks + description: >- + Firebase Data Connect is a relational database service for mobile and web + apps that lets you build and scale using a fully-managed PostgreSQL + database powered by Cloud SQL. The REST API lets developers manage the + connections to their database, change the schema of their database, and + query the database. + fcm: + id: fcm:v00.00.00000 + name: fcm preferred: true service: - $ref: firebase/v00.00.00000/services/firebasedynamiclinks.yaml - title: Firebase Dynamic Links API + $ref: firebase/v00.00.00000/services/fcm.yaml + title: Firebase Cloud Messaging API version: v00.00.00000 - firebasehosting: - description: The Firebase Hosting REST API enables programmatic and customizable management and deployments to your Firebase-hosted sites. Use this REST API to create and manage channels and sites as well as to deploy new or updated hosting configurations and content files. - id: firebasehosting:v00.00.00000 - name: firebasehosting + description: >- + FCM send API that provides a cross-platform messaging solution to reliably + deliver messages. + fcmdata: + id: fcmdata:v00.00.00000 + name: fcmdata preferred: true service: - $ref: firebase/v00.00.00000/services/firebasehosting.yaml + $ref: firebase/v00.00.00000/services/fcmdata.yaml + title: Firebase Cloud Messaging Data API + version: v00.00.00000 + description: >- + Provides additional information about Firebase Cloud Messaging (FCM) + message sends and deliveries. + firebase: + id: firebase:v00.00.00000 + name: firebase + preferred: true + service: + $ref: firebase/v00.00.00000/services/firebase.yaml + title: Firebase Management API + version: v00.00.00000 + description: >- + The Firebase Management API enables programmatic setup and management of + Firebase projects, including a project's Firebase resources and Firebase + apps. + hosting: + id: hosting:v00.00.00000 + name: hosting + preferred: true + service: + $ref: firebase/v00.00.00000/services/hosting.yaml title: Firebase Hosting API version: v00.00.00000 - firebaseml: - description: Access custom machine learning models hosted via Firebase ML. - id: firebaseml:v00.00.00000 - name: firebaseml + description: >- + The Firebase Hosting REST API enables programmatic and customizable + management and deployments to your Firebase-hosted sites. Use this REST + API to create and manage channels and sites as well as to deploy new or + updated hosting configurations and content files. + ml: + id: ml:v00.00.00000 + name: ml preferred: true service: - $ref: firebase/v00.00.00000/services/firebaseml.yaml + $ref: firebase/v00.00.00000/services/ml.yaml title: Firebase ML API version: v00.00.00000 - firebaserules: - description: 'Creates and manages rules that determine when a Firebase Rules-enabled service should permit a request. ' - id: firebaserules:v00.00.00000 - name: firebaserules + description: Access custom machine learning models hosted via Firebase ML. + rules: + id: rules:v00.00.00000 + name: rules preferred: true service: - $ref: firebase/v00.00.00000/services/firebaserules.yaml + $ref: firebase/v00.00.00000/services/rules.yaml title: Firebase Rules API version: v00.00.00000 - firebasestorage: - description: The Cloud Storage for Firebase API enables programmatic management of Cloud Storage buckets for use in Firebase projects - id: firebasestorage:v00.00.00000 - name: firebasestorage + description: >- + Creates and manages rules that determine when a Firebase Rules-enabled + service should permit a request. + storage: + id: storage:v00.00.00000 + name: storage preferred: true service: - $ref: firebase/v00.00.00000/services/firebasestorage.yaml + $ref: firebase/v00.00.00000/services/storage.yaml title: Cloud Storage for Firebase API version: v00.00.00000 + description: >- + The Cloud Storage for Firebase API enables programmatic management of + Cloud Storage buckets for use in Firebase projects + testing: + id: testing:v00.00.00000 + name: testing + preferred: true + service: + $ref: firebase/v00.00.00000/services/testing.yaml + title: Cloud Testing API + version: v00.00.00000 + description: >- + Allows developers to run automated tests for their mobile applications on + Google infrastructure. toolresults: - description: API to publish and access results from developer tools. id: toolresults:v00.00.00000 name: toolresults preferred: true @@ -83,7 +160,8 @@ providerServices: $ref: firebase/v00.00.00000/services/toolresults.yaml title: Cloud Tool Results API version: v00.00.00000 + description: API to publish and access results from developer tools. config: auth: - credentialsenvvar: "GOOGLE_APPLICATION_CREDENTIALS" - type: "service_account" + credentialsenvvar: GOOGLE_CREDENTIALS + type: service_account diff --git a/providers/src/firebase/v00.00.00000/services/appcheck.yaml b/providers/src/firebase/v00.00.00000/services/appcheck.yaml new file mode 100644 index 00000000..b8a7f339 --- /dev/null +++ b/providers/src/firebase/v00.00.00000/services/appcheck.yaml @@ -0,0 +1,3489 @@ +openapi: 3.1.0 +info: + contact: + name: StackQL Studios + url: https://github.com/stackql/google-discovery-to-openapi + email: info@stackql.io + title: Firebase App Check API + description: >- + Firebase App Check works alongside other Firebase services to help protect + your backend resources from abuse, such as billing fraud or phishing. + version: v1 + x-discovery-doc-revision: '20250729' + x-generated-date: '2025-08-28' +externalDocs: + url: https://firebase.google.com/docs/app-check +servers: + - url: https://firebaseappcheck.googleapis.com +components: + securitySchemes: + Oauth2: + type: oauth2 + description: Oauth 2.0 implicit authentication + flows: + implicit: + authorizationUrl: https://accounts.google.com/o/oauth2/auth + scopes: &ref_0 + https://www.googleapis.com/auth/cloud-platform: >- + See, edit, configure, and delete your Google Cloud data and see + the email address for your Google Account. + https://www.googleapis.com/auth/firebase: View and administer all your Firebase data and settings + Oauth2c: + type: oauth2 + description: Oauth 2.0 authorization code authentication + flows: + authorizationCode: + authorizationUrl: https://accounts.google.com/o/oauth2/auth + tokenUrl: https://accounts.google.com/o/oauth2/token + scopes: *ref_0 + schemas: + GoogleFirebaseAppcheckV1AppAttestConfig: + id: GoogleFirebaseAppcheckV1AppAttestConfig + description: >- + An app's App Attest configuration object. This configuration controls + certain properties of the `AppCheckToken` returned by + ExchangeAppAttestAttestation and ExchangeAppAttestAssertion, such as its + ttl. Note that the Team ID registered with your app is used as part of + the validation process. Please register it via the Firebase Console or + programmatically via the [Firebase Management + Service](https://firebase.google.com/docs/projects/api/reference/rest/v11/projects.iosApps/patch). + type: object + properties: + name: + description: >- + Required. The relative resource name of the App Attest configuration + object, in the format: ``` + projects/{project_number}/apps/{app_id}/appAttestConfig ``` + type: string + tokenTtl: + description: >- + Specifies the duration for which App Check tokens exchanged from App + Attest artifacts will be valid. If unset, a default value of 1 hour + is assumed. Must be between 30 minutes and 7 days, inclusive. + type: string + format: google-duration + GoogleFirebaseAppcheckV1BatchGetAppAttestConfigsResponse: + id: GoogleFirebaseAppcheckV1BatchGetAppAttestConfigsResponse + description: Response message for the BatchGetAppAttestConfigs method. + type: object + properties: + configs: + description: AppAttestConfigs retrieved. + type: array + items: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1AppAttestConfig' + GoogleFirebaseAppcheckV1DeviceCheckConfig: + id: GoogleFirebaseAppcheckV1DeviceCheckConfig + description: >- + An app's DeviceCheck configuration object. This configuration is used by + ExchangeDeviceCheckToken to validate device tokens issued to apps by + DeviceCheck. It also controls certain properties of the returned + `AppCheckToken`, such as its ttl. Note that the Team ID registered with + your app is used as part of the validation process. Please register it + via the Firebase Console or programmatically via the [Firebase + Management + Service](https://firebase.google.com/docs/projects/api/reference/rest/v11/projects.iosApps/patch). + type: object + properties: + name: + description: >- + Required. The relative resource name of the DeviceCheck + configuration object, in the format: ``` + projects/{project_number}/apps/{app_id}/deviceCheckConfig ``` + type: string + tokenTtl: + description: >- + Specifies the duration for which App Check tokens exchanged from + DeviceCheck tokens will be valid. If unset, a default value of 1 + hour is assumed. Must be between 30 minutes and 7 days, inclusive. + type: string + format: google-duration + keyId: + description: >- + Required. The key identifier of a private key enabled with + DeviceCheck, created in your Apple Developer account. + type: string + privateKey: + description: >- + Required. Input only. The contents of the private key (`.p8`) file + associated with the key specified by `key_id`. For security reasons, + this field will never be populated in any response. + type: string + privateKeySet: + description: >- + Output only. Whether the `private_key` field was previously set. + Since we will never return the `private_key` field, this field is + the only way to find out whether it was previously set. + readOnly: true + type: boolean + GoogleFirebaseAppcheckV1BatchGetDeviceCheckConfigsResponse: + id: GoogleFirebaseAppcheckV1BatchGetDeviceCheckConfigsResponse + description: Response message for the BatchGetDeviceCheckConfigs method. + type: object + properties: + configs: + description: DeviceCheckConfigs retrieved. + type: array + items: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1DeviceCheckConfig' + GoogleFirebaseAppcheckV1RecaptchaV3Config: + id: GoogleFirebaseAppcheckV1RecaptchaV3Config + description: >- + An app's reCAPTCHA v3 configuration object. This configuration is used + by ExchangeRecaptchaV3Token to validate reCAPTCHA tokens issued to apps + by reCAPTCHA v3. It also controls certain properties of the returned + `AppCheckToken`, such as its ttl. + type: object + properties: + tokenTtl: + description: >- + Specifies the duration for which App Check tokens exchanged from + reCAPTCHA tokens will be valid. If unset, a default value of 1 day + is assumed. Must be between 30 minutes and 7 days, inclusive. + type: string + format: google-duration + name: + description: >- + Required. The relative resource name of the reCAPTCHA v3 + configuration object, in the format: ``` + projects/{project_number}/apps/{app_id}/recaptchaV3Config ``` + type: string + siteSecret: + description: >- + Required. Input only. The site secret used to identify your service + for reCAPTCHA v3 verification. For security reasons, this field will + never be populated in any response. + type: string + siteSecretSet: + description: >- + Output only. Whether the `site_secret` field was previously set. + Since we will never return the `site_secret` field, this field is + the only way to find out whether it was previously set. + readOnly: true + type: boolean + GoogleFirebaseAppcheckV1BatchGetRecaptchaV3ConfigsResponse: + id: GoogleFirebaseAppcheckV1BatchGetRecaptchaV3ConfigsResponse + description: Response message for the BatchGetRecaptchaV3Configs method. + type: object + properties: + configs: + description: RecaptchaV3Configs retrieved. + type: array + items: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1RecaptchaV3Config' + GoogleFirebaseAppcheckV1RecaptchaEnterpriseConfig: + id: GoogleFirebaseAppcheckV1RecaptchaEnterpriseConfig + description: >- + An app's reCAPTCHA Enterprise configuration object. This configuration + is used by ExchangeRecaptchaEnterpriseToken to validate reCAPTCHA tokens + issued to apps by reCAPTCHA Enterprise. It also controls certain + properties of the returned `AppCheckToken`, such as its ttl. + type: object + properties: + name: + description: >- + Required. The relative resource name of the reCAPTCHA Enterprise + configuration object, in the format: ``` + projects/{project_number}/apps/{app_id}/recaptchaEnterpriseConfig + ``` + type: string + tokenTtl: + description: >- + Specifies the duration for which App Check tokens exchanged from + reCAPTCHA Enterprise tokens will be valid. If unset, a default value + of 1 hour is assumed. Must be between 30 minutes and 7 days, + inclusive. + type: string + format: google-duration + siteKey: + description: >- + The score-based site key [created in reCAPTCHA + Enterprise](https://cloud.google.com/recaptcha-enterprise/docs/create-key#creating_a_site_key) + used to [invoke reCAPTCHA and generate the reCAPTCHA + tokens](https://cloud.google.com/recaptcha-enterprise/docs/instrument-web-pages) + for your application. Important: This is *not* the `site_secret` (as + it is in reCAPTCHA v3), but rather your score-based reCAPTCHA + Enterprise site key. + type: string + GoogleFirebaseAppcheckV1BatchGetRecaptchaEnterpriseConfigsResponse: + id: GoogleFirebaseAppcheckV1BatchGetRecaptchaEnterpriseConfigsResponse + description: Response message for the BatchGetRecaptchaEnterpriseConfigs method. + type: object + properties: + configs: + description: RecaptchaEnterpriseConfigs retrieved. + type: array + items: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1RecaptchaEnterpriseConfig + GoogleFirebaseAppcheckV1SafetyNetConfig: + id: GoogleFirebaseAppcheckV1SafetyNetConfig + deprecated: true + description: >- + An app's SafetyNet configuration object. This configuration controls + certain properties of the `AppCheckToken` returned by + ExchangeSafetyNetToken, such as its ttl. Note that your registered + SHA-256 certificate fingerprints are used to validate tokens issued by + SafetyNet; please register them via the Firebase Console or + programmatically via the [Firebase Management + Service](https://firebase.google.com/docs/projects/api/reference/rest/v11/projects.androidApps.sha/create). + type: object + properties: + name: + description: >- + Required. The relative resource name of the SafetyNet configuration + object, in the format: ``` + projects/{project_number}/apps/{app_id}/safetyNetConfig ``` + type: string + tokenTtl: + description: >- + Specifies the duration for which App Check tokens exchanged from + SafetyNet tokens will be valid. If unset, a default value of 1 hour + is assumed. Must be between 30 minutes and 7 days, inclusive. + type: string + format: google-duration + GoogleFirebaseAppcheckV1BatchGetSafetyNetConfigsResponse: + id: GoogleFirebaseAppcheckV1BatchGetSafetyNetConfigsResponse + deprecated: true + description: Response message for the BatchGetSafetyNetConfigs method. + type: object + properties: + configs: + description: SafetyNetConfigs retrieved. + type: array + items: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1SafetyNetConfig' + GoogleFirebaseAppcheckV1PlayIntegrityConfig: + id: GoogleFirebaseAppcheckV1PlayIntegrityConfig + description: >- + An app's Play Integrity configuration object. This configuration + controls certain properties of the `AppCheckToken` returned by + ExchangePlayIntegrityToken, such as its ttl. Note that your registered + SHA-256 certificate fingerprints are used to validate tokens issued by + the Play Integrity API; please register them via the Firebase Console or + programmatically via the [Firebase Management + Service](https://firebase.google.com/docs/projects/api/reference/rest/v1beta1/projects.androidApps.sha/create). + type: object + properties: + name: + description: >- + Required. The relative resource name of the Play Integrity + configuration object, in the format: ``` + projects/{project_number}/apps/{app_id}/playIntegrityConfig ``` + type: string + tokenTtl: + description: >- + Specifies the duration for which App Check tokens exchanged from + Play Integrity tokens will be valid. If unset, a default value of 1 + hour is assumed. Must be between 30 minutes and 7 days, inclusive. + type: string + format: google-duration + GoogleFirebaseAppcheckV1BatchGetPlayIntegrityConfigsResponse: + id: GoogleFirebaseAppcheckV1BatchGetPlayIntegrityConfigsResponse + description: Response message for the BatchGetPlayIntegrityConfigs method. + type: object + properties: + configs: + description: PlayIntegrityConfigs retrieved. + type: array + items: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1PlayIntegrityConfig' + GoogleFirebaseAppcheckV1DebugToken: + id: GoogleFirebaseAppcheckV1DebugToken + description: >- + A *debug token* is a secret used during the development or integration + testing of an app. It essentially allows the development or integration + testing to bypass app attestation while still allowing App Check to + enforce protection on supported production Firebase services. + type: object + properties: + name: + description: >- + Required. The relative resource name of the debug token, in the + format: ``` + projects/{project_number}/apps/{app_id}/debugTokens/{debug_token_id} + ``` + type: string + displayName: + description: >- + Required. A human readable display name used to identify this debug + token. + type: string + token: + description: >- + Required. Input only. Immutable. The secret token itself. Must be + provided during creation, and must be a UUID4, case insensitive. + This field is immutable once set, and cannot be provided during an + UpdateDebugToken request. You can, however, delete this debug token + using DeleteDebugToken to revoke it. For security reasons, this + field will never be populated in any response. + type: string + updateTime: + description: >- + Output only. Timestamp when this debug token was most recently + updated. + readOnly: true + type: string + format: google-datetime + GoogleFirebaseAppcheckV1ListDebugTokensResponse: + id: GoogleFirebaseAppcheckV1ListDebugTokensResponse + description: Response message for the ListDebugTokens method. + type: object + properties: + debugTokens: + description: The DebugTokens retrieved. + type: array + items: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1DebugToken' + nextPageToken: + description: >- + If the result list is too large to fit in a single response, then a + token is returned. If the string is empty or omitted, then this + response is the last page of results. This token can be used in a + subsequent call to ListDebugTokens to find the next group of + DebugTokens. Page tokens are short-lived and should not be + persisted. + type: string + GoogleProtobufEmpty: + id: GoogleProtobufEmpty + description: >- + A generic empty message that you can re-use to avoid defining duplicated + empty messages in your APIs. A typical example is to use it as the + request or the response type of an API method. For instance: service Foo + { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } + type: object + properties: {} + GoogleFirebaseAppcheckV1Service: + id: GoogleFirebaseAppcheckV1Service + description: >- + The enforcement configuration for a Firebase service supported by App + Check. + type: object + properties: + name: + description: >- + Required. The relative resource name of the service configuration + object, in the format: ``` + projects/{project_number}/services/{service_id} ``` Note that the + `service_id` element must be a supported service ID. Currently, the + following service IDs are supported: * + `firebasestorage.googleapis.com` (Cloud Storage for Firebase) * + `firebasedatabase.googleapis.com` (Firebase Realtime Database) * + `firestore.googleapis.com` (Cloud Firestore) * + `oauth2.googleapis.com` (Google Identity for iOS) + type: string + enforcementMode: + description: Required. The App Check enforcement mode for this service. + type: string + enumDescriptions: + - >- + Firebase App Check is not enforced for the service, nor are App + Check metrics collected. Though the service is not protected by + App Check in this mode, other applicable protections, such as user + authorization, are still enforced. An unconfigured service is in + this mode by default. + - >- + Firebase App Check is not enforced for the service. App Check + metrics are collected to help you decide when to turn on + enforcement for the service. Though the service is not protected + by App Check in this mode, other applicable protections, such as + user authorization, are still enforced. Some services require + certain conditions to be met before they will work with App Check, + such as requiring you to upgrade to a specific service tier. Until + those requirements are met for a service, this `UNENFORCED` + setting will have no effect and App Check will not work with that + service. + - >- + Firebase App Check is enforced for the service. The service will + reject any request that attempts to access your project's + resources if it does not have valid App Check token attached, with + some exceptions depending on the service; for example, some + services will still allow requests bearing the developer's + privileged service account credentials without an App Check token. + App Check metrics continue to be collected to help you detect + issues with your App Check integration and monitor the composition + of your callers. While the service is protected by App Check, + other applicable protections, such as user authorization, continue + to be enforced at the same time. Use caution when choosing to + enforce App Check on a Firebase service. If your users have not + updated to an App Check capable version of your app, their apps + will no longer be able to use your Firebase services that are + enforcing App Check. App Check metrics can help you decide whether + to enforce App Check on your Firebase services. If your app has + not launched yet, you should enable enforcement immediately, since + there are no outdated clients in use. Some services require + certain conditions to be met before they will work with App Check, + such as requiring you to upgrade to a specific service tier. Until + those requirements are met for a service, this `ENFORCED` setting + will have no effect and App Check will not work with that service. + enum: + - 'OFF' + - UNENFORCED + - ENFORCED + GoogleFirebaseAppcheckV1ListServicesResponse: + id: GoogleFirebaseAppcheckV1ListServicesResponse + description: Response message for the ListServices method. + type: object + properties: + services: + description: The Services retrieved. + type: array + items: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1Service' + nextPageToken: + description: >- + If the result list is too large to fit in a single response, then a + token is returned. If the string is empty or omitted, then this + response is the last page of results. This token can be used in a + subsequent call to ListServices to find the next group of Services. + Page tokens are short-lived and should not be persisted. + type: string + GoogleFirebaseAppcheckV1BatchUpdateServicesRequest: + id: GoogleFirebaseAppcheckV1BatchUpdateServicesRequest + description: Request message for the BatchUpdateServices method. + type: object + properties: + updateMask: + description: >- + Optional. A comma-separated list of names of fields in the Services + to update. Example: `display_name`. If the `update_mask` field is + set in both this request and any of the UpdateServiceRequest + messages, they must match or the entire batch fails and no updates + will be committed. + type: string + format: google-fieldmask + requests: + description: >- + Required. The request messages specifying the Services to update. A + maximum of 100 objects can be updated in a batch. + type: array + items: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1UpdateServiceRequest' + GoogleFirebaseAppcheckV1UpdateServiceRequest: + id: GoogleFirebaseAppcheckV1UpdateServiceRequest + description: >- + Request message for the UpdateService method as well as an individual + update message for the BatchUpdateServices method. + type: object + properties: + service: + description: >- + Required. The Service to update. The Service's `name` field is used + to identify the Service to be updated, in the format: ``` + projects/{project_number}/services/{service_id} ``` Note that the + `service_id` element must be a supported service ID. Currently, the + following service IDs are supported: * + `firebasestorage.googleapis.com` (Cloud Storage for Firebase) * + `firebasedatabase.googleapis.com` (Firebase Realtime Database) * + `firestore.googleapis.com` (Cloud Firestore) * + `oauth2.googleapis.com` (Google Identity for iOS) + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1Service' + updateMask: + description: >- + Required. A comma-separated list of names of fields in the Service + to update. Example: `enforcement_mode`. + type: string + format: google-fieldmask + GoogleFirebaseAppcheckV1BatchUpdateServicesResponse: + id: GoogleFirebaseAppcheckV1BatchUpdateServicesResponse + description: Response message for the BatchUpdateServices method. + type: object + properties: + services: + description: Service objects after the updates have been applied. + type: array + items: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1Service' + GoogleFirebaseAppcheckV1ResourcePolicy: + id: GoogleFirebaseAppcheckV1ResourcePolicy + description: >- + App Check enforcement policy for a specific resource of a Google service + supported by App Check. Note that this policy will override the + service-level configuration. + type: object + properties: + name: + description: >- + Required. Identifier. The relative name of the resource policy + object, in the format: ``` + projects/{project_number}/services/{service_id}/resourcePolicies/{resource_policy_id} + ``` Note that the `service_id` element must be a supported service + ID. Currently, the following service IDs are supported: * + `oauth2.googleapis.com` (Google Identity for iOS) + `resource_policy_id` is a system-generated UID. + type: string + targetResource: + description: >- + Required. Service specific name of the resource object to which this + policy applies, in the format: * **iOS OAuth clients** (Google + Identity for iOS): + `//oauth2.googleapis.com/projects/{project_number}/oauthClients/{oauth_client_id}` + Note that the resource must belong to the service specified in the + `name` and be from the same project as this policy, but the resource + is allowed to be missing at the time of creation of this policy; in + that case, we make a best-effort attempt at respecting this policy, + but it may not have any effect until the resource is fully created. + type: string + enforcementMode: + description: >- + Required. The App Check enforcement mode for this resource. This + will override the EnforcementMode setting on the service. + type: string + enumDescriptions: + - >- + Firebase App Check is not enforced for the service, nor are App + Check metrics collected. Though the service is not protected by + App Check in this mode, other applicable protections, such as user + authorization, are still enforced. An unconfigured service is in + this mode by default. + - >- + Firebase App Check is not enforced for the service. App Check + metrics are collected to help you decide when to turn on + enforcement for the service. Though the service is not protected + by App Check in this mode, other applicable protections, such as + user authorization, are still enforced. Some services require + certain conditions to be met before they will work with App Check, + such as requiring you to upgrade to a specific service tier. Until + those requirements are met for a service, this `UNENFORCED` + setting will have no effect and App Check will not work with that + service. + - >- + Firebase App Check is enforced for the service. The service will + reject any request that attempts to access your project's + resources if it does not have valid App Check token attached, with + some exceptions depending on the service; for example, some + services will still allow requests bearing the developer's + privileged service account credentials without an App Check token. + App Check metrics continue to be collected to help you detect + issues with your App Check integration and monitor the composition + of your callers. While the service is protected by App Check, + other applicable protections, such as user authorization, continue + to be enforced at the same time. Use caution when choosing to + enforce App Check on a Firebase service. If your users have not + updated to an App Check capable version of your app, their apps + will no longer be able to use your Firebase services that are + enforcing App Check. App Check metrics can help you decide whether + to enforce App Check on your Firebase services. If your app has + not launched yet, you should enable enforcement immediately, since + there are no outdated clients in use. Some services require + certain conditions to be met before they will work with App Check, + such as requiring you to upgrade to a specific service tier. Until + those requirements are met for a service, this `ENFORCED` setting + will have no effect and App Check will not work with that service. + enum: + - 'OFF' + - UNENFORCED + - ENFORCED + etag: + description: >- + This checksum is computed by the server based on the value of other + fields, and may be sent on update and delete requests to ensure the + client has an up-to-date value before proceeding. This etag is + strongly validated as defined by RFC 7232. + type: string + updateTime: + description: >- + Output only. Timestamp when this resource policy configuration + object was most recently updated. + readOnly: true + type: string + format: google-datetime + GoogleFirebaseAppcheckV1ListResourcePoliciesResponse: + id: GoogleFirebaseAppcheckV1ListResourcePoliciesResponse + description: Response message for the ListResourcePolicies method. + type: object + properties: + resourcePolicies: + description: The ResourcePolicy objects retrieved. + type: array + items: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1ResourcePolicy' + nextPageToken: + description: >- + If the result list is too large to fit in a single response, then a + token is returned. If the string is empty or omitted, then this + response is the last page of results. This token can be used in a + subsequent call to ListResourcePolicies to find the next group of + ResourcePolicy objects. Page tokens are short-lived and should not + be persisted. + type: string + GoogleFirebaseAppcheckV1BatchUpdateResourcePoliciesRequest: + id: GoogleFirebaseAppcheckV1BatchUpdateResourcePoliciesRequest + description: Request message for the BatchUpdateResourcePolicies method. + type: object + properties: + updateMask: + description: >- + Optional. A comma-separated list of names of fields in the + ResourcePolicy objects to update. Example: `enforcement_mode`. If + this field is present, the `update_mask` field in the + UpdateResourcePolicyRequest messages must all match this field, or + the entire batch fails and no updates will be committed. + type: string + format: google-fieldmask + requests: + description: >- + Required. The request messages specifying the ResourcePolicy objects + to update. A maximum of 100 objects can be updated in a batch. + type: array + items: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1UpdateResourcePolicyRequest + GoogleFirebaseAppcheckV1UpdateResourcePolicyRequest: + id: GoogleFirebaseAppcheckV1UpdateResourcePolicyRequest + description: >- + Request message for the UpdateResourcePolicy method as well as an + individual update message for the BatchUpdateResourcePolicies method. + type: object + properties: + resourcePolicy: + description: >- + Required. The ResourcePolicy to update. The ResourcePolicy's `name` + field is used to identify the ResourcePolicy to be updated, in the + format: ``` + projects/{project_number}/services/{service_id}/resourcePolicies/{resource_policy_id} + ``` Note that the `service_id` element must be a supported service + ID. Currently, the following service IDs are supported: * + `oauth2.googleapis.com` (Google Identity for iOS) + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1ResourcePolicy' + updateMask: + description: >- + Required. A comma-separated list of names of fields in the + ResourcePolicy to update. Example: `enforcement_mode`. + type: string + format: google-fieldmask + GoogleFirebaseAppcheckV1BatchUpdateResourcePoliciesResponse: + id: GoogleFirebaseAppcheckV1BatchUpdateResourcePoliciesResponse + description: Response message for the BatchUpdateResourcePolicies method. + type: object + properties: + resourcePolicies: + description: ResourcePolicy objects after the updates have been applied. + type: array + items: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1ResourcePolicy' + GoogleFirebaseAppcheckV1PublicJwkSet: + id: GoogleFirebaseAppcheckV1PublicJwkSet + description: >- + The currently active set of public keys that can be used to verify App + Check tokens. This object is a JWK set as specified by [section 5 of RFC + 7517](https://tools.ietf.org/html/rfc7517#section-5). For security, the + response **must not** be cached for longer than six hours. + type: object + properties: + keys: + description: >- + The set of public keys. See [section 5.1 of RFC + 7517](https://tools.ietf.org/html/rfc7517#section-5). + type: array + items: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1PublicJwk' + GoogleFirebaseAppcheckV1PublicJwk: + id: GoogleFirebaseAppcheckV1PublicJwk + description: >- + A JWK as specified by [section 4 of RFC + 7517](https://tools.ietf.org/html/rfc7517#section-4) and [section 6.3.1 + of RFC 7518](https://tools.ietf.org/html/rfc7518#section-6.3.1). + type: object + properties: + kty: + description: >- + See [section 4.1 of RFC + 7517](https://tools.ietf.org/html/rfc7517#section-4.1). + type: string + use: + description: >- + See [section 4.2 of RFC + 7517](https://tools.ietf.org/html/rfc7517#section-4.2). + type: string + alg: + description: >- + See [section 4.4 of RFC + 7517](https://tools.ietf.org/html/rfc7517#section-4.4). + type: string + kid: + description: >- + See [section 4.5 of RFC + 7517](https://tools.ietf.org/html/rfc7517#section-4.5). + type: string + 'n': + description: >- + See [section 6.3.1.1 of RFC + 7518](https://tools.ietf.org/html/rfc7518#section-6.3.1.1). + type: string + e: + description: >- + See [section 6.3.1.2 of RFC + 7518](https://tools.ietf.org/html/rfc7518#section-6.3.1.2). + type: string + GoogleFirebaseAppcheckV1ExchangeSafetyNetTokenRequest: + id: GoogleFirebaseAppcheckV1ExchangeSafetyNetTokenRequest + deprecated: true + description: Request message for the ExchangeSafetyNetToken method. + type: object + properties: + safetyNetToken: + description: >- + Required. The [SafetyNet attestation + response](https://developer.android.com/training/safetynet/attestation#request-attestation-step) + issued to your app. + type: string + GoogleFirebaseAppcheckV1AppCheckToken: + id: GoogleFirebaseAppcheckV1AppCheckToken + description: >- + Encapsulates an *App Check token*, which are used to access backend + services protected by App Check. + type: object + properties: + token: + description: >- + The App Check token. App Check tokens are signed + [JWTs](https://tools.ietf.org/html/rfc7519) containing claims that + identify the attested app and GCP project. This token is used to + access Google services protected by App Check. These tokens can also + be [verified by your own custom + backends](https://firebase.google.com/docs/app-check/custom-resource-backend) + using the Firebase Admin SDK or third-party libraries. + type: string + ttl: + description: >- + The duration from the time this token is minted until its + expiration. This field is intended to ease client-side token + management, since the client may have clock skew, but is still able + to accurately measure a duration. + type: string + format: google-duration + GoogleFirebaseAppcheckV1GeneratePlayIntegrityChallengeRequest: + id: GoogleFirebaseAppcheckV1GeneratePlayIntegrityChallengeRequest + description: Request message for the GeneratePlayIntegrityChallenge method. + type: object + properties: {} + GoogleFirebaseAppcheckV1GeneratePlayIntegrityChallengeResponse: + id: GoogleFirebaseAppcheckV1GeneratePlayIntegrityChallengeResponse + description: Response message for the GeneratePlayIntegrityChallenge method. + type: object + properties: + challenge: + description: >- + A one-time use + [challenge](https://developer.android.com/google/play/integrity/verdict#protect-against-replay-attacks) + for the client to pass to the Play Integrity API. + type: string + ttl: + description: >- + The duration from the time this challenge is minted until its + expiration. This field is intended to ease client-side token + management, since the client may have clock skew, but is still able + to accurately measure a duration. + type: string + format: google-duration + GoogleFirebaseAppcheckV1ExchangePlayIntegrityTokenRequest: + id: GoogleFirebaseAppcheckV1ExchangePlayIntegrityTokenRequest + description: Request message for the ExchangePlayIntegrityToken method. + type: object + properties: + playIntegrityToken: + description: >- + Required. The [integrity verdict response token from Play + Integrity](https://developer.android.com/google/play/integrity/verdict#decrypt-verify) + issued to your app. + type: string + limitedUse: + description: >- + Specifies whether this attestation is for use in a *limited use* + (`true`) or *session based* (`false`) context. To enable this + attestation to be used with the *replay protection* feature, set + this to `true`. The default value is `false`. + type: boolean + GoogleFirebaseAppcheckV1ExchangeDeviceCheckTokenRequest: + id: GoogleFirebaseAppcheckV1ExchangeDeviceCheckTokenRequest + description: Request message for the ExchangeDeviceCheckToken method. + type: object + properties: + deviceToken: + description: >- + Required. The `device_token` as returned by Apple's client-side + [DeviceCheck + API](https://developer.apple.com/documentation/devicecheck/dcdevice). + This is the base64 encoded `Data` (Swift) or `NSData` (ObjC) object. + type: string + limitedUse: + description: >- + Specifies whether this attestation is for use in a *limited use* + (`true`) or *session based* (`false`) context. To enable this + attestation to be used with the *replay protection* feature, set + this to `true`. The default value is `false`. + type: boolean + GoogleFirebaseAppcheckV1ExchangeRecaptchaV3TokenRequest: + id: GoogleFirebaseAppcheckV1ExchangeRecaptchaV3TokenRequest + description: Request message for the ExchangeRecaptchaV3Token method. + type: object + properties: + recaptchaV3Token: + description: >- + Required. The reCAPTCHA token as returned by the [reCAPTCHA v3 + JavaScript API](https://developers.google.com/recaptcha/docs/v3). + type: string + limitedUse: + description: >- + Specifies whether this attestation is for use in a *limited use* + (`true`) or *session based* (`false`) context. To enable this + attestation to be used with the *replay protection* feature, set + this to `true`. The default value is `false`. + type: boolean + GoogleFirebaseAppcheckV1ExchangeRecaptchaEnterpriseTokenRequest: + id: GoogleFirebaseAppcheckV1ExchangeRecaptchaEnterpriseTokenRequest + description: Request message for the ExchangeRecaptchaEnterpriseToken method. + type: object + properties: + recaptchaEnterpriseToken: + description: >- + Required. The reCAPTCHA token as returned by the [reCAPTCHA + Enterprise JavaScript + API](https://cloud.google.com/recaptcha-enterprise/docs/instrument-web-pages). + type: string + limitedUse: + description: >- + Specifies whether this attestation is for use in a *limited use* + (`true`) or *session based* (`false`) context. To enable this + attestation to be used with the *replay protection* feature, set + this to `true`. The default value is `false`. + type: boolean + GoogleFirebaseAppcheckV1ExchangeCustomTokenRequest: + id: GoogleFirebaseAppcheckV1ExchangeCustomTokenRequest + description: Request message for the ExchangeCustomToken method. + type: object + properties: + customToken: + description: >- + Required. A custom token signed using your project's Admin SDK + service account credentials. + type: string + limitedUse: + description: >- + Specifies whether this attestation is for use in a *limited use* + (`true`) or *session based* (`false`) context. To enable this + attestation to be used with the *replay protection* feature, set + this to `true`. The default value is `false`. + type: boolean + GoogleFirebaseAppcheckV1ExchangeDebugTokenRequest: + id: GoogleFirebaseAppcheckV1ExchangeDebugTokenRequest + description: Request message for the ExchangeDebugToken method. + type: object + properties: + debugToken: + description: >- + Required. A debug token secret. This string must match a debug token + secret previously created using CreateDebugToken. + type: string + limitedUse: + description: >- + Specifies whether this attestation is for use in a *limited use* + (`true`) or *session based* (`false`) context. To enable this + attestation to be used with the *replay protection* feature, set + this to `true`. The default value is `false`. + type: boolean + GoogleFirebaseAppcheckV1GenerateAppAttestChallengeRequest: + id: GoogleFirebaseAppcheckV1GenerateAppAttestChallengeRequest + description: Request message for the GenerateAppAttestChallenge method. + type: object + properties: {} + GoogleFirebaseAppcheckV1GenerateAppAttestChallengeResponse: + id: GoogleFirebaseAppcheckV1GenerateAppAttestChallengeResponse + description: Response message for the GenerateAppAttestChallenge method. + type: object + properties: + challenge: + description: >- + A one-time use challenge for the client to pass to the App Attest + API. + type: string + format: byte + ttl: + description: >- + The duration from the time this challenge is minted until its + expiration. This field is intended to ease client-side token + management, since the client may have clock skew, but is still able + to accurately measure a duration. + type: string + format: google-duration + GoogleFirebaseAppcheckV1ExchangeAppAttestAttestationRequest: + id: GoogleFirebaseAppcheckV1ExchangeAppAttestAttestationRequest + description: Request message for the ExchangeAppAttestAttestation method. + type: object + properties: + attestationStatement: + description: >- + Required. The App Attest statement returned by the client-side App + Attest API. This is a base64url encoded CBOR object in the JSON + response. + type: string + format: byte + challenge: + description: >- + Required. A one-time challenge returned by an immediately prior call + to GenerateAppAttestChallenge. + type: string + format: byte + keyId: + description: Required. The key ID generated by App Attest for the client app. + type: string + format: byte + limitedUse: + description: >- + Specifies whether this attestation is for use in a *limited use* + (`true`) or *session based* (`false`) context. To enable this + attestation to be used with the *replay protection* feature, set + this to `true`. The default value is `false`. + type: boolean + GoogleFirebaseAppcheckV1ExchangeAppAttestAttestationResponse: + id: GoogleFirebaseAppcheckV1ExchangeAppAttestAttestationResponse + description: Response message for the ExchangeAppAttestAttestation method. + type: object + properties: + artifact: + description: >- + An artifact that can be used in future calls to + ExchangeAppAttestAssertion. + type: string + format: byte + appCheckToken: + description: Encapsulates an App Check token. + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1AppCheckToken' + GoogleFirebaseAppcheckV1ExchangeAppAttestAssertionRequest: + id: GoogleFirebaseAppcheckV1ExchangeAppAttestAssertionRequest + description: Request message for the ExchangeAppAttestAssertion method. + type: object + properties: + artifact: + description: >- + Required. The artifact returned by a previous call to + ExchangeAppAttestAttestation. + type: string + format: byte + assertion: + description: >- + Required. The CBOR-encoded assertion returned by the client-side App + Attest API. + type: string + format: byte + challenge: + description: >- + Required. A one-time challenge returned by an immediately prior call + to GenerateAppAttestChallenge. + type: string + format: byte + limitedUse: + description: >- + Specifies whether this attestation is for use in a *limited use* + (`true`) or *session based* (`false`) context. To enable this + attestation to be used with the *replay protection* feature, set + this to `true`. The default value is `false`. + type: boolean + parameters: + access_token: + description: OAuth access token. + in: query + name: access_token + schema: + type: string + alt: + description: Data format for response. + in: query + name: alt + schema: + type: string + enum: + - json + - media + - proto + callback: + description: JSONP + in: query + name: callback + schema: + type: string + fields: + description: Selector specifying which fields to include in a partial response. + in: query + name: fields + schema: + type: string + key: + description: >- + API key. Your API key identifies your project and provides you with API + access, quota, and reports. Required unless you provide an OAuth 2.0 + token. + in: query + name: key + schema: + type: string + oauth_token: + description: OAuth 2.0 token for the current user. + in: query + name: oauth_token + schema: + type: string + prettyPrint: + description: Returns response with indentations and line breaks. + in: query + name: prettyPrint + schema: + type: boolean + quotaUser: + description: >- + Available to use for quota purposes for server-side applications. Can be + any arbitrary string assigned to a user, but should not exceed 40 + characters. + in: query + name: quotaUser + schema: + type: string + upload_protocol: + description: Upload protocol for media (e.g. "raw", "multipart"). + in: query + name: upload_protocol + schema: + type: string + uploadType: + description: Legacy upload protocol for media (e.g. "media", "multipart"). + in: query + name: uploadType + schema: + type: string + _.xgafv: + description: V1 error format. + in: query + name: $.xgafv + schema: + type: string + enum: + - '1' + - '2' + x-stackQL-resources: + services: + id: firebase.appcheck.services + name: services + title: Services + methods: + get: + operation: + $ref: '#/paths/~1v1~1projects~1{projectsId}~1services~1{servicesId}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + patch: + operation: + $ref: '#/paths/~1v1~1projects~1{projectsId}~1services~1{servicesId}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + list: + operation: + $ref: '#/paths/~1v1~1projects~1{projectsId}~1services/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.services + batch_update: + operation: + $ref: '#/paths/~1v1~1projects~1{projectsId}~1services:batchUpdate/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/services/methods/get' + - $ref: '#/components/x-stackQL-resources/services/methods/list' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/services/methods/patch' + - $ref: '#/components/x-stackQL-resources/services/methods/batch_update' + replace: [] + delete: [] + resource_policies: + id: firebase.appcheck.resource_policies + name: resource_policies + title: Resource_policies + methods: + get: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1services~1{servicesId}~1resourcePolicies~1{resourcePoliciesId}/get + response: + mediaType: application/json + openAPIDocKey: '200' + patch: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1services~1{servicesId}~1resourcePolicies~1{resourcePoliciesId}/patch + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1services~1{servicesId}~1resourcePolicies~1{resourcePoliciesId}/delete + response: + mediaType: application/json + openAPIDocKey: '200' + list: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1services~1{servicesId}~1resourcePolicies/get + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.resourcePolicies + create: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1services~1{servicesId}~1resourcePolicies/post + response: + mediaType: application/json + openAPIDocKey: '200' + batch_update: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1services~1{servicesId}~1resourcePolicies:batchUpdate/post + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/resource_policies/methods/get' + - $ref: '#/components/x-stackQL-resources/resource_policies/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/resource_policies/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/resource_policies/methods/patch' + - $ref: >- + #/components/x-stackQL-resources/resource_policies/methods/batch_update + replace: [] + delete: + - $ref: '#/components/x-stackQL-resources/resource_policies/methods/delete' + apps: + id: firebase.appcheck.apps + name: apps + title: Apps + methods: + exchange_safety_net_token: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}:exchangeSafetyNetToken/post + response: + mediaType: application/json + openAPIDocKey: '200' + generate_play_integrity_challenge: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}:generatePlayIntegrityChallenge/post + response: + mediaType: application/json + openAPIDocKey: '200' + exchange_play_integrity_token: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}:exchangePlayIntegrityToken/post + response: + mediaType: application/json + openAPIDocKey: '200' + exchange_device_check_token: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}:exchangeDeviceCheckToken/post + response: + mediaType: application/json + openAPIDocKey: '200' + exchange_recaptcha_v3_token: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}:exchangeRecaptchaV3Token/post + response: + mediaType: application/json + openAPIDocKey: '200' + exchange_recaptcha_enterprise_token: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}:exchangeRecaptchaEnterpriseToken/post + response: + mediaType: application/json + openAPIDocKey: '200' + exchange_custom_token: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}:exchangeCustomToken/post + response: + mediaType: application/json + openAPIDocKey: '200' + exchange_debug_token: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}:exchangeDebugToken/post + response: + mediaType: application/json + openAPIDocKey: '200' + generate_app_attest_challenge: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}:generateAppAttestChallenge/post + response: + mediaType: application/json + openAPIDocKey: '200' + exchange_app_attest_attestation: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}:exchangeAppAttestAttestation/post + response: + mediaType: application/json + openAPIDocKey: '200' + exchange_app_attest_assertion: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}:exchangeAppAttestAssertion/post + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: [] + insert: [] + update: [] + replace: [] + delete: [] + app_attest_config: + id: firebase.appcheck.app_attest_config + name: app_attest_config + title: App_attest_config + methods: + get: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1appAttestConfig/get + response: + mediaType: application/json + openAPIDocKey: '200' + patch: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1appAttestConfig/patch + response: + mediaType: application/json + openAPIDocKey: '200' + batch_get: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1-~1appAttestConfig:batchGet/get + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/app_attest_config/methods/get' + - $ref: >- + #/components/x-stackQL-resources/app_attest_config/methods/batch_get + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/app_attest_config/methods/patch' + replace: [] + delete: [] + device_check_config: + id: firebase.appcheck.device_check_config + name: device_check_config + title: Device_check_config + methods: + get: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1deviceCheckConfig/get + response: + mediaType: application/json + openAPIDocKey: '200' + patch: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1deviceCheckConfig/patch + response: + mediaType: application/json + openAPIDocKey: '200' + batch_get: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1-~1deviceCheckConfig:batchGet/get + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/device_check_config/methods/get' + - $ref: >- + #/components/x-stackQL-resources/device_check_config/methods/batch_get + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/device_check_config/methods/patch' + replace: [] + delete: [] + recaptcha_v3_config: + id: firebase.appcheck.recaptcha_v3_config + name: recaptcha_v3_config + title: Recaptcha_v3_config + methods: + get: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1recaptchaV3Config/get + response: + mediaType: application/json + openAPIDocKey: '200' + patch: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1recaptchaV3Config/patch + response: + mediaType: application/json + openAPIDocKey: '200' + batch_get: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1-~1recaptchaV3Config:batchGet/get + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/recaptcha_v3_config/methods/get' + - $ref: >- + #/components/x-stackQL-resources/recaptcha_v3_config/methods/batch_get + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/recaptcha_v3_config/methods/patch' + replace: [] + delete: [] + recaptcha_enterprise_config: + id: firebase.appcheck.recaptcha_enterprise_config + name: recaptcha_enterprise_config + title: Recaptcha_enterprise_config + methods: + get: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1recaptchaEnterpriseConfig/get + response: + mediaType: application/json + openAPIDocKey: '200' + patch: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1recaptchaEnterpriseConfig/patch + response: + mediaType: application/json + openAPIDocKey: '200' + batch_get: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1-~1recaptchaEnterpriseConfig:batchGet/get + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: >- + #/components/x-stackQL-resources/recaptcha_enterprise_config/methods/get + - $ref: >- + #/components/x-stackQL-resources/recaptcha_enterprise_config/methods/batch_get + insert: [] + update: + - $ref: >- + #/components/x-stackQL-resources/recaptcha_enterprise_config/methods/patch + replace: [] + delete: [] + safety_net_config: + id: firebase.appcheck.safety_net_config + name: safety_net_config + title: Safety_net_config + methods: + get: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1safetyNetConfig/get + response: + mediaType: application/json + openAPIDocKey: '200' + patch: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1safetyNetConfig/patch + response: + mediaType: application/json + openAPIDocKey: '200' + batch_get: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1-~1safetyNetConfig:batchGet/get + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/safety_net_config/methods/get' + - $ref: >- + #/components/x-stackQL-resources/safety_net_config/methods/batch_get + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/safety_net_config/methods/patch' + replace: [] + delete: [] + play_integrity_config: + id: firebase.appcheck.play_integrity_config + name: play_integrity_config + title: Play_integrity_config + methods: + get: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1playIntegrityConfig/get + response: + mediaType: application/json + openAPIDocKey: '200' + patch: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1playIntegrityConfig/patch + response: + mediaType: application/json + openAPIDocKey: '200' + batch_get: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1-~1playIntegrityConfig:batchGet/get + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/play_integrity_config/methods/get' + - $ref: >- + #/components/x-stackQL-resources/play_integrity_config/methods/batch_get + insert: [] + update: + - $ref: >- + #/components/x-stackQL-resources/play_integrity_config/methods/patch + replace: [] + delete: [] + debug_tokens: + id: firebase.appcheck.debug_tokens + name: debug_tokens + title: Debug_tokens + methods: + get: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1debugTokens~1{debugTokensId}/get + response: + mediaType: application/json + openAPIDocKey: '200' + patch: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1debugTokens~1{debugTokensId}/patch + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1debugTokens~1{debugTokensId}/delete + response: + mediaType: application/json + openAPIDocKey: '200' + list: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1debugTokens/get + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.debugTokens + create: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1debugTokens/post + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/debug_tokens/methods/get' + - $ref: '#/components/x-stackQL-resources/debug_tokens/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/debug_tokens/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/debug_tokens/methods/patch' + replace: [] + delete: + - $ref: '#/components/x-stackQL-resources/debug_tokens/methods/delete' + jwks: + id: firebase.appcheck.jwks + name: jwks + title: Jwks + methods: + get: + operation: + $ref: '#/paths/~1v1~1jwks/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/jwks/methods/get' + insert: [] + update: [] + replace: [] + delete: [] + oauth_clients: + id: firebase.appcheck.oauth_clients + name: oauth_clients + title: Oauth_clients + methods: + exchange_debug_token: + operation: + $ref: >- + #/paths/~1v1~1oauthClients~1{oauthClientsId}:exchangeDebugToken/post + response: + mediaType: application/json + openAPIDocKey: '200' + generate_app_attest_challenge: + operation: + $ref: >- + #/paths/~1v1~1oauthClients~1{oauthClientsId}:generateAppAttestChallenge/post + response: + mediaType: application/json + openAPIDocKey: '200' + exchange_app_attest_attestation: + operation: + $ref: >- + #/paths/~1v1~1oauthClients~1{oauthClientsId}:exchangeAppAttestAttestation/post + response: + mediaType: application/json + openAPIDocKey: '200' + exchange_app_attest_assertion: + operation: + $ref: >- + #/paths/~1v1~1oauthClients~1{oauthClientsId}:exchangeAppAttestAssertion/post + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: [] + insert: [] + update: [] + replace: [] + delete: [] +paths: + /v1/projects/{projectsId}/services/{servicesId}: + parameters: &ref_1 + - $ref: '#/components/parameters/access_token' + - $ref: '#/components/parameters/alt' + - $ref: '#/components/parameters/callback' + - $ref: '#/components/parameters/fields' + - $ref: '#/components/parameters/key' + - $ref: '#/components/parameters/oauth_token' + - $ref: '#/components/parameters/prettyPrint' + - $ref: '#/components/parameters/quotaUser' + - $ref: '#/components/parameters/upload_protocol' + - $ref: '#/components/parameters/uploadType' + - $ref: '#/components/parameters/_.xgafv' + get: + description: Gets the Service configuration for the specified service name. + operationId: firebaseappcheck.projects.services.get + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1Service' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: servicesId + required: true + schema: + type: string + patch: + description: Updates the specified Service configuration. + operationId: firebaseappcheck.projects.services.patch + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1Service' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1Service' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: servicesId + required: true + schema: + type: string + - in: query + name: updateMask + schema: + type: string + format: google-fieldmask + /v1/projects/{projectsId}/services: + parameters: *ref_1 + get: + description: >- + Lists all Service configurations for the specified project. Only + Services which were explicitly configured using UpdateService or + BatchUpdateServices will be returned. + operationId: firebaseappcheck.projects.services.list + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1ListServicesResponse + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: query + name: pageSize + schema: + type: integer + format: int32 + - in: query + name: pageToken + schema: + type: string + /v1/projects/{projectsId}/services:batchUpdate: + parameters: *ref_1 + post: + description: Atomically updates the specified Service configurations. + operationId: firebaseappcheck.projects.services.batchUpdate + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1BatchUpdateServicesRequest + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1BatchUpdateServicesResponse + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + /v1/projects/{projectsId}/services/{servicesId}/resourcePolicies/{resourcePoliciesId}: + parameters: *ref_1 + get: + description: Gets the requested ResourcePolicy configuration. + operationId: firebaseappcheck.projects.services.resourcePolicies.get + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1ResourcePolicy' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: servicesId + required: true + schema: + type: string + - in: path + name: resourcePoliciesId + required: true + schema: + type: string + patch: + description: Updates the specified ResourcePolicy configuration. + operationId: firebaseappcheck.projects.services.resourcePolicies.patch + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1ResourcePolicy' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1ResourcePolicy' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: servicesId + required: true + schema: + type: string + - in: path + name: resourcePoliciesId + required: true + schema: + type: string + - in: query + name: updateMask + schema: + type: string + format: google-fieldmask + delete: + description: Deletes the specified ResourcePolicy configuration. + operationId: firebaseappcheck.projects.services.resourcePolicies.delete + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleProtobufEmpty' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: servicesId + required: true + schema: + type: string + - in: path + name: resourcePoliciesId + required: true + schema: + type: string + - in: query + name: etag + schema: + type: string + /v1/projects/{projectsId}/services/{servicesId}/resourcePolicies: + parameters: *ref_1 + get: + description: >- + Lists all ResourcePolicy configurations for the specified project and + service. + operationId: firebaseappcheck.projects.services.resourcePolicies.list + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1ListResourcePoliciesResponse + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: servicesId + required: true + schema: + type: string + - in: query + name: pageSize + schema: + type: integer + format: int32 + - in: query + name: pageToken + schema: + type: string + - in: query + name: filter + schema: + type: string + post: + description: Creates the specified ResourcePolicy configuration. + operationId: firebaseappcheck.projects.services.resourcePolicies.create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1ResourcePolicy' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1ResourcePolicy' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: servicesId + required: true + schema: + type: string + /v1/projects/{projectsId}/services/{servicesId}/resourcePolicies:batchUpdate: + parameters: *ref_1 + post: + description: Atomically updates the specified ResourcePolicy configurations. + operationId: firebaseappcheck.projects.services.resourcePolicies.batchUpdate + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1BatchUpdateResourcePoliciesRequest + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1BatchUpdateResourcePoliciesResponse + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: servicesId + required: true + schema: + type: string + /v1/projects/{projectsId}/apps/{appsId}:exchangeSafetyNetToken: + parameters: *ref_1 + post: + description: >- + Validates a [SafetyNet + token](https://developer.android.com/training/safetynet/attestation#request-attestation-step). + If valid, returns an AppCheckToken. + operationId: firebaseappcheck.projects.apps.exchangeSafetyNetToken + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1ExchangeSafetyNetTokenRequest + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1AppCheckToken' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + /v1/projects/{projectsId}/apps/{appsId}:generatePlayIntegrityChallenge: + parameters: *ref_1 + post: + description: >- + Generates a challenge that protects the integrity of an immediately + following integrity verdict request to the Play Integrity API. The next + call to ExchangePlayIntegrityToken using the resulting integrity token + will verify the presence and validity of the challenge. A challenge + should not be reused for multiple calls. + operationId: firebaseappcheck.projects.apps.generatePlayIntegrityChallenge + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1GeneratePlayIntegrityChallengeRequest + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1GeneratePlayIntegrityChallengeResponse + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + /v1/projects/{projectsId}/apps/{appsId}:exchangePlayIntegrityToken: + parameters: *ref_1 + post: + description: >- + Validates an [integrity verdict response token from Play + Integrity](https://developer.android.com/google/play/integrity/verdict#decrypt-verify). + If valid, returns an AppCheckToken. + operationId: firebaseappcheck.projects.apps.exchangePlayIntegrityToken + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1ExchangePlayIntegrityTokenRequest + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1AppCheckToken' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + /v1/projects/{projectsId}/apps/{appsId}:exchangeDeviceCheckToken: + parameters: *ref_1 + post: + description: >- + Accepts a + [`device_token`](https://developer.apple.com/documentation/devicecheck/dcdevice) + issued by DeviceCheck, and attempts to validate it with Apple. If valid, + returns an AppCheckToken. + operationId: firebaseappcheck.projects.apps.exchangeDeviceCheckToken + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1ExchangeDeviceCheckTokenRequest + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1AppCheckToken' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + /v1/projects/{projectsId}/apps/{appsId}:exchangeRecaptchaV3Token: + parameters: *ref_1 + post: + description: >- + Validates a [reCAPTCHA v3 response + token](https://developers.google.com/recaptcha/docs/v3). If valid, + returns an AppCheckToken. + operationId: firebaseappcheck.projects.apps.exchangeRecaptchaV3Token + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1ExchangeRecaptchaV3TokenRequest + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1AppCheckToken' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + /v1/projects/{projectsId}/apps/{appsId}:exchangeRecaptchaEnterpriseToken: + parameters: *ref_1 + post: + description: >- + Validates a [reCAPTCHA Enterprise response + token](https://cloud.google.com/recaptcha-enterprise/docs/create-assessment#retrieve_token). + If valid, returns an AppCheckToken. + operationId: firebaseappcheck.projects.apps.exchangeRecaptchaEnterpriseToken + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1ExchangeRecaptchaEnterpriseTokenRequest + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1AppCheckToken' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + /v1/projects/{projectsId}/apps/{appsId}:exchangeCustomToken: + parameters: *ref_1 + post: + description: >- + Validates a custom token signed using your project's Admin SDK service + account credentials. If valid, returns an AppCheckToken. + operationId: firebaseappcheck.projects.apps.exchangeCustomToken + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1ExchangeCustomTokenRequest + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1AppCheckToken' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + /v1/projects/{projectsId}/apps/{appsId}:exchangeDebugToken: + parameters: *ref_1 + post: + description: >- + Validates a debug token secret that you have previously created using + CreateDebugToken. If valid, returns an AppCheckToken. Note that a + restrictive quota is enforced on this method to prevent accidental + exposure of the app to abuse. + operationId: firebaseappcheck.projects.apps.exchangeDebugToken + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1ExchangeDebugTokenRequest + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1AppCheckToken' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + /v1/projects/{projectsId}/apps/{appsId}:generateAppAttestChallenge: + parameters: *ref_1 + post: + description: >- + Generates a challenge that protects the integrity of an immediately + following call to ExchangeAppAttestAttestation or + ExchangeAppAttestAssertion. A challenge should not be reused for + multiple calls. + operationId: firebaseappcheck.projects.apps.generateAppAttestChallenge + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1GenerateAppAttestChallengeRequest + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1GenerateAppAttestChallengeResponse + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + /v1/projects/{projectsId}/apps/{appsId}:exchangeAppAttestAttestation: + parameters: *ref_1 + post: + description: >- + Accepts an App Attest CBOR attestation and verifies it with Apple using + your preconfigured team and bundle IDs. If valid, returns an attestation + artifact that can later be exchanged for an AppCheckToken using + ExchangeAppAttestAssertion. For convenience and performance, this + method's response object will also contain an AppCheckToken (if the + verification is successful). + operationId: firebaseappcheck.projects.apps.exchangeAppAttestAttestation + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1ExchangeAppAttestAttestationRequest + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1ExchangeAppAttestAttestationResponse + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + /v1/projects/{projectsId}/apps/{appsId}:exchangeAppAttestAssertion: + parameters: *ref_1 + post: + description: >- + Accepts an App Attest assertion and an artifact previously obtained from + ExchangeAppAttestAttestation and verifies those with Apple. If valid, + returns an AppCheckToken. + operationId: firebaseappcheck.projects.apps.exchangeAppAttestAssertion + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1ExchangeAppAttestAssertionRequest + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1AppCheckToken' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + /v1/projects/{projectsId}/apps/{appsId}/appAttestConfig: + parameters: *ref_1 + get: + description: Gets the AppAttestConfig for the specified app. + operationId: firebaseappcheck.projects.apps.appAttestConfig.get + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1AppAttestConfig' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + patch: + description: >- + Updates the AppAttestConfig for the specified app. While this + configuration is incomplete or invalid, the app will be unable to + exchange AppAttest tokens for App Check tokens. + operationId: firebaseappcheck.projects.apps.appAttestConfig.patch + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1AppAttestConfig' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1AppAttestConfig' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + - in: query + name: updateMask + schema: + type: string + format: google-fieldmask + /v1/projects/{projectsId}/apps/-/appAttestConfig:batchGet: + parameters: *ref_1 + get: + description: Atomically gets the AppAttestConfigs for the specified list of apps. + operationId: firebaseappcheck.projects.apps.appAttestConfig.batchGet + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1BatchGetAppAttestConfigsResponse + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: query + name: names + schema: + type: string + /v1/projects/{projectsId}/apps/{appsId}/deviceCheckConfig: + parameters: *ref_1 + get: + description: >- + Gets the DeviceCheckConfig for the specified app. For security reasons, + the `private_key` field is never populated in the response. + operationId: firebaseappcheck.projects.apps.deviceCheckConfig.get + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1DeviceCheckConfig' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + patch: + description: >- + Updates the DeviceCheckConfig for the specified app. While this + configuration is incomplete or invalid, the app will be unable to + exchange DeviceCheck tokens for App Check tokens. For security reasons, + the `private_key` field is never populated in the response. + operationId: firebaseappcheck.projects.apps.deviceCheckConfig.patch + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1DeviceCheckConfig' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1DeviceCheckConfig' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + - in: query + name: updateMask + schema: + type: string + format: google-fieldmask + /v1/projects/{projectsId}/apps/-/deviceCheckConfig:batchGet: + parameters: *ref_1 + get: + description: >- + Atomically gets the DeviceCheckConfigs for the specified list of apps. + For security reasons, the `private_key` field is never populated in the + response. + operationId: firebaseappcheck.projects.apps.deviceCheckConfig.batchGet + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1BatchGetDeviceCheckConfigsResponse + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: query + name: names + schema: + type: string + /v1/projects/{projectsId}/apps/{appsId}/recaptchaV3Config: + parameters: *ref_1 + get: + description: >- + Gets the RecaptchaV3Config for the specified app. For security reasons, + the `site_secret` field is never populated in the response. + operationId: firebaseappcheck.projects.apps.recaptchaV3Config.get + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1RecaptchaV3Config' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + patch: + description: >- + Updates the RecaptchaV3Config for the specified app. While this + configuration is incomplete or invalid, the app will be unable to + exchange reCAPTCHA V3 tokens for App Check tokens. For security reasons, + the `site_secret` field is never populated in the response. + operationId: firebaseappcheck.projects.apps.recaptchaV3Config.patch + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1RecaptchaV3Config' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1RecaptchaV3Config' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + - in: query + name: updateMask + schema: + type: string + format: google-fieldmask + /v1/projects/{projectsId}/apps/-/recaptchaV3Config:batchGet: + parameters: *ref_1 + get: + description: >- + Atomically gets the RecaptchaV3Configs for the specified list of apps. + For security reasons, the `site_secret` field is never populated in the + response. + operationId: firebaseappcheck.projects.apps.recaptchaV3Config.batchGet + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1BatchGetRecaptchaV3ConfigsResponse + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: query + name: names + schema: + type: string + /v1/projects/{projectsId}/apps/{appsId}/recaptchaEnterpriseConfig: + parameters: *ref_1 + get: + description: Gets the RecaptchaEnterpriseConfig for the specified app. + operationId: firebaseappcheck.projects.apps.recaptchaEnterpriseConfig.get + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1RecaptchaEnterpriseConfig + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + patch: + description: >- + Updates the RecaptchaEnterpriseConfig for the specified app. While this + configuration is incomplete or invalid, the app will be unable to + exchange reCAPTCHA Enterprise tokens for App Check tokens. + operationId: firebaseappcheck.projects.apps.recaptchaEnterpriseConfig.patch + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1RecaptchaEnterpriseConfig + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1RecaptchaEnterpriseConfig + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + - in: query + name: updateMask + schema: + type: string + format: google-fieldmask + /v1/projects/{projectsId}/apps/-/recaptchaEnterpriseConfig:batchGet: + parameters: *ref_1 + get: + description: >- + Atomically gets the RecaptchaEnterpriseConfigs for the specified list of + apps. + operationId: firebaseappcheck.projects.apps.recaptchaEnterpriseConfig.batchGet + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1BatchGetRecaptchaEnterpriseConfigsResponse + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: query + name: names + schema: + type: string + /v1/projects/{projectsId}/apps/{appsId}/safetyNetConfig: + parameters: *ref_1 + get: + description: Gets the SafetyNetConfig for the specified app. + operationId: firebaseappcheck.projects.apps.safetyNetConfig.get + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1SafetyNetConfig' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + patch: + description: >- + Updates the SafetyNetConfig for the specified app. While this + configuration is incomplete or invalid, the app will be unable to + exchange SafetyNet tokens for App Check tokens. + operationId: firebaseappcheck.projects.apps.safetyNetConfig.patch + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1SafetyNetConfig' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1SafetyNetConfig' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + - in: query + name: updateMask + schema: + type: string + format: google-fieldmask + /v1/projects/{projectsId}/apps/-/safetyNetConfig:batchGet: + parameters: *ref_1 + get: + description: Atomically gets the SafetyNetConfigs for the specified list of apps. + operationId: firebaseappcheck.projects.apps.safetyNetConfig.batchGet + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1BatchGetSafetyNetConfigsResponse + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: query + name: names + schema: + type: string + /v1/projects/{projectsId}/apps/{appsId}/playIntegrityConfig: + parameters: *ref_1 + get: + description: Gets the PlayIntegrityConfig for the specified app. + operationId: firebaseappcheck.projects.apps.playIntegrityConfig.get + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1PlayIntegrityConfig + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + patch: + description: >- + Updates the PlayIntegrityConfig for the specified app. While this + configuration is incomplete or invalid, the app will be unable to + exchange Play Integrity tokens for App Check tokens. + operationId: firebaseappcheck.projects.apps.playIntegrityConfig.patch + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1PlayIntegrityConfig' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1PlayIntegrityConfig + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + - in: query + name: updateMask + schema: + type: string + format: google-fieldmask + /v1/projects/{projectsId}/apps/-/playIntegrityConfig:batchGet: + parameters: *ref_1 + get: + description: Atomically gets the PlayIntegrityConfigs for the specified list of apps. + operationId: firebaseappcheck.projects.apps.playIntegrityConfig.batchGet + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1BatchGetPlayIntegrityConfigsResponse + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: query + name: names + schema: + type: string + /v1/projects/{projectsId}/apps/{appsId}/debugTokens/{debugTokensId}: + parameters: *ref_1 + get: + description: >- + Gets the specified DebugToken. For security reasons, the `token` field + is never populated in the response. + operationId: firebaseappcheck.projects.apps.debugTokens.get + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1DebugToken' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + - in: path + name: debugTokensId + required: true + schema: + type: string + patch: + description: >- + Updates the specified DebugToken. For security reasons, the `token` + field cannot be updated, nor will it be populated in the response, but + you can revoke the debug token using DeleteDebugToken. + operationId: firebaseappcheck.projects.apps.debugTokens.patch + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1DebugToken' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1DebugToken' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + - in: path + name: debugTokensId + required: true + schema: + type: string + - in: query + name: updateMask + schema: + type: string + format: google-fieldmask + delete: + description: >- + Deletes the specified DebugToken. A deleted debug token cannot be used + to exchange for an App Check token. Use this method when you suspect the + secret `token` has been compromised or when you no longer need the debug + token. + operationId: firebaseappcheck.projects.apps.debugTokens.delete + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleProtobufEmpty' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + - in: path + name: debugTokensId + required: true + schema: + type: string + /v1/projects/{projectsId}/apps/{appsId}/debugTokens: + parameters: *ref_1 + get: + description: >- + Lists all DebugTokens for the specified app. For security reasons, the + `token` field is never populated in the response. + operationId: firebaseappcheck.projects.apps.debugTokens.list + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1ListDebugTokensResponse + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + - in: query + name: pageSize + schema: + type: integer + format: int32 + - in: query + name: pageToken + schema: + type: string + post: + description: >- + Creates a new DebugToken for the specified app. For security reasons, + after the creation operation completes, the `token` field cannot be + updated or retrieved, but you can revoke the debug token using + DeleteDebugToken. Each app can have a maximum of 20 debug tokens. + operationId: firebaseappcheck.projects.apps.debugTokens.create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1DebugToken' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1DebugToken' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + /v1/jwks: + parameters: *ref_1 + get: + description: >- + Returns a public JWK set as specified by [RFC + 7517](https://tools.ietf.org/html/rfc7517) that can be used to verify + App Check tokens. Exactly one of the public keys in the returned set + will successfully validate any App Check token that is currently valid. + operationId: firebaseappcheck.jwks.get + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1PublicJwkSet' + parameters: [] + /v1/oauthClients/{oauthClientsId}:exchangeDebugToken: + parameters: *ref_1 + post: + description: >- + Validates a debug token secret that you have previously created using + CreateDebugToken. If valid, returns an AppCheckToken. Note that a + restrictive quota is enforced on this method to prevent accidental + exposure of the app to abuse. + operationId: firebaseappcheck.oauthClients.exchangeDebugToken + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1ExchangeDebugTokenRequest + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1AppCheckToken' + parameters: + - in: path + name: oauthClientsId + required: true + schema: + type: string + /v1/oauthClients/{oauthClientsId}:generateAppAttestChallenge: + parameters: *ref_1 + post: + description: >- + Generates a challenge that protects the integrity of an immediately + following call to ExchangeAppAttestAttestation or + ExchangeAppAttestAssertion. A challenge should not be reused for + multiple calls. + operationId: firebaseappcheck.oauthClients.generateAppAttestChallenge + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1GenerateAppAttestChallengeRequest + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1GenerateAppAttestChallengeResponse + parameters: + - in: path + name: oauthClientsId + required: true + schema: + type: string + /v1/oauthClients/{oauthClientsId}:exchangeAppAttestAttestation: + parameters: *ref_1 + post: + description: >- + Accepts an App Attest CBOR attestation and verifies it with Apple using + your preconfigured team and bundle IDs. If valid, returns an attestation + artifact that can later be exchanged for an AppCheckToken using + ExchangeAppAttestAssertion. For convenience and performance, this + method's response object will also contain an AppCheckToken (if the + verification is successful). + operationId: firebaseappcheck.oauthClients.exchangeAppAttestAttestation + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1ExchangeAppAttestAttestationRequest + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1ExchangeAppAttestAttestationResponse + parameters: + - in: path + name: oauthClientsId + required: true + schema: + type: string + /v1/oauthClients/{oauthClientsId}:exchangeAppAttestAssertion: + parameters: *ref_1 + post: + description: >- + Accepts an App Attest assertion and an artifact previously obtained from + ExchangeAppAttestAttestation and verifies those with Apple. If valid, + returns an AppCheckToken. + operationId: firebaseappcheck.oauthClients.exchangeAppAttestAssertion + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppcheckV1ExchangeAppAttestAssertionRequest + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppcheckV1AppCheckToken' + parameters: + - in: path + name: oauthClientsId + required: true + schema: + type: string diff --git a/providers/src/firebase/v00.00.00000/services/appdistribution.yaml b/providers/src/firebase/v00.00.00000/services/appdistribution.yaml new file mode 100644 index 00000000..e36dc146 --- /dev/null +++ b/providers/src/firebase/v00.00.00000/services/appdistribution.yaml @@ -0,0 +1,2428 @@ +openapi: 3.1.0 +info: + contact: + name: StackQL Studios + url: https://github.com/stackql/google-discovery-to-openapi + email: info@stackql.io + title: Firebase App Distribution API + description: '' + version: v1 + x-discovery-doc-revision: '20250827' + x-generated-date: '2025-08-28' +externalDocs: + url: https://firebase.google.com/products/app-distribution +servers: + - url: https://firebaseappdistribution.googleapis.com +components: + securitySchemes: + Oauth2: + type: oauth2 + description: Oauth 2.0 implicit authentication + flows: + implicit: + authorizationUrl: https://accounts.google.com/o/oauth2/auth + scopes: &ref_0 + https://www.googleapis.com/auth/cloud-platform: >- + See, edit, configure, and delete your Google Cloud data and see + the email address for your Google Account. + Oauth2c: + type: oauth2 + description: Oauth 2.0 authorization code authentication + flows: + authorizationCode: + authorizationUrl: https://accounts.google.com/o/oauth2/auth + tokenUrl: https://accounts.google.com/o/oauth2/token + scopes: *ref_0 + schemas: + GoogleLongrunningListOperationsResponse: + id: GoogleLongrunningListOperationsResponse + description: The response message for Operations.ListOperations. + type: object + properties: + operations: + description: >- + A list of operations that matches the specified filter in the + request. + type: array + items: + $ref: '#/components/schemas/GoogleLongrunningOperation' + nextPageToken: + description: The standard List next-page token. + type: string + GoogleLongrunningOperation: + id: GoogleLongrunningOperation + description: >- + This resource represents a long-running operation that is the result of + a network API call. + type: object + properties: + name: + description: >- + The server-assigned name, which is only unique within the same + service that originally returns it. If you use the default HTTP + mapping, the `name` should be a resource name ending with + `operations/{unique_id}`. + type: string + metadata: + description: >- + Service-specific metadata associated with the operation. It + typically contains progress information and common metadata such as + create time. Some services might not provide such metadata. Any + method that returns a long-running operation should document the + metadata type, if any. + type: object + additionalProperties: + type: any + description: Properties of the object. Contains field @type with type URL. + done: + description: >- + If the value is `false`, it means the operation is still in + progress. If `true`, the operation is completed, and either `error` + or `response` is available. + type: boolean + error: + description: >- + The error result of the operation in case of failure or + cancellation. + $ref: '#/components/schemas/GoogleRpcStatus' + response: + description: >- + The normal, successful response of the operation. If the original + method returns no data on success, such as `Delete`, the response is + `google.protobuf.Empty`. If the original method is standard + `Get`/`Create`/`Update`, the response should be the resource. For + other methods, the response should have the type `XxxResponse`, + where `Xxx` is the original method name. For example, if the + original method name is `TakeSnapshot()`, the inferred response type + is `TakeSnapshotResponse`. + type: object + additionalProperties: + type: any + description: Properties of the object. Contains field @type with type URL. + GoogleRpcStatus: + id: GoogleRpcStatus + description: >- + 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](https://github.com/grpc). Each `Status` message + contains three pieces of data: error code, error message, and error + details. You can find out more about this error model and how to work + with it in the [API Design + Guide](https://cloud.google.com/apis/design/errors). + type: object + properties: + code: + description: The status code, which should be an enum value of google.rpc.Code. + type: integer + format: int32 + message: + description: >- + 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 field, or localized by the client. + type: string + details: + description: >- + A list of messages that carry the error details. There is a common + set of message types for APIs to use. + type: array + items: + type: object + additionalProperties: + type: any + description: Properties of the object. Contains field @type with type URL. + GoogleProtobufEmpty: + id: GoogleProtobufEmpty + description: >- + A generic empty message that you can re-use to avoid defining duplicated + empty messages in your APIs. A typical example is to use it as the + request or the response type of an API method. For instance: service Foo + { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } + type: object + properties: {} + GoogleLongrunningCancelOperationRequest: + id: GoogleLongrunningCancelOperationRequest + description: The request message for Operations.CancelOperation. + type: object + properties: {} + GoogleLongrunningWaitOperationRequest: + id: GoogleLongrunningWaitOperationRequest + description: The request message for Operations.WaitOperation. + type: object + properties: + timeout: + description: >- + The maximum duration to wait before timing out. If left blank, the + wait will be at most the time permitted by the underlying HTTP/RPC + protocol. If RPC context deadline is also specified, the shorter one + will be used. + type: string + format: google-duration + GoogleFirebaseAppdistroV1AabInfo: + id: GoogleFirebaseAppdistroV1AabInfo + description: Android App Bundle (AAB) information for a Firebase app. + type: object + properties: + name: + description: >- + The name of the `AabInfo` resource. Format: + `projects/{project_number}/apps/{app}/aabInfo` + type: string + integrationState: + description: App bundle integration state. Only valid for android apps. + type: string + enumDescriptions: + - Aab integration state unspecified + - App can receive app bundle uploads + - Firebase project is not linked to a Play developer account + - >- + There is no app in linked Play developer account with the same + bundle id + - The app in Play developer account is not in a published state + - Play App status is unavailable + - Play IAS terms not accepted + enum: + - AAB_INTEGRATION_STATE_UNSPECIFIED + - INTEGRATED + - PLAY_ACCOUNT_NOT_LINKED + - NO_APP_WITH_GIVEN_BUNDLE_ID_IN_PLAY_ACCOUNT + - APP_NOT_PUBLISHED + - AAB_STATE_UNAVAILABLE + - PLAY_IAS_TERMS_NOT_ACCEPTED + testCertificate: + description: >- + App bundle test certificate generated for the app. Set after the + first app bundle is uploaded for this app. + $ref: '#/components/schemas/GoogleFirebaseAppdistroV1TestCertificate' + GoogleFirebaseAppdistroV1TestCertificate: + id: GoogleFirebaseAppdistroV1TestCertificate + description: App bundle test certificate + type: object + properties: + hashSha1: + description: >- + Hex string of SHA1 hash of the test certificate used to resign the + AAB + type: string + hashSha256: + description: >- + Hex string of SHA256 hash of the test certificate used to resign the + AAB + type: string + hashMd5: + description: >- + Hex string of MD5 hash of the test certificate used to resign the + AAB + type: string + GoogleFirebaseAppdistroV1UploadReleaseRequest: + id: GoogleFirebaseAppdistroV1UploadReleaseRequest + description: Request message for `UploadRelease`. + type: object + properties: + blob: + description: Binary to upload + $ref: '#/components/schemas/GdataMedia' + GdataMedia: + id: GdataMedia + description: A reference to data stored on the filesystem, on GFS or in blobstore. + type: object + properties: + contentType: + description: MIME type of the data + type: string + timestamp: + description: >- + Time at which the media data was last updated, in milliseconds since + UNIX epoch + type: string + format: uint64 + token: + description: A unique fingerprint/version id for the media data + type: string + length: + description: Size of the data, in bytes + type: string + format: int64 + filename: + description: Original file name + type: string + referenceType: + description: Describes what the field reference contains. + type: string + enumDescriptions: + - Reference contains a GFS path or a local path. + - >- + Reference points to a blobstore object. This could be either a v1 + blob_ref or a v2 blobstore2_info. Clients should check + blobstore2_info first, since v1 is being deprecated. + - Data is included into this proto buffer + - >- + Data should be accessed from the current service using the + operation GetMedia. + - >- + The content for this media object is stored across multiple + partial media objects under the composite_media field. + - Reference points to a bigstore object + - Indicates the data is stored in diff_version_response. + - Indicates the data is stored in diff_checksums_response. + - Indicates the data is stored in diff_download_response. + - Indicates the data is stored in diff_upload_request. + - Indicates the data is stored in diff_upload_response. + - Indicates the data is stored in cosmo_binary_reference. + - >- + Informs Scotty to generate a response payload with the size + specified in the length field. The contents of the payload are + generated by Scotty and are undefined. This is useful for testing + download speeds between the user and Scotty without involving a + real payload source. Note: range is not supported when using + arbitrary_bytes. + enum: + - PATH + - BLOB_REF + - INLINE + - GET_MEDIA + - COMPOSITE_MEDIA + - BIGSTORE_REF + - DIFF_VERSION_RESPONSE + - DIFF_CHECKSUMS_RESPONSE + - DIFF_DOWNLOAD_RESPONSE + - DIFF_UPLOAD_REQUEST + - DIFF_UPLOAD_RESPONSE + - COSMO_BINARY_REFERENCE + - ARBITRARY_BYTES + path: + description: Path to the data, set if reference_type is PATH + type: string + blobRef: + description: >- + Blobstore v1 reference, set if reference_type is BLOBSTORE_REF This + should be the byte representation of a blobstore.BlobRef. Since + Blobstore is deprecating v1, use blobstore2_info instead. For now, + any v2 blob will also be represented in this field as v1 BlobRef. + deprecated: true + type: string + format: byte + inline: + description: Media data, set if reference_type is INLINE + type: string + format: byte + mediaId: + description: >- + Media id to forward to the operation GetMedia. Can be set if + reference_type is GET_MEDIA. + type: string + format: byte + hash: + description: >- + Deprecated, use one of explicit hash type fields instead. These two + hash related fields will only be populated on Scotty based media + uploads and will contain the content of the hash group in the + NotificationRequest: + http://cs/#google3/blobstore2/api/scotty/service/proto/upload_listener.proto&q=class:Hash + Hex encoded hash value of the uploaded media. + deprecated: true + type: string + algorithm: + description: >- + Deprecated, use one of explicit hash type fields instead. Algorithm + used for calculating the hash. As of 2011/01/21, "MD5" is the only + possible value for this field. New values may be added at any time. + deprecated: true + type: string + compositeMedia: + description: >- + A composite media composed of one or more media objects, set if + reference_type is COMPOSITE_MEDIA. The media length field must be + set to the sum of the lengths of all composite media objects. Note: + All composite media must have length specified. + type: array + items: + $ref: '#/components/schemas/GdataCompositeMedia' + bigstoreObjectRef: + description: Use object_id instead. + deprecated: true + type: string + format: byte + objectId: + description: Reference to a TI Blob, set if reference_type is BIGSTORE_REF. + $ref: '#/components/schemas/GdataObjectId' + blobstore2Info: + description: >- + Blobstore v2 info, set if reference_type is BLOBSTORE_REF and it + refers to a v2 blob. + $ref: '#/components/schemas/GdataBlobstore2Info' + diffVersionResponse: + description: Set if reference_type is DIFF_VERSION_RESPONSE. + $ref: '#/components/schemas/GdataDiffVersionResponse' + diffChecksumsResponse: + description: Set if reference_type is DIFF_CHECKSUMS_RESPONSE. + $ref: '#/components/schemas/GdataDiffChecksumsResponse' + diffDownloadResponse: + description: Set if reference_type is DIFF_DOWNLOAD_RESPONSE. + $ref: '#/components/schemas/GdataDiffDownloadResponse' + diffUploadRequest: + description: Set if reference_type is DIFF_UPLOAD_REQUEST. + $ref: '#/components/schemas/GdataDiffUploadRequest' + diffUploadResponse: + description: Set if reference_type is DIFF_UPLOAD_RESPONSE. + $ref: '#/components/schemas/GdataDiffUploadResponse' + contentTypeInfo: + description: Extended content type information provided for Scotty uploads. + $ref: '#/components/schemas/GdataContentTypeInfo' + downloadParameters: + description: Parameters for a media download. + $ref: '#/components/schemas/GdataDownloadParameters' + crc32cHash: + description: >- + For Scotty Uploads: Scotty-provided hashes for uploads For Scotty + Downloads: (WARNING: DO NOT USE WITHOUT PERMISSION FROM THE SCOTTY + TEAM.) A Hash provided by the agent to be used to verify the data + being downloaded. Currently only supported for inline payloads. + Further, only crc32c_hash is currently supported. + type: integer + format: uint32 + md5Hash: + description: Scotty-provided MD5 hash for an upload. + type: string + format: byte + sha1Hash: + description: Scotty-provided SHA1 hash for an upload. + type: string + format: byte + sha256Hash: + description: Scotty-provided SHA256 hash for an upload. + type: string + format: byte + isPotentialRetry: + description: >- + |is_potential_retry| is set false only when Scotty is certain that + it has not sent the request before. When a client resumes an upload, + this field must be set true in agent calls, because Scotty cannot be + certain that it has never sent the request before due to potential + failure in the session state persistence. + type: boolean + cosmoBinaryReference: + description: >- + A binary data reference for a media download. Serves as a + technology-agnostic binary reference in some Google infrastructure. + This value is a serialized storage_cosmo.BinaryReference proto. + Storing it as bytes is a hack to get around the fact that the cosmo + proto (as well as others it includes) doesn't support JavaScript. + This prevents us from including the actual type of this field. + type: string + format: byte + hashVerified: + description: >- + For Scotty uploads only. If a user sends a hash code and the backend + has requested that Scotty verify the upload against the client hash, + Scotty will perform the check on behalf of the backend and will + reject it if the hashes don't match. This is set to true if Scotty + performed this verification. + type: boolean + GdataCompositeMedia: + id: GdataCompositeMedia + description: >- + A sequence of media data references representing composite data. + Introduced to support Bigstore composite objects. For details, visit + http://go/bigstore-composites. + type: object + properties: + length: + description: Size of the data, in bytes + type: string + format: int64 + referenceType: + description: Describes what the field reference contains. + type: string + enumDescriptions: + - Reference contains a GFS path or a local path. + - >- + Reference points to a blobstore object. This could be either a v1 + blob_ref or a v2 blobstore2_info. Clients should check + blobstore2_info first, since v1 is being deprecated. + - Data is included into this proto buffer + - Reference points to a bigstore object + - Indicates the data is stored in cosmo_binary_reference. + enum: + - PATH + - BLOB_REF + - INLINE + - BIGSTORE_REF + - COSMO_BINARY_REFERENCE + path: + description: Path to the data, set if reference_type is PATH + type: string + blobRef: + description: >- + Blobstore v1 reference, set if reference_type is BLOBSTORE_REF This + should be the byte representation of a blobstore.BlobRef. Since + Blobstore is deprecating v1, use blobstore2_info instead. For now, + any v2 blob will also be represented in this field as v1 BlobRef. + deprecated: true + type: string + format: byte + inline: + description: Media data, set if reference_type is INLINE + type: string + format: byte + objectId: + description: Reference to a TI Blob, set if reference_type is BIGSTORE_REF. + $ref: '#/components/schemas/GdataObjectId' + blobstore2Info: + description: >- + Blobstore v2 info, set if reference_type is BLOBSTORE_REF and it + refers to a v2 blob. + $ref: '#/components/schemas/GdataBlobstore2Info' + cosmoBinaryReference: + description: >- + A binary data reference for a media download. Serves as a + technology-agnostic binary reference in some Google infrastructure. + This value is a serialized storage_cosmo.BinaryReference proto. + Storing it as bytes is a hack to get around the fact that the cosmo + proto (as well as others it includes) doesn't support JavaScript. + This prevents us from including the actual type of this field. + type: string + format: byte + crc32cHash: + description: crc32.c hash for the payload. + type: integer + format: uint32 + md5Hash: + description: MD5 hash for the payload. + type: string + format: byte + sha1Hash: + description: SHA-1 hash for the payload. + type: string + format: byte + GdataObjectId: + id: GdataObjectId + description: >- + This is a copy of the tech.blob.ObjectId proto, which could not be used + directly here due to transitive closure issues with JavaScript support; + see http://b/8801763. + type: object + properties: + bucketName: + description: The name of the bucket to which this object belongs. + type: string + objectName: + description: The name of the object. + type: string + generation: + description: >- + Generation of the object. Generations are monotonically increasing + across writes, allowing them to be be compared to determine which + generation is newer. If this is omitted in a request, then you are + requesting the live object. See http://go/bigstore-versions + type: string + format: int64 + GdataBlobstore2Info: + id: GdataBlobstore2Info + description: Information to read/write to blobstore2. + type: object + properties: + blobId: + description: The blob id, e.g., /blobstore/prod/playground/scotty + type: string + blobGeneration: + description: The blob generation id. + type: string + format: int64 + readToken: + description: >- + The blob read token. Needed to read blobs that have not been + replicated. Might not be available until the final call. + type: string + uploadMetadataContainer: + description: >- + Metadata passed from Blobstore -> Scotty for a new GCS upload. This + is a signed, serialized blobstore2.BlobMetadataContainer proto which + must never be consumed outside of Bigstore, and is not applicable to + non-GCS media uploads. + type: string + format: byte + downloadReadHandle: + description: >- + Read handle passed from Bigstore -> Scotty for a GCS download. This + is a signed, serialized blobstore2.ReadHandle proto which must never + be set outside of Bigstore, and is not applicable to non-GCS media + downloads. + type: string + format: byte + GdataDiffVersionResponse: + id: GdataDiffVersionResponse + description: >- + Backend response for a Diff get version response. For details on the + Scotty Diff protocol, visit http://go/scotty-diff-protocol. + type: object + properties: + objectVersion: + description: The version of the object stored at the server. + type: string + objectSizeBytes: + description: The total size of the server object. + type: string + format: int64 + GdataDiffChecksumsResponse: + id: GdataDiffChecksumsResponse + description: >- + Backend response for a Diff get checksums response. For details on the + Scotty Diff protocol, visit http://go/scotty-diff-protocol. + type: object + properties: + objectVersion: + description: >- + The object version of the object the checksums are being returned + for. + type: string + objectSizeBytes: + description: The total size of the server object. + type: string + format: int64 + chunkSizeBytes: + description: The chunk size of checksums. Must be a multiple of 256KB. + type: string + format: int64 + checksumsLocation: + description: >- + Exactly one of these fields must be populated. If checksums_location + is filled, the server will return the corresponding contents to the + user. If object_location is filled, the server will calculate the + checksums based on the content there and return that to the user. + For details on the format of the checksums, see + http://go/scotty-diff-protocol. + $ref: '#/components/schemas/GdataCompositeMedia' + objectLocation: + description: >- + If set, calculate the checksums based on the contents and return + them to the caller. + $ref: '#/components/schemas/GdataCompositeMedia' + GdataDiffDownloadResponse: + id: GdataDiffDownloadResponse + description: >- + Backend response for a Diff download response. For details on the Scotty + Diff protocol, visit http://go/scotty-diff-protocol. + type: object + properties: + objectLocation: + description: The original object location. + $ref: '#/components/schemas/GdataCompositeMedia' + GdataDiffUploadRequest: + id: GdataDiffUploadRequest + description: >- + A Diff upload request. For details on the Scotty Diff protocol, visit + http://go/scotty-diff-protocol. + type: object + properties: + objectVersion: + description: >- + The object version of the object that is the base version the + incoming diff script will be applied to. This field will always be + filled in. + type: string + objectInfo: + description: >- + The location of the new object. Agents must clone the object located + here, as the upload server will delete the contents once a response + is received. + $ref: '#/components/schemas/GdataCompositeMedia' + checksumsInfo: + description: >- + The location of the checksums for the new object. Agents must clone + the object located here, as the upload server will delete the + contents once a response is received. For details on the format of + the checksums, see http://go/scotty-diff-protocol. + $ref: '#/components/schemas/GdataCompositeMedia' + GdataDiffUploadResponse: + id: GdataDiffUploadResponse + description: >- + Backend response for a Diff upload request. For details on the Scotty + Diff protocol, visit http://go/scotty-diff-protocol. + type: object + properties: + objectVersion: + description: >- + The object version of the object at the server. Must be included in + the end notification response. The version in the end notification + response must correspond to the new version of the object that is + now stored at the server, after the upload. + type: string + originalObject: + description: >- + The location of the original file for a diff upload request. Must be + filled in if responding to an upload start notification. + $ref: '#/components/schemas/GdataCompositeMedia' + GdataContentTypeInfo: + id: GdataContentTypeInfo + description: >- + Detailed Content-Type information from Scotty. The Content-Type of the + media will typically be filled in by the header or Scotty's best_guess, + but this extended information provides the backend with more information + so that it can make a better decision if needed. This is only used on + media upload requests from Scotty. + type: object + properties: + bestGuess: + description: Scotty's best guess of what the content type of the file is. + type: string + fromHeader: + description: >- + The content type of the file as specified in the request headers, + multipart headers, or RUPIO start request. + type: string + fromFileName: + description: >- + The content type of the file derived from the file extension of the + original file name used by the client. + type: string + fromUrlPath: + description: >- + The content type of the file derived from the file extension of the + URL path. The URL path is assumed to represent a file name (which is + typically only true for agents that are providing a REST API). + type: string + fromBytes: + description: >- + The content type of the file derived by looking at specific bytes + (i.e. "magic bytes") of the actual file. + type: string + GdataDownloadParameters: + id: GdataDownloadParameters + description: Parameters specific to media downloads. + type: object + properties: + allowGzipCompression: + description: >- + A boolean to be returned in the response to Scotty. Allows/disallows + gzip encoding of the payload content when the server thinks it's + advantageous (hence, does not guarantee compression) which allows + Scotty to GZip the response to the client. + type: boolean + ignoreRange: + description: >- + Determining whether or not Apiary should skip the inclusion of any + Content-Range header on its response to Scotty. + type: boolean + GoogleFirebaseAppdistroV1Release: + id: GoogleFirebaseAppdistroV1Release + description: A release of a Firebase app. + type: object + properties: + name: + description: >- + The name of the release resource. Format: + `projects/{project_number}/apps/{app_id}/releases/{release_id}` + type: string + releaseNotes: + description: Notes of the release. + $ref: '#/components/schemas/GoogleFirebaseAppdistroV1ReleaseNotes' + displayVersion: + description: >- + Output only. Display version of the release. For an Android release, + the display version is the `versionName`. For an iOS release, the + display version is the `CFBundleShortVersionString`. + readOnly: true + type: string + buildVersion: + description: >- + Output only. Build version of the release. For an Android release, + the build version is the `versionCode`. For an iOS release, the + build version is the `CFBundleVersion`. + readOnly: true + type: string + createTime: + description: Output only. The time the release was created. + readOnly: true + type: string + format: google-datetime + updateTime: + description: Output only. The time the release was last updated. + readOnly: true + type: string + format: google-datetime + expireTime: + description: Output only. The time the release will expire. + readOnly: true + type: string + format: google-datetime + firebaseConsoleUri: + description: >- + Output only. A link to the Firebase console displaying a single + release. + readOnly: true + type: string + testingUri: + description: >- + Output only. A link to the release in the tester web clip or Android + app that lets testers (which were granted access to the app) view + release notes and install the app onto their devices. + readOnly: true + type: string + binaryDownloadUri: + description: >- + Output only. A signed link (which expires in one hour) to directly + download the app binary (IPA/APK/AAB) file. + readOnly: true + type: string + GoogleFirebaseAppdistroV1ReleaseNotes: + id: GoogleFirebaseAppdistroV1ReleaseNotes + description: Notes that belong to a release. + type: object + properties: + text: + description: The text of the release notes. + type: string + GoogleFirebaseAppdistroV1ListReleasesResponse: + id: GoogleFirebaseAppdistroV1ListReleasesResponse + description: The response message for `ListReleases`. + type: object + properties: + releases: + description: The releases + type: array + items: + $ref: '#/components/schemas/GoogleFirebaseAppdistroV1Release' + nextPageToken: + description: >- + A short-lived token, which can be sent as `pageToken` to retrieve + the next page. If this field is omitted, there are no subsequent + pages. + type: string + GoogleFirebaseAppdistroV1DistributeReleaseRequest: + id: GoogleFirebaseAppdistroV1DistributeReleaseRequest + description: The request message for `DistributeRelease`. + type: object + properties: + testerEmails: + description: >- + Optional. A list of tester email addresses to be given access to + this release. A combined maximum of 999 `testerEmails` and + `groupAliases` can be specified in a single request. + type: array + items: + type: string + groupAliases: + description: >- + Optional. A list of group aliases (IDs) to be given access to this + release. A combined maximum of 999 `testerEmails` and `groupAliases` + can be specified in a single request. + type: array + items: + type: string + GoogleFirebaseAppdistroV1DistributeReleaseResponse: + id: GoogleFirebaseAppdistroV1DistributeReleaseResponse + description: The response message for `DistributeRelease`. + type: object + properties: {} + GoogleFirebaseAppdistroV1BatchAddTestersRequest: + id: GoogleFirebaseAppdistroV1BatchAddTestersRequest + description: The Request message for batch adding testers + type: object + properties: + emails: + description: >- + Required. The email addresses of the tester resources to create. A + maximum of 999 and a minimum of 1 tester can be created in a batch. + type: array + items: + type: string + GoogleFirebaseAppdistroV1BatchAddTestersResponse: + id: GoogleFirebaseAppdistroV1BatchAddTestersResponse + description: The Response message for `BatchAddTesters`. + type: object + properties: + testers: + description: The testers which are created and/or already exist + type: array + items: + $ref: '#/components/schemas/GoogleFirebaseAppdistroV1Tester' + GoogleFirebaseAppdistroV1Tester: + id: GoogleFirebaseAppdistroV1Tester + description: A person that can be invited to test apps in a Firebase project. + type: object + properties: + name: + description: >- + The name of the tester resource. Format: + `projects/{project_number}/testers/{email_address}` + type: string + displayName: + description: >- + The name of the tester associated with the Google account used to + accept the tester invitation. + type: string + groups: + description: The resource names of the groups this tester belongs to. + type: array + items: + type: string + lastActivityTime: + description: >- + Output only. The time the tester was last active. This is the most + recent time the tester installed one of the apps. If they've never + installed one or if the release no longer exists, this is the time + the tester was added to the project. + readOnly: true + type: string + format: google-datetime + GoogleFirebaseAppdistroV1BatchRemoveTestersRequest: + id: GoogleFirebaseAppdistroV1BatchRemoveTestersRequest + description: The request message for `BatchRemoveTesters`. + type: object + properties: + emails: + description: >- + Required. The email addresses of the tester resources to removed. A + maximum of 999 and a minimum of 1 testers can be deleted in a batch. + type: array + items: + type: string + GoogleFirebaseAppdistroV1BatchRemoveTestersResponse: + id: GoogleFirebaseAppdistroV1BatchRemoveTestersResponse + description: The response message for `BatchRemoveTesters` + type: object + properties: + emails: + description: List of deleted tester emails + type: array + items: + type: string + GoogleFirebaseAppdistroV1ListTestersResponse: + id: GoogleFirebaseAppdistroV1ListTestersResponse + description: The response message for `ListTesters`. + type: object + properties: + testers: + description: The testers listed. + type: array + items: + $ref: '#/components/schemas/GoogleFirebaseAppdistroV1Tester' + nextPageToken: + description: >- + A short-lived token, which can be sent as `pageToken` to retrieve + the next page. If this field is omitted, there are no subsequent + pages. + type: string + GoogleFirebaseAppdistroV1BatchDeleteReleasesRequest: + id: GoogleFirebaseAppdistroV1BatchDeleteReleasesRequest + description: The request message for `BatchDeleteReleases`. + type: object + properties: + names: + description: >- + Required. The names of the release resources to delete. Format: + `projects/{project_number}/apps/{app_id}/releases/{release_id}` A + maximum of 100 releases can be deleted per request. + type: array + items: + type: string + GoogleFirebaseAppdistroV1Group: + id: GoogleFirebaseAppdistroV1Group + description: >- + A group which can contain testers. A group can be invited to test apps + in a Firebase project. + type: object + properties: + name: + description: >- + The name of the group resource. Format: + `projects/{project_number}/groups/{group_alias}` + type: string + displayName: + description: Required. The display name of the group. + type: string + testerCount: + description: Output only. The number of testers who are members of this group. + readOnly: true + type: integer + format: int32 + releaseCount: + description: >- + Output only. The number of releases this group is permitted to + access. + readOnly: true + type: integer + format: int32 + inviteLinkCount: + description: Output only. The number of invite links for this group. + readOnly: true + type: integer + format: int32 + GoogleFirebaseAppdistroV1ListGroupsResponse: + id: GoogleFirebaseAppdistroV1ListGroupsResponse + description: The response message for `ListGroups`. + type: object + properties: + groups: + description: The groups listed. + type: array + items: + $ref: '#/components/schemas/GoogleFirebaseAppdistroV1Group' + nextPageToken: + description: >- + A short-lived token, which can be sent as `pageToken` to retrieve + the next page. If this field is omitted, there are no subsequent + pages. + type: string + GoogleFirebaseAppdistroV1BatchJoinGroupRequest: + id: GoogleFirebaseAppdistroV1BatchJoinGroupRequest + description: The request message for `BatchJoinGroup` + type: object + properties: + emails: + description: >- + Required. The emails of the testers to be added to the group. A + maximum of 999 and a minimum of 1 tester can be created in a batch. + type: array + items: + type: string + createMissingTesters: + description: >- + Indicates whether to create tester resources based on `emails` if + they don't exist yet. + type: boolean + GoogleFirebaseAppdistroV1BatchLeaveGroupRequest: + id: GoogleFirebaseAppdistroV1BatchLeaveGroupRequest + description: Request message for `BatchLeaveGroup` + type: object + properties: + emails: + description: >- + Required. The email addresses of the testers to be removed from the + group. A maximum of 999 and a minimum of 1 testers can be removed in + a batch. + type: array + items: + type: string + GoogleFirebaseAppdistroV1FeedbackReport: + id: GoogleFirebaseAppdistroV1FeedbackReport + description: A feedback report submitted by a tester for a release. + type: object + properties: + name: + description: >- + The name of the feedback report resource. Format: + `projects/{project_number}/apps/{app}/releases/{release}/feedbackReports/{feedback_report}` + type: string + tester: + description: >- + Output only. The resource name of the tester who submitted the + feedback report. + readOnly: true + type: string + text: + description: Output only. The text of the feedback report. + readOnly: true + type: string + screenshotUri: + description: >- + Output only. A signed link (which expires in one hour) that lets you + directly download the screenshot. + readOnly: true + type: string + firebaseConsoleUri: + description: >- + Output only. A link to the Firebase console displaying the feedback + report. + readOnly: true + type: string + createTime: + description: Output only. The time when the feedback report was created. + readOnly: true + type: string + format: google-datetime + GoogleFirebaseAppdistroV1ListFeedbackReportsResponse: + id: GoogleFirebaseAppdistroV1ListFeedbackReportsResponse + description: The response message for `ListFeedbackReports`. + type: object + properties: + feedbackReports: + description: The feedback reports + type: array + items: + $ref: '#/components/schemas/GoogleFirebaseAppdistroV1FeedbackReport' + nextPageToken: + description: >- + A short-lived token, which can be sent as `pageToken` to retrieve + the next page. If this field is omitted, there are no subsequent + pages. + type: string + GoogleFirebaseAppdistroV1UploadReleaseMetadata: + id: GoogleFirebaseAppdistroV1UploadReleaseMetadata + description: Operation metadata for `UploadRelease`. + type: object + properties: {} + GoogleFirebaseAppdistroV1UploadReleaseResponse: + id: GoogleFirebaseAppdistroV1UploadReleaseResponse + description: Response message for `UploadRelease`. + type: object + properties: + result: + description: Result of upload release. + type: string + enumDescriptions: + - Upload binary result unspecified + - Upload binary resulted in a new release + - Upload binary updated an existing release + - >- + Upload binary resulted in a no-op. A release with the exact same + binary already exists. + enum: + - UPLOAD_RELEASE_RESULT_UNSPECIFIED + - RELEASE_CREATED + - RELEASE_UPDATED + - RELEASE_UNMODIFIED + release: + description: Release associated with the uploaded binary. + $ref: '#/components/schemas/GoogleFirebaseAppdistroV1Release' + parameters: + access_token: + description: OAuth access token. + in: query + name: access_token + schema: + type: string + alt: + description: Data format for response. + in: query + name: alt + schema: + type: string + enum: + - json + - media + - proto + callback: + description: JSONP + in: query + name: callback + schema: + type: string + fields: + description: Selector specifying which fields to include in a partial response. + in: query + name: fields + schema: + type: string + key: + description: >- + API key. Your API key identifies your project and provides you with API + access, quota, and reports. Required unless you provide an OAuth 2.0 + token. + in: query + name: key + schema: + type: string + oauth_token: + description: OAuth 2.0 token for the current user. + in: query + name: oauth_token + schema: + type: string + prettyPrint: + description: Returns response with indentations and line breaks. + in: query + name: prettyPrint + schema: + type: boolean + quotaUser: + description: >- + Available to use for quota purposes for server-side applications. Can be + any arbitrary string assigned to a user, but should not exceed 40 + characters. + in: query + name: quotaUser + schema: + type: string + upload_protocol: + description: Upload protocol for media (e.g. "raw", "multipart"). + in: query + name: upload_protocol + schema: + type: string + uploadType: + description: Legacy upload protocol for media (e.g. "media", "multipart"). + in: query + name: uploadType + schema: + type: string + _.xgafv: + description: V1 error format. + in: query + name: $.xgafv + schema: + type: string + enum: + - '1' + - '2' + x-stackQL-resources: + apps_aab_info: + id: firebase.appdistribution.apps_aab_info + name: apps_aab_info + title: Apps_aab_info + methods: + get_aab_info: + operation: + $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1aabInfo/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: >- + #/components/x-stackQL-resources/apps_aab_info/methods/get_aab_info + insert: [] + update: [] + replace: [] + delete: [] + releases: + id: firebase.appdistribution.releases + name: releases + title: Releases + methods: + get: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1releases~1{releasesId}/get + response: + mediaType: application/json + openAPIDocKey: '200' + patch: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1releases~1{releasesId}/patch + response: + mediaType: application/json + openAPIDocKey: '200' + list: + operation: + $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1releases/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.releases + distribute: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1releases~1{releasesId}:distribute/post + response: + mediaType: application/json + openAPIDocKey: '200' + batch_delete: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1releases:batchDelete/post + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/releases/methods/get' + - $ref: '#/components/x-stackQL-resources/releases/methods/list' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/releases/methods/patch' + replace: [] + delete: + - $ref: '#/components/x-stackQL-resources/releases/methods/batch_delete' + operations: + id: firebase.appdistribution.operations + name: operations + title: Operations + methods: + list: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1releases~1{releasesId}~1operations/get + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.operations + get: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1releases~1{releasesId}~1operations~1{operationsId}/get + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1releases~1{releasesId}~1operations~1{operationsId}/delete + response: + mediaType: application/json + openAPIDocKey: '200' + cancel: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1releases~1{releasesId}~1operations~1{operationsId}:cancel/post + response: + mediaType: application/json + openAPIDocKey: '200' + wait: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1releases~1{releasesId}~1operations~1{operationsId}:wait/post + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/operations/methods/get' + - $ref: '#/components/x-stackQL-resources/operations/methods/list' + insert: [] + update: [] + replace: [] + delete: + - $ref: '#/components/x-stackQL-resources/operations/methods/delete' + feedback_reports: + id: firebase.appdistribution.feedback_reports + name: feedback_reports + title: Feedback_reports + methods: + get: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1releases~1{releasesId}~1feedbackReports~1{feedbackReportsId}/get + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1releases~1{releasesId}~1feedbackReports~1{feedbackReportsId}/delete + response: + mediaType: application/json + openAPIDocKey: '200' + list: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1releases~1{releasesId}~1feedbackReports/get + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.feedbackReports + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/feedback_reports/methods/get' + - $ref: '#/components/x-stackQL-resources/feedback_reports/methods/list' + insert: [] + update: [] + replace: [] + delete: + - $ref: '#/components/x-stackQL-resources/feedback_reports/methods/delete' + testers: + id: firebase.appdistribution.testers + name: testers + title: Testers + methods: + batch_add: + operation: + $ref: '#/paths/~1v1~1projects~1{projectsId}~1testers:batchAdd/post' + response: + mediaType: application/json + openAPIDocKey: '200' + batch_remove: + operation: + $ref: '#/paths/~1v1~1projects~1{projectsId}~1testers:batchRemove/post' + response: + mediaType: application/json + openAPIDocKey: '200' + list: + operation: + $ref: '#/paths/~1v1~1projects~1{projectsId}~1testers/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.testers + patch: + operation: + $ref: '#/paths/~1v1~1projects~1{projectsId}~1testers~1{testersId}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/testers/methods/list' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/testers/methods/patch' + replace: [] + delete: [] + groups: + id: firebase.appdistribution.groups + name: groups + title: Groups + methods: + get: + operation: + $ref: '#/paths/~1v1~1projects~1{projectsId}~1groups~1{groupsId}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + patch: + operation: + $ref: '#/paths/~1v1~1projects~1{projectsId}~1groups~1{groupsId}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1v1~1projects~1{projectsId}~1groups~1{groupsId}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + list: + operation: + $ref: '#/paths/~1v1~1projects~1{projectsId}~1groups/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.groups + create: + operation: + $ref: '#/paths/~1v1~1projects~1{projectsId}~1groups/post' + response: + mediaType: application/json + openAPIDocKey: '200' + batch_join: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1groups~1{groupsId}:batchJoin/post + response: + mediaType: application/json + openAPIDocKey: '200' + batch_leave: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1groups~1{groupsId}:batchLeave/post + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/groups/methods/get' + - $ref: '#/components/x-stackQL-resources/groups/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/groups/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/groups/methods/patch' + replace: [] + delete: + - $ref: '#/components/x-stackQL-resources/groups/methods/delete' + media: + id: firebase.appdistribution.media + name: media + title: Media + methods: + upload: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1releases:upload/post + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: [] + insert: [] + update: [] + replace: [] + delete: [] +paths: + /v1/projects/{projectsId}/apps/{appsId}/aabInfo: + parameters: &ref_1 + - $ref: '#/components/parameters/access_token' + - $ref: '#/components/parameters/alt' + - $ref: '#/components/parameters/callback' + - $ref: '#/components/parameters/fields' + - $ref: '#/components/parameters/key' + - $ref: '#/components/parameters/oauth_token' + - $ref: '#/components/parameters/prettyPrint' + - $ref: '#/components/parameters/quotaUser' + - $ref: '#/components/parameters/upload_protocol' + - $ref: '#/components/parameters/uploadType' + - $ref: '#/components/parameters/_.xgafv' + get: + description: Gets Android App Bundle (AAB) information for a Firebase app. + operationId: firebaseappdistribution.projects.apps.getAabInfo + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppdistroV1AabInfo' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + /v1/projects/{projectsId}/apps/{appsId}/releases/{releasesId}: + parameters: *ref_1 + get: + description: Gets a release. + operationId: firebaseappdistribution.projects.apps.releases.get + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppdistroV1Release' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + - in: path + name: releasesId + required: true + schema: + type: string + patch: + description: Updates a release. + operationId: firebaseappdistribution.projects.apps.releases.patch + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppdistroV1Release' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppdistroV1Release' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + - in: path + name: releasesId + required: true + schema: + type: string + - in: query + name: updateMask + schema: + type: string + format: google-fieldmask + /v1/projects/{projectsId}/apps/{appsId}/releases: + parameters: *ref_1 + get: + description: Lists releases. By default, sorts by `createTime` in descending order. + operationId: firebaseappdistribution.projects.apps.releases.list + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppdistroV1ListReleasesResponse + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + - in: query + name: pageSize + schema: + type: integer + format: int32 + - in: query + name: pageToken + schema: + type: string + - in: query + name: orderBy + schema: + type: string + - in: query + name: filter + schema: + type: string + /v1/projects/{projectsId}/apps/{appsId}/releases/{releasesId}:distribute: + parameters: *ref_1 + post: + description: >- + Distributes a release to testers. This call does the following: 1. + Creates testers for the specified emails, if none exist. 2. Adds the + testers and groups to the release. 3. Sends new testers an invitation + email. 4. Sends existing testers a new release email. The request will + fail with a `INVALID_ARGUMENT` if it contains a group that doesn't + exist. + operationId: firebaseappdistribution.projects.apps.releases.distribute + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppdistroV1DistributeReleaseRequest + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppdistroV1DistributeReleaseResponse + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + - in: path + name: releasesId + required: true + schema: + type: string + /v1/projects/{projectsId}/apps/{appsId}/releases:batchDelete: + parameters: *ref_1 + post: + description: Deletes releases. A maximum of 100 releases can be deleted per request. + operationId: firebaseappdistribution.projects.apps.releases.batchDelete + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppdistroV1BatchDeleteReleasesRequest + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleProtobufEmpty' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + /v1/projects/{projectsId}/apps/{appsId}/releases/{releasesId}/operations: + parameters: *ref_1 + get: + description: >- + Lists operations that match the specified filter in the request. If the + server doesn't support this method, it returns `UNIMPLEMENTED`. + operationId: firebaseappdistribution.projects.apps.releases.operations.list + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleLongrunningListOperationsResponse' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + - in: path + name: releasesId + required: true + schema: + type: string + - in: query + name: filter + schema: + type: string + - in: query + name: pageSize + schema: + type: integer + format: int32 + - in: query + name: pageToken + schema: + type: string + /v1/projects/{projectsId}/apps/{appsId}/releases/{releasesId}/operations/{operationsId}: + parameters: *ref_1 + get: + description: >- + Gets the latest state of a long-running operation. Clients can use this + method to poll the operation result at intervals as recommended by the + API service. + operationId: firebaseappdistribution.projects.apps.releases.operations.get + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleLongrunningOperation' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + - in: path + name: releasesId + required: true + schema: + type: string + - in: path + name: operationsId + required: true + schema: + type: string + delete: + description: >- + Deletes a long-running operation. This method indicates that the client + is no longer interested in the operation result. It does not cancel the + operation. If the server doesn't support this method, it returns + `google.rpc.Code.UNIMPLEMENTED`. + operationId: firebaseappdistribution.projects.apps.releases.operations.delete + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleProtobufEmpty' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + - in: path + name: releasesId + required: true + schema: + type: string + - in: path + name: operationsId + required: true + schema: + type: string + /v1/projects/{projectsId}/apps/{appsId}/releases/{releasesId}/operations/{operationsId}:cancel: + parameters: *ref_1 + post: + description: >- + Starts asynchronous cancellation on a long-running operation. The server + makes a best effort to cancel the operation, but success is not + guaranteed. If the server doesn't support this method, it returns + `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation + or other methods to check whether the cancellation succeeded or whether + the operation completed despite cancellation. On successful + cancellation, the operation is not deleted; instead, it becomes an + operation with an Operation.error value with a google.rpc.Status.code of + `1`, corresponding to `Code.CANCELLED`. + operationId: firebaseappdistribution.projects.apps.releases.operations.cancel + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleLongrunningCancelOperationRequest' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleProtobufEmpty' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + - in: path + name: releasesId + required: true + schema: + type: string + - in: path + name: operationsId + required: true + schema: + type: string + /v1/projects/{projectsId}/apps/{appsId}/releases/{releasesId}/operations/{operationsId}:wait: + parameters: *ref_1 + post: + description: >- + Waits until the specified long-running operation is done or reaches at + most a specified timeout, returning the latest state. If the operation + is already done, the latest state is immediately returned. If the + timeout specified is greater than the default HTTP/RPC timeout, the + HTTP/RPC timeout is used. If the server does not support this method, it + returns `google.rpc.Code.UNIMPLEMENTED`. Note that this method is on a + best-effort basis. It may return the latest state before the specified + timeout (including immediately), meaning even an immediate response is + no guarantee that the operation is done. + operationId: firebaseappdistribution.projects.apps.releases.operations.wait + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleLongrunningWaitOperationRequest' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleLongrunningOperation' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + - in: path + name: releasesId + required: true + schema: + type: string + - in: path + name: operationsId + required: true + schema: + type: string + /v1/projects/{projectsId}/apps/{appsId}/releases/{releasesId}/feedbackReports/{feedbackReportsId}: + parameters: *ref_1 + get: + description: Gets a feedback report. + operationId: firebaseappdistribution.projects.apps.releases.feedbackReports.get + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppdistroV1FeedbackReport' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + - in: path + name: releasesId + required: true + schema: + type: string + - in: path + name: feedbackReportsId + required: true + schema: + type: string + delete: + description: Deletes a feedback report. + operationId: firebaseappdistribution.projects.apps.releases.feedbackReports.delete + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleProtobufEmpty' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + - in: path + name: releasesId + required: true + schema: + type: string + - in: path + name: feedbackReportsId + required: true + schema: + type: string + /v1/projects/{projectsId}/apps/{appsId}/releases/{releasesId}/feedbackReports: + parameters: *ref_1 + get: + description: >- + Lists feedback reports. By default, sorts by `createTime` in descending + order. + operationId: firebaseappdistribution.projects.apps.releases.feedbackReports.list + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppdistroV1ListFeedbackReportsResponse + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string + - in: path + name: releasesId + required: true + schema: + type: string + - in: query + name: pageSize + schema: + type: integer + format: int32 + - in: query + name: pageToken + schema: + type: string + /v1/projects/{projectsId}/testers:batchAdd: + parameters: *ref_1 + post: + description: >- + Batch adds testers. This call adds testers for the specified emails if + they don't already exist. Returns all testers specified in the request, + including newly created and previously existing testers. This action is + idempotent. + operationId: firebaseappdistribution.projects.testers.batchAdd + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppdistroV1BatchAddTestersRequest + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppdistroV1BatchAddTestersResponse + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + /v1/projects/{projectsId}/testers:batchRemove: + parameters: *ref_1 + post: + description: >- + Batch removes testers. If found, this call deletes testers for the + specified emails. Returns all deleted testers. + operationId: firebaseappdistribution.projects.testers.batchRemove + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppdistroV1BatchRemoveTestersRequest + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppdistroV1BatchRemoveTestersResponse + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + /v1/projects/{projectsId}/testers: + parameters: *ref_1 + get: + description: Lists testers and their resource ids. + operationId: firebaseappdistribution.projects.testers.list + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppdistroV1ListTestersResponse + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: query + name: pageSize + schema: + type: integer + format: int32 + - in: query + name: pageToken + schema: + type: string + - in: query + name: filter + schema: + type: string + /v1/projects/{projectsId}/testers/{testersId}: + parameters: *ref_1 + patch: + description: >- + Update a tester. If the testers joins a group they gain access to all + releases that the group has access to. + operationId: firebaseappdistribution.projects.testers.patch + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppdistroV1Tester' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppdistroV1Tester' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: testersId + required: true + schema: + type: string + - in: query + name: updateMask + schema: + type: string + format: google-fieldmask + /v1/projects/{projectsId}/groups/{groupsId}: + parameters: *ref_1 + get: + description: Get a group. + operationId: firebaseappdistribution.projects.groups.get + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppdistroV1Group' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: groupsId + required: true + schema: + type: string + patch: + description: Update a group. + operationId: firebaseappdistribution.projects.groups.patch + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppdistroV1Group' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppdistroV1Group' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: groupsId + required: true + schema: + type: string + - in: query + name: updateMask + schema: + type: string + format: google-fieldmask + delete: + description: Delete a group. + operationId: firebaseappdistribution.projects.groups.delete + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleProtobufEmpty' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: groupsId + required: true + schema: + type: string + /v1/projects/{projectsId}/groups: + parameters: *ref_1 + get: + description: List groups. + operationId: firebaseappdistribution.projects.groups.list + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppdistroV1ListGroupsResponse + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: query + name: pageSize + schema: + type: integer + format: int32 + - in: query + name: pageToken + schema: + type: string + post: + description: Create a group. + operationId: firebaseappdistribution.projects.groups.create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppdistroV1Group' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleFirebaseAppdistroV1Group' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: query + name: groupId + schema: + type: string + /v1/projects/{projectsId}/groups/{groupsId}:batchJoin: + parameters: *ref_1 + post: + description: >- + Batch adds members to a group. The testers will gain access to all + releases that the groups have access to. + operationId: firebaseappdistribution.projects.groups.batchJoin + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppdistroV1BatchJoinGroupRequest + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleProtobufEmpty' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: groupsId + required: true + schema: + type: string + /v1/projects/{projectsId}/groups/{groupsId}:batchLeave: + parameters: *ref_1 + post: + description: >- + Batch removed members from a group. The testers will lose access to all + releases that the groups have access to. + operationId: firebaseappdistribution.projects.groups.batchLeave + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppdistroV1BatchLeaveGroupRequest + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleProtobufEmpty' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: groupsId + required: true + schema: + type: string + /v1/projects/{projectsId}/apps/{appsId}/releases:upload: + parameters: *ref_1 + post: + description: >- + Uploads a binary. Uploading a binary can result in a new release being + created, an update to an existing release, or a no-op if a release with + the same binary already exists. + operationId: firebaseappdistribution.media.upload + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseAppdistroV1UploadReleaseRequest + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GoogleLongrunningOperation' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: appsId + required: true + schema: + type: string diff --git a/providers/src/firebase/v00.00.00000/services/apphosting.yaml b/providers/src/firebase/v00.00.00000/services/apphosting.yaml new file mode 100644 index 00000000..e572dba8 --- /dev/null +++ b/providers/src/firebase/v00.00.00000/services/apphosting.yaml @@ -0,0 +1,3281 @@ +openapi: 3.1.0 +info: + contact: + name: StackQL Studios + url: https://github.com/stackql/google-discovery-to-openapi + email: info@stackql.io + title: Firebase App Hosting API + description: >- + Firebase App Hosting streamlines the development and deployment of dynamic + Next.js and Angular applications, offering built-in framework support, + GitHub integration, and integration with other Firebase products. You can + use this API to intervene in the Firebase App Hosting build process and add + custom functionality not supported in our default Console & CLI flows, + including triggering builds from external CI/CD workflows or deploying from + pre-built container images. + version: v1 + x-discovery-doc-revision: '20250821' + x-generated-date: '2025-08-28' +externalDocs: + url: https://firebase.google.com/docs/app-hosting +servers: + - url: https://firebaseapphosting.googleapis.com +components: + securitySchemes: + Oauth2: + type: oauth2 + description: Oauth 2.0 implicit authentication + flows: + implicit: + authorizationUrl: https://accounts.google.com/o/oauth2/auth + scopes: &ref_0 + https://www.googleapis.com/auth/cloud-platform: >- + See, edit, configure, and delete your Google Cloud data and see + the email address for your Google Account. + Oauth2c: + type: oauth2 + description: Oauth 2.0 authorization code authentication + flows: + authorizationCode: + authorizationUrl: https://accounts.google.com/o/oauth2/auth + tokenUrl: https://accounts.google.com/o/oauth2/token + scopes: *ref_0 + schemas: + ListOperationsResponse: + id: ListOperationsResponse + description: The response message for Operations.ListOperations. + type: object + properties: + operations: + description: >- + A list of operations that matches the specified filter in the + request. + type: array + items: + $ref: '#/components/schemas/Operation' + nextPageToken: + description: The standard List next-page token. + type: string + Operation: + id: Operation + description: >- + This resource represents a long-running operation that is the result of + a network API call. + type: object + properties: + name: + description: >- + The server-assigned name, which is only unique within the same + service that originally returns it. If you use the default HTTP + mapping, the `name` should be a resource name ending with + `operations/{unique_id}`. + type: string + metadata: + description: >- + Service-specific metadata associated with the operation. It + typically contains progress information and common metadata such as + create time. Some services might not provide such metadata. Any + method that returns a long-running operation should document the + metadata type, if any. + type: object + additionalProperties: + type: any + description: Properties of the object. Contains field @type with type URL. + done: + description: >- + If the value is `false`, it means the operation is still in + progress. If `true`, the operation is completed, and either `error` + or `response` is available. + type: boolean + error: + description: >- + The error result of the operation in case of failure or + cancellation. + $ref: '#/components/schemas/Status' + response: + description: >- + The normal, successful response of the operation. If the original + method returns no data on success, such as `Delete`, the response is + `google.protobuf.Empty`. If the original method is standard + `Get`/`Create`/`Update`, the response should be the resource. For + other methods, the response should have the type `XxxResponse`, + where `Xxx` is the original method name. For example, if the + original method name is `TakeSnapshot()`, the inferred response type + is `TakeSnapshotResponse`. + type: object + additionalProperties: + type: any + description: Properties of the object. Contains field @type with type URL. + Status: + id: Status + description: >- + 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](https://github.com/grpc). Each `Status` message + contains three pieces of data: error code, error message, and error + details. You can find out more about this error model and how to work + with it in the [API Design + Guide](https://cloud.google.com/apis/design/errors). + type: object + properties: + code: + description: The status code, which should be an enum value of google.rpc.Code. + type: integer + format: int32 + message: + description: >- + 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 field, or localized by the client. + type: string + details: + description: >- + A list of messages that carry the error details. There is a common + set of message types for APIs to use. + type: array + items: + type: object + additionalProperties: + type: any + description: Properties of the object. Contains field @type with type URL. + Empty: + id: Empty + description: >- + A generic empty message that you can re-use to avoid defining duplicated + empty messages in your APIs. A typical example is to use it as the + request or the response type of an API method. For instance: service Foo + { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } + type: object + properties: {} + CancelOperationRequest: + id: CancelOperationRequest + description: The request message for Operations.CancelOperation. + type: object + properties: {} + ListBackendsResponse: + id: ListBackendsResponse + description: Message for response to list backends + type: object + properties: + backends: + description: The list of backends + type: array + items: + $ref: '#/components/schemas/Backend' + nextPageToken: + description: >- + A token identifying the next page of results the server should + return. + type: string + unreachable: + description: Locations that could not be reached. + type: array + items: + type: string + Backend: + id: Backend + description: A backend is the primary resource of App Hosting. + type: object + properties: + name: + description: >- + Identifier. The resource name of the backend. Format: + `projects/{project}/locations/{locationId}/backends/{backendId}`. + type: string + displayName: + description: Optional. Human-readable name. 63 character limit. + type: string + mode: + description: 'Optional. Deprecated: Use `environment` instead.' + deprecated: true + type: string + servingLocality: + description: >- + Required. Immutable. Specifies how App Hosting will serve the + content for this backend. It will either be contained to a single + region (REGIONAL_STRICT) or allowed to use App Hosting's + global-replicated serving infrastructure (GLOBAL_ACCESS). + type: string + enumDescriptions: + - Unspecified. Will return an error if used. + - >- + In this mode, App Hosting serves your backend's content from your + chosen parent region. App Hosting only maintains data and serving + infrastructure in that chosen region and does not replicate your + data to other regions. + - >- + In this mode, App Hosting serves your backend's content from + multiple points-of-presence (POP) across the globe. App Hosting + replicates your backend's configuration and cached data to these + POPs and uses a global CDN to further decrease response latency. + App Hosting-maintained Cloud Resources on your project, such as + Cloud Run services, Cloud Build build, and Artifact Registry + Images are still confined to your backend's parent region. + Responses cached by the CDN may be stored in the POPs for the + duration of the cache's TTL. + enum: + - SERVING_LOCALITY_UNSPECIFIED + - REGIONAL_STRICT + - GLOBAL_ACCESS + codebase: + description: >- + Optional. If specified, the connection to an external source + repository to watch for event-driven updates to the backend. + $ref: '#/components/schemas/Codebase' + uri: + description: Output only. The primary URI to communicate with the backend. + readOnly: true + type: string + managedResources: + description: Output only. A list of the resources managed by this backend. + readOnly: true + type: array + items: + $ref: '#/components/schemas/ManagedResource' + serviceAccount: + description: >- + Required. The name of the service account used for Cloud Build and + Cloud Run. Should have the role + roles/firebaseapphosting.computeRunner or equivalent permissions. + type: string + appId: + description: >- + Optional. The [ID of a Web + App](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects.webApps#WebApp.FIELDS.app_id) + associated with the backend. + type: string + environment: + description: >- + Optional. The environment name of the backend, used to load + environment variables from environment specific configuration. + type: string + reconciling: + description: >- + Output only. A field that, if true, indicates that the system is + working to make adjustments to the backend during a LRO. + readOnly: true + type: boolean + createTime: + description: Output only. Time at which the backend was created. + readOnly: true + type: string + format: google-datetime + updateTime: + description: Output only. Time at which the backend was last updated. + readOnly: true + type: string + format: google-datetime + deleteTime: + description: Output only. Time at which the backend was deleted. + readOnly: true + type: string + format: google-datetime + labels: + description: >- + Optional. Unstructured key value map that can be used to organize + and categorize objects. + type: object + additionalProperties: + type: string + annotations: + description: >- + Optional. Unstructured key value map that may be set by external + tools to store and arbitrary metadata. They are not queryable and + should be preserved when modifying objects. + type: object + additionalProperties: + type: string + uid: + description: Output only. System-assigned, unique identifier. + readOnly: true + type: string + etag: + description: >- + Output only. Server-computed checksum based on other values; may be + sent on update or delete to ensure operation is done on expected + resource. + readOnly: true + type: string + Codebase: + id: Codebase + description: >- + The connection to an external source repository to watch for + event-driven updates to the backend. + type: object + properties: + repository: + description: >- + Required. The resource name for the Developer Connect + [`gitRepositoryLink`](https://cloud.google.com/developer-connect/docs/api/reference/rest/v1/projects.locations.connections.gitRepositoryLinks) + connected to this backend, in the format: + `projects/{project}/locations/{location}/connections/{connection}/gitRepositoryLinks/{repositoryLink}` + The connection for the `gitRepositoryLink` must made be using the + Firebase App Hosting GitHub App via the Firebase Console. + type: string + rootDirectory: + description: >- + Optional. If `repository` is provided, the directory relative to the + root of the repository to use as the root for the deployed web app. + type: string + ManagedResource: + id: ManagedResource + description: An external resource managed by App Hosting on the project. + type: object + properties: + runService: + description: >- + A Cloud Run + [`service`](https://cloud.google.com/run/docs/reference/rest/v2/projects.locations.services#resource:-service), + managed by App Hosting. + $ref: '#/components/schemas/RunService' + RunService: + id: RunService + description: >- + A managed Cloud Run + [`service`](https://cloud.google.com/run/docs/reference/rest/v2/projects.locations.services#resource:-service). + type: object + properties: + service: + description: >- + Optional. The name of the Cloud Run + [`service`](https://cloud.google.com/run/docs/reference/rest/v2/projects.locations.services#resource:-service), + in the format: + `projects/{project}/locations/{location}/services/{serviceId}` + type: string + Traffic: + id: Traffic + description: Controls traffic configuration for the backend. + type: object + properties: + target: + description: >- + Set to manually control the desired traffic for the backend. This + will cause `current` to eventually match this value. The percentages + must add up to 100%. + $ref: '#/components/schemas/TrafficSet' + rolloutPolicy: + description: >- + A rollout policy specifies how new builds and automatic deployments + are created. + $ref: '#/components/schemas/RolloutPolicy' + name: + description: >- + Identifier. The resource name of the backend's traffic. Format: + `projects/{project}/locations/{locationId}/backends/{backendId}/traffic`. + type: string + current: + description: >- + Output only. Current state of traffic allocation for the backend. + When setting `target`, this field may differ for some time until the + desired state is reached. + readOnly: true + $ref: '#/components/schemas/TrafficSet' + reconciling: + description: >- + Output only. A field that, if true, indicates that the system is + working to make the backend's `current` match the requested `target` + list. + readOnly: true + type: boolean + createTime: + description: Output only. Time at which the backend was created. + readOnly: true + type: string + format: google-datetime + updateTime: + description: Output only. Time at which the backend was last updated. + readOnly: true + type: string + format: google-datetime + labels: + description: >- + Optional. Unstructured key value map that can be used to organize + and categorize objects. + type: object + additionalProperties: + type: string + annotations: + description: >- + Optional. Unstructured key value map that may be set by external + tools to store and arbitrary metadata. They are not queryable and + should be preserved when modifying objects. + type: object + additionalProperties: + type: string + etag: + description: >- + Output only. Server-computed checksum based on other values; may be + sent on update or delete to ensure operation is done on expected + resource. + readOnly: true + type: string + uid: + description: Output only. System-assigned, unique identifier. + readOnly: true + type: string + TrafficSet: + id: TrafficSet + description: >- + A list of traffic splits that together represent where traffic is being + routed. + type: object + properties: + splits: + description: Required. The list of traffic splits. + type: array + items: + $ref: '#/components/schemas/TrafficSplit' + TrafficSplit: + id: TrafficSplit + description: The traffic allocation for the backend. + type: object + properties: + build: + description: Required. The build that traffic is being routed to. + type: string + percent: + description: >- + Required. The percentage of traffic to send to the build. Currently + must be 100% or 0%. + type: integer + format: int32 + RolloutPolicy: + id: RolloutPolicy + description: >- + The policy for how automatic builds and rollouts are triggered and + rolled out. + type: object + properties: + codebaseBranch: + description: >- + If set, specifies a branch that triggers a new build to be started + with this policy. Otherwise, no automatic rollouts will happen. + type: string + disabled: + description: >- + Optional. A flag that, if true, prevents automatic rollouts from + being created via this RolloutPolicy. + type: boolean + disabledTime: + description: >- + Output only. If `disabled` is set, the time at which the automatic + rollouts were disabled. + readOnly: true + type: string + format: google-datetime + ListBuildsResponse: + id: ListBuildsResponse + description: Message for response to list builds. + type: object + properties: + builds: + description: The list of builds. + type: array + items: + $ref: '#/components/schemas/Build' + nextPageToken: + description: >- + A token identifying the next page of results the server should + return. + type: string + unreachable: + description: Locations that could not be reached. + type: array + items: + type: string + Build: + id: Build + description: >- + A single build for a backend, at a specific point codebase reference tag + and point in time. Encapsulates several resources, including an Artifact + Registry container image, a Cloud Build invocation that built the image, + and the Cloud Run revision that uses that image. + type: object + properties: + name: + description: >- + Identifier. The resource name of the build. Format: + `projects/{project}/locations/{locationId}/backends/{backendId}/builds/{buildId}`. + type: string + displayName: + description: Optional. Human-readable name. 63 character limit. + type: string + state: + description: Output only. The state of the build. + readOnly: true + type: string + enumDescriptions: + - The build is in an unknown state. + - The build is building. + - >- + The build has completed and is awaiting the next step. This may + move to DEPLOYING once App Hosting starts to set up + infrastructure. + - The infrastructure for this build is being set up. + - >- + The infrastructure for this build is ready. The build may or may + not be serving traffic - see `Backend.traffic` for the current + state, or `Backend.traffic_statuses` for the desired state. + - The build has failed. + enum: + - STATE_UNSPECIFIED + - BUILDING + - BUILT + - DEPLOYING + - READY + - FAILED + errors: + description: >- + Output only. A list of all errors that occurred during an App + Hosting build. + readOnly: true + type: array + items: + $ref: '#/components/schemas/Error' + environment: + description: >- + Output only. The environment name of the backend when this build was + created. + readOnly: true + type: string + config: + description: Optional. Additional configuration of the service. + $ref: '#/components/schemas/Config' + image: + description: >- + Output only. The Artifact Registry [container + image](https://cloud.google.com/artifact-registry/docs/reference/rest/v1/projects.locations.repositories.dockerImages) + URI, used by the Cloud Run + [`revision`](https://cloud.google.com/run/docs/reference/rest/v2/projects.locations.services.revisions) + for this build. + readOnly: true + type: string + source: + description: Required. Immutable. The source for the build. + $ref: '#/components/schemas/BuildSource' + buildLogsUri: + description: >- + Output only. The location of the [Cloud Build + logs](https://cloud.google.com/build/docs/view-build-results) for + the build process. + readOnly: true + type: string + reconciling: + description: >- + Output only. A field that, if true, indicates that the build has an + ongoing LRO. + readOnly: true + type: boolean + createTime: + description: Output only. Time at which the build was created. + readOnly: true + type: string + format: google-datetime + updateTime: + description: Output only. Time at which the build was last updated. + readOnly: true + type: string + format: google-datetime + deleteTime: + description: Output only. Time at which the build was deleted. + readOnly: true + type: string + format: google-datetime + labels: + description: >- + Optional. Unstructured key value map that can be used to organize + and categorize objects. + type: object + additionalProperties: + type: string + annotations: + description: >- + Optional. Unstructured key value map that may be set by external + tools to store and arbitrary metadata. They are not queryable and + should be preserved when modifying objects. + type: object + additionalProperties: + type: string + uid: + description: Output only. System-assigned, unique identifier. + readOnly: true + type: string + etag: + description: >- + Output only. Server-computed checksum based on other values; may be + sent on update or delete to ensure operation is done on expected + resource. + readOnly: true + type: string + Error: + id: Error + description: >- + The container for the rpc status and source for any errors found during + the build process. + type: object + properties: + error: + description: >- + Output only. A status and (human readable) error message for the + build, if in a `FAILED` state. + readOnly: true + $ref: '#/components/schemas/Status' + errorSource: + description: >- + Output only. The source of the error for the build, if in a `FAILED` + state. + readOnly: true + type: string + enumDescriptions: + - >- + Indicates that generic error occurred outside of the Cloud Build + or Cloud Run processes, such as a pre-empted or user-canceled App + Hosting Build. + - >- + Indicates that the build failed during the Cloud Build process, + such as a build timeout. + - >- + Indicates that the build failed during the Cloud Run process, such + as a service creation failure. + enum: + - ERROR_SOURCE_UNSPECIFIED + - CLOUD_BUILD + - CLOUD_RUN + cloudResource: + description: Output only. Resource link + readOnly: true + type: string + Config: + id: Config + description: Additional configuration of the backend for this build. + type: object + properties: + runConfig: + description: >- + Optional. Additional configuration of the Cloud Run + [`service`](https://cloud.google.com/run/docs/reference/rest/v2/projects.locations.services#resource:-service). + $ref: '#/components/schemas/RunConfig' + env: + description: Optional. Environment variables for this build. + type: array + items: + $ref: '#/components/schemas/EnvironmentVariable' + RunConfig: + id: RunConfig + description: >- + Additional configuration to apply to the Cloud Run + [`service`](https://cloud.google.com/run/docs/reference/rest/v2/projects.locations.services#resource:-service). + type: object + properties: + cpu: + description: >- + Optional. Number of CPUs used for each serving instance. By default, + cpu defaults to the Cloud Run's default of 1.0. CPU can be set to + value 1, 2, 4, 6, or 8 CPUs, and for less than 1 CPU, a value from + 0.08 to less than 1.00, in increments of 0.01. If you set a value of + less than 1 CPU, you must set concurrency to 1, and CPU will only be + allocated during request processing. Increasing CPUs limit may + require increase in memory limits: - 4 CPUs: at least 2 GiB - 6 + CPUs: at least 4 GiB - 8 CPUs: at least 4 GiB + type: number + format: float + memoryMib: + description: >- + Optional. Amount of memory allocated for each serving instance in + MiB. By default, memory defaults to the Cloud Run's default where + each instance is allocated 512 MiB of memory. Memory can be set to + any integer value between 128 to 32768. Increasing memory limit may + require increase in CPUs limits: - Over 4 GiB: at least 2 CPUs - + Over 8 GiB: at least 4 CPUs - Over 16 GiB: at least 6 CPUs - Over 24 + GiB: at least 8 CPUs + type: integer + format: int32 + concurrency: + description: >- + Optional. Maximum number of requests that each Cloud Run instance + can receive. By default, each instance can receive Cloud Run's + default of up to 80 requests at the same time. Concurrency can be + set to any integer value up to 1000. + type: integer + format: int32 + maxInstances: + description: >- + Optional. Number of Cloud Run instances to maintain at maximum for + each revision. By default, each Cloud Run + [`service`](https://cloud.google.com/run/docs/reference/rest/v2/projects.locations.services#resource:-service) + scales out to Cloud Run's default of a maximum of 100 instances. The + maximum max_instances limit is based on your quota. See + https://cloud.google.com/run/docs/configuring/max-instances#limits. + type: integer + format: int32 + minInstances: + description: >- + Optional. Number of Cloud Run instances to maintain at minimum for + each Cloud Run Service. By default, there are no minimum. Even if + the service splits traffic across multiple revisions, the total + number of instances for a service will be capped at this value. + type: integer + format: int32 + EnvironmentVariable: + id: EnvironmentVariable + description: Environment variables for this build. + type: object + properties: + value: + description: >- + A plaintext value. This value is encrypted at rest, but all project + readers can view the value when reading your backend configuration. + type: string + secret: + description: >- + A fully qualified secret version. The value of the secret will be + accessed once while building the application and once per cold start + of the container at runtime. The service account used by Cloud Build + and by Cloud Run must each have the `secretmanager.versions.access` + permission on the secret. + type: string + variable: + description: >- + Required. The name of the environment variable. - Must be a valid + environment variable name (e.g. A-Z or underscores). - May not start + with "FIREBASE" or "GOOGLE". - May not be a reserved environment + variable for KNative/Cloud Run + type: string + availability: + description: >- + Optional. Where this variable should be made available. If left + unspecified, will be available in both BUILD and BACKEND. + type: array + items: + type: string + enumDescriptions: + - The default value, unspecified, which is unused. + - This value is available when creating a Build from source code. + - This value is available at runtime within Cloud Run. + enum: + - AVAILABILITY_UNSPECIFIED + - BUILD + - RUNTIME + BuildSource: + id: BuildSource + description: The source for the build. + type: object + properties: + codebase: + description: A codebase source. + $ref: '#/components/schemas/CodebaseSource' + container: + description: An Artifact Registry container image source. + $ref: '#/components/schemas/ContainerSource' + CodebaseSource: + id: CodebaseSource + description: >- + A codebase source, representing the state of the codebase that the build + will be created at. + type: object + properties: + branch: + description: The branch in the codebase to build from, using the latest commit. + type: string + commit: + description: The commit in the codebase to build from. + type: string + displayName: + description: >- + Output only. The human-friendly name to use for this Codebase when + displaying a build. We use the first eight characters of the SHA-1 + hash for GitHub.com. + readOnly: true + type: string + hash: + description: Output only. The full SHA-1 hash of a Git commit, if available. + readOnly: true + type: string + commitMessage: + description: Output only. The message of a codebase change. + readOnly: true + type: string + uri: + description: >- + Output only. A URI linking to the codebase on an hosting provider's + website. May not be valid if the commit has been rebased or + force-pushed out of existence in the linked repository. + readOnly: true + type: string + author: + description: >- + Output only. The author contained in the metadata of a version + control change. + readOnly: true + $ref: '#/components/schemas/UserMetadata' + commitTime: + description: Output only. The time the change was made. + readOnly: true + type: string + format: google-datetime + UserMetadata: + id: UserMetadata + description: >- + Version control metadata for a user associated with a resolved codebase. + Currently assumes a Git user. + type: object + properties: + displayName: + description: >- + Output only. The 'name' field in a Git user's git.config. Required + by Git. + readOnly: true + type: string + email: + description: >- + Output only. The 'email' field in a Git user's git.config, if + available. + readOnly: true + type: string + imageUri: + description: >- + Output only. The URI of an image file associated with the user's + account in an external source control provider, if available. + readOnly: true + type: string + ContainerSource: + id: ContainerSource + description: >- + The URI of an Artifact Registry [container + image](https://cloud.google.com/artifact-registry/docs/reference/rest/v1/projects.locations.repositories.dockerImages) + to use as the build source. + type: object + properties: + image: + description: Required. A URI representing a container for the backend to use. + type: string + ListRolloutsResponse: + id: ListRolloutsResponse + description: Message for response to list rollouts. + type: object + properties: + rollouts: + description: The list of rollouts. + type: array + items: + $ref: '#/components/schemas/Rollout' + nextPageToken: + description: >- + A token identifying the next page of results the server should + return. + type: string + unreachable: + description: Locations that could not be reached. + type: array + items: + type: string + Rollout: + id: Rollout + description: A single rollout of a build for a backend. + type: object + properties: + name: + description: >- + Identifier. The resource name of the rollout. Format: + `projects/{project}/locations/{locationId}/backends/{backendId}/rollouts/{rolloutId}`. + type: string + displayName: + description: Optional. Human-readable name. 63 character limit. + type: string + state: + description: Output only. The state of the rollout. + readOnly: true + type: string + enumDescriptions: + - The rollout is in an unknown state. + - >- + The rollout is waiting for actuation to begin. This may be because + it is waiting on another rollout to complete. + - >- + The rollout is waiting for the build process to complete, which + builds the code and sets up the underlying infrastructure. + - The rollout has started and is actively modifying traffic. + - >- + The rollout has been paused due to either being manually paused or + a PAUSED stage. This should be set while `paused = true`. + - The rollout has completed. + - The rollout has failed. See error for more information. + - The rollout has been cancelled. + enum: + - STATE_UNSPECIFIED + - QUEUED + - PENDING_BUILD + - PROGRESSING + - PAUSED + - SUCCEEDED + - FAILED + - CANCELLED + error: + description: >- + Output only. A status and (human readable) error message for the + rollout, if in a `FAILED` state. + readOnly: true + $ref: '#/components/schemas/Status' + build: + description: >- + Immutable. The name of a build that already exists. It doesn't have + to be built; a rollout will wait for a build to be ready before + updating traffic. + type: string + reconciling: + description: >- + Output only. A field that, if true, indicates that the Rollout + currently has an LRO. + readOnly: true + type: boolean + createTime: + description: Output only. Time at which the rollout was created. + readOnly: true + type: string + format: google-datetime + updateTime: + description: Output only. Time at which the rollout was last updated. + readOnly: true + type: string + format: google-datetime + deleteTime: + description: Output only. Time at which the rollout was deleted. + readOnly: true + type: string + format: google-datetime + labels: + description: >- + Optional. Unstructured key value map that can be used to organize + and categorize objects. + type: object + additionalProperties: + type: string + annotations: + description: >- + Optional. Unstructured key value map that may be set by external + tools to store and arbitrary metadata. They are not queryable and + should be preserved when modifying objects. + type: object + additionalProperties: + type: string + uid: + description: Output only. System-assigned, unique identifier. + readOnly: true + type: string + etag: + description: >- + Output only. Server-computed checksum based on other values; may be + sent on update or delete to ensure operation is done on expected + resource. + readOnly: true + type: string + ListDomainsResponse: + id: ListDomainsResponse + description: Message for response to list domains. + type: object + properties: + domains: + description: Output only. The list of domains. + readOnly: true + type: array + items: + $ref: '#/components/schemas/Domain' + nextPageToken: + description: >- + Output only. A token identifying the next page of results the server + should return. + readOnly: true + type: string + unreachable: + description: Output only. Locations that could not be reached. + readOnly: true + type: array + items: + type: string + Domain: + id: Domain + description: A domain name that is associated with a backend. + type: object + properties: + name: + description: >- + Identifier. The resource name of the domain, e.g. + `/projects/p/locations/l/backends/b/domains/foo.com` + type: string + displayName: + description: >- + Optional. Mutable human-readable name for the domain. 63 character + limit. e.g. `prod domain`. + type: string + createTime: + description: Output only. Time at which the domain was created. + readOnly: true + type: string + format: google-datetime + updateTime: + description: Output only. Time at which the domain was last updated. + readOnly: true + type: string + format: google-datetime + type: + description: Output only. The type of the domain. + readOnly: true + type: string + enumDescriptions: + - The type is unspecified (this should not happen). + - >- + Default, App Hosting-provided and managed domains. These domains + are created automatically with their parent backend and cannot be + deleted except by deleting that parent, and cannot be moved to + another backend. Default domains can be disabled via the + `disabled` field. + - >- + Custom, developer-owned domains. Custom Domains allow you to + associate a domain you own with your App Hosting backend, and + configure that domain to serve your backend's content. + enum: + - TYPE_UNSPECIFIED + - DEFAULT + - CUSTOM + disabled: + description: Optional. Whether the domain is disabled. Defaults to false. + type: boolean + serve: + description: >- + Optional. The serving behavior of the domain. If specified, the + domain will serve content other than its backend's live content. + $ref: '#/components/schemas/ServingBehavior' + customDomainStatus: + description: >- + Output only. Represents the state and configuration of a `CUSTOM` + type domain. It is only present on Domains of that type. + readOnly: true + $ref: '#/components/schemas/CustomDomainStatus' + reconciling: + description: >- + Output only. A field that, if true, indicates that the build has an + ongoing LRO. + readOnly: true + type: boolean + deleteTime: + description: Output only. Time at which the domain was deleted. + readOnly: true + type: string + format: google-datetime + labels: + description: Optional. Labels as key value pairs. + type: object + additionalProperties: + type: string + annotations: + description: Optional. Annotations as key value pairs. + type: object + additionalProperties: + type: string + uid: + description: Output only. System-assigned, unique identifier. + readOnly: true + type: string + etag: + description: >- + Output only. Server-computed checksum based on other values; may be + sent on update or delete to ensure operation is done on expected + resource. + readOnly: true + type: string + ServingBehavior: + id: ServingBehavior + description: Indicates whether App Hosting will serve content on the domain. + type: object + properties: + redirect: + description: Optional. Redirect behavior for a domain, if provided. + $ref: '#/components/schemas/Redirect' + Redirect: + id: Redirect + description: Specifies redirect behavior for a domain. + type: object + properties: + uri: + description: >- + Required. The URI of the redirect's intended destination. This URI + will be prepended to the original request path. URI without a scheme + are assumed to be HTTPS. + type: string + status: + description: >- + Optional. The status code to use in a redirect response. Must be a + valid HTTP 3XX status code. Defaults to 302 if not present. + type: string + format: int64 + CustomDomainStatus: + id: CustomDomainStatus + description: The status of a custom domain's linkage to a backend. + type: object + properties: + hostState: + description: >- + Output only. Tracks whether a custom domain is detected as + appropriately directing traffic to App Hosting. + readOnly: true + type: string + enumDescriptions: + - >- + Your custom domain's host state is unspecified. The message is + invalid if this is unspecified. + - Your custom domain isn't associated with any IP addresses. + - >- + Your custom domain can't be reached. App Hosting services' DNS + queries to find your domain's IP addresses resulted in errors. See + your `CustomDomainStatus`'s `issues` field for more details. + - >- + Your domain has only IP addresses that don't ultimately resolve to + App Hosting. + - >- + Your domain has IP addresses that resolve to both App Hosting and + to other services. To ensure consistent results, remove `A` and + `AAAA` records related to non-App-Hosting services. + - >- + Your domain has IP addresses that resolve to an incorrect instance + of the App Hosting Data Plane. App Hosting has multiple data plane + instances to ensure high availability. The SSL certificate that + App Hosting creates for your domain is only available on its + assigned instance. If your domain's IP addresses resolve to an + incorrect instance, App Hosting won't be able to serve secure + content on it. + - >- + All requests against your domain are served by App Hosting, via + your domain's assigned shard. If the custom domain's + `OwnershipState` is also `OWNERSHIP_ACTIVE`, App Hosting serves + its backend's content on requests for the domain. + enum: + - HOST_STATE_UNSPECIFIED + - HOST_UNHOSTED + - HOST_UNREACHABLE + - HOST_NON_FAH + - HOST_CONFLICT + - HOST_WRONG_SHARD + - HOST_ACTIVE + ownershipState: + description: >- + Output only. Tracks whether the backend is permitted to serve + content on the domain, based off the domain's DNS records. + readOnly: true + type: string + enumDescriptions: + - >- + Your custom domain's ownership state is unspecified. This should + never happen. + - >- + Your custom domain's domain has no App-Hosting-related ownership + records; no backend is authorized to serve on the domain in this + Origin shard. + - >- + Your custom domain can't be reached. App Hosting services' DNS + queries to find your domain's ownership records resulted in + errors. See your `CustomDomainStatus`'s `issues` field for more + details. + - >- + Your custom domain is owned by another App Hosting custom domain. + Remove the conflicting records and replace them with records for + your current custom domain. + - >- + Your custom domain has conflicting `TXT` records that indicate + ownership by both your current custom domain one or more others. + Remove the extraneous ownership records to grant the current + custom domain ownership. + - >- + Your custom domain's DNS records are configured correctly. App + Hosting will transfer ownership of your domain to this custom + domain within 24 hours. + - Your custom domain owns its domain. + enum: + - OWNERSHIP_STATE_UNSPECIFIED + - OWNERSHIP_MISSING + - OWNERSHIP_UNREACHABLE + - OWNERSHIP_MISMATCH + - OWNERSHIP_CONFLICT + - OWNERSHIP_PENDING + - OWNERSHIP_ACTIVE + certState: + description: Output only. Tracks SSL certificate status for the domain. + readOnly: true + type: string + enumDescriptions: + - >- + The certificate's state is unspecified. The message is invalid if + this is unspecified. + - >- + The initial state of every certificate, represents App Hosting's + intent to create a certificate before requests to a Certificate + Authority are made. + - >- + App Hosting is validating whether a domain name's DNS records are + in a state that allow certificate creation on its behalf. + - >- + The certificate was recently created, and needs time to propagate + in App Hosting's load balancers. + - >- + The certificate is active, providing secure connections for the + domain names it represents. + - >- + The certificate is expiring, all domain names on it will be given + new certificates. + - >- + The certificate has expired. App Hosting can no longer serve + secure content on your domain name. + enum: + - CERT_STATE_UNSPECIFIED + - CERT_PREPARING + - CERT_VALIDATING + - CERT_PROPAGATING + - CERT_ACTIVE + - CERT_EXPIRING_SOON + - CERT_EXPIRED + requiredDnsUpdates: + description: >- + Output only. Lists the records that must added or removed to a + custom domain's DNS in order to finish setup and start serving + content. Field is present during onboarding. Also present after + onboarding if one or more of the above states is not *_ACTIVE, + indicating the domain's DNS records are in a bad state. + readOnly: true + type: array + items: + $ref: '#/components/schemas/DnsUpdates' + issues: + description: >- + Output only. A list of issues with domain configuration. Allows + users to self-correct problems with DNS records. + readOnly: true + type: array + items: + $ref: '#/components/schemas/Status' + DnsUpdates: + id: DnsUpdates + description: >- + A set of DNS record updates that you should make to allow App Hosting to + serve secure content in response to requests against your domain. These + updates present the current state of your domain's and related + subdomains' DNS records when App Hosting last queried them, and the + desired set of records that App Hosting needs to see before your custom + domain can be fully active. + type: object + properties: + domainName: + description: Output only. The domain name the DNS updates pertain to. + readOnly: true + type: string + discovered: + description: >- + Output only. The set of DNS records App Hosting discovered when + inspecting a domain. + readOnly: true + type: array + items: + $ref: '#/components/schemas/DnsRecordSet' + desired: + description: >- + Output only. The set of DNS records App Hosting needs in order to be + able to serve secure content on the domain. + readOnly: true + type: array + items: + $ref: '#/components/schemas/DnsRecordSet' + checkTime: + description: >- + Output only. The last time App Hosting checked your custom domain's + DNS records. + readOnly: true + type: string + format: google-datetime + DnsRecordSet: + id: DnsRecordSet + description: >- + A set of DNS records relevant to the setup and maintenance of a custom + domain in App Hosting. + type: object + properties: + domainName: + description: Output only. The domain name the record set pertains to. + readOnly: true + type: string + checkError: + description: >- + Output only. An error App Hosting services encountered when querying + your domain's DNS records. Note: App Hosting ignores `NXDOMAIN` + errors, as those generally just mean that a domain name hasn't been + set up yet. + readOnly: true + $ref: '#/components/schemas/Status' + records: + description: Output only. Records on the domain. + readOnly: true + type: array + items: + $ref: '#/components/schemas/DnsRecord' + DnsRecord: + id: DnsRecord + description: >- + A representation of a DNS records for a domain. DNS records are resource + records that define how systems and services should behave when handling + requests for a domain. For example, when you add `A` records to your + domain's DNS records, you're informing other systems (such as your + users' web browsers) to contact those IPv4 addresses to retrieve + resources relevant to your domain (such as your App Hosting files). + type: object + properties: + domainName: + description: Output only. The domain the record pertains to, e.g. `foo.bar.com.`. + readOnly: true + type: string + type: + description: >- + Output only. The record's type, which determines what data the + record contains. + readOnly: true + type: string + enumDescriptions: + - >- + The record's type is unspecified. The message is invalid if this + is unspecified. + - >- + An `A` record, as defined in [RFC + 1035](https://tools.ietf.org/html/rfc1035). A records determine + which IPv4 addresses a domain directs traffic towards. + - >- + A `CNAME` record, as defined in [RFC + 1035](https://tools.ietf.org/html/rfc1035). `CNAME` or Canonical + Name records map a domain to a different, canonical domain. If a + `CNAME` record is present, it should be the only record on the + domain. + - >- + A `TXT` record, as defined in [RFC + 1035](https://tools.ietf.org/html/rfc1035). `TXT` records hold + arbitrary text data on a domain. Hosting uses `TXT` records to + establish which Firebase Project has permission to act on a + domain. + - >- + An AAAA record, as defined in [RFC + 3596](https://tools.ietf.org/html/rfc3596) AAAA records determine + which IPv6 addresses a domain directs traffic towards. + - >- + A CAA record, as defined in [RFC + 6844](https://tools.ietf.org/html/rfc6844). CAA, or Certificate + Authority Authorization, records determine which Certificate + Authorities (SSL certificate minting organizations) are authorized + to mint a certificate for the domain. App Hosting uses `pki.goog` + as its primary CA. CAA records cascade. A CAA record on `foo.com` + also applies to `bar.foo.com` unless `bar.foo.com` has its own set + of CAA records. CAA records are optional. If a domain and its + parents have no CAA records, all CAs are authorized to mint + certificates on its behalf. In general, App Hosting only asks you + to modify CAA records when doing so is required to unblock SSL + cert creation. + enum: + - TYPE_UNSPECIFIED + - A + - CNAME + - TXT + - AAAA + - CAA + rdata: + description: >- + Output only. The data of the record. The meaning of the value + depends on record type: - A and AAAA: IP addresses for the domain. - + CNAME: Another domain to check for records. - TXT: Arbitrary text + strings associated with the domain. App Hosting uses TXT records to + determine which Firebase projects have permission to act on the + domain's behalf. - CAA: The record's flags, tag, and value, e.g. `0 + issue "pki.goog"`. + readOnly: true + type: string + requiredAction: + description: >- + Output only. An enum that indicates the a required action for this + record. Populated when the record is part of a required change in a + `DnsUpdates` `discovered` or `desired` record set. + readOnly: true + type: string + enumDescriptions: + - No action necessary. + - Add this record to your DNS records. + - Remove this record from your DNS records. + enum: + - NONE + - ADD + - REMOVE + relevantState: + description: >- + Output only. An enum that indicates which state(s) this DNS record + applies to. Populated for all records with an `ADD` or `REMOVE` + required action. + readOnly: true + type: array + items: + type: string + enumDescriptions: + - This message is invalid if this is unspecified. + - The custom domain's host state. + - The custom domain's ownership state. + - The custom domain's certificate state. + enum: + - CUSTOM_DOMAIN_STATE_UNSPECIFIED + - HOST_STATE + - OWNERSHIP_STATE + - CERT_STATE + ListLocationsResponse: + id: ListLocationsResponse + description: The response message for Locations.ListLocations. + type: object + properties: + locations: + description: >- + A list of locations that matches the specified filter in the + request. + type: array + items: + $ref: '#/components/schemas/Location' + nextPageToken: + description: The standard List next-page token. + type: string + Location: + id: Location + description: A resource that represents a Google Cloud location. + type: object + properties: + name: + description: >- + Resource name for the location, which may vary between + implementations. For example: + `"projects/example-project/locations/us-east1"` + type: string + locationId: + description: 'The canonical id for this location. For example: `"us-east1"`.' + type: string + displayName: + description: >- + The friendly name for this location, typically a nearby city name. + For example, "Tokyo". + type: string + labels: + description: >- + Cross-service attributes for the location. For example + {"cloud.googleapis.com/region": "us-east1"} + type: object + additionalProperties: + type: string + metadata: + description: >- + Service-specific metadata. For example the available capacity at the + given location. + type: object + additionalProperties: + type: any + description: Properties of the object. Contains field @type with type URL. + OperationMetadata: + id: OperationMetadata + description: Represents the metadata of a long-running operation. + type: object + properties: + createTime: + description: Output only. The time the operation was created. + readOnly: true + type: string + format: google-datetime + endTime: + description: Output only. The time the operation finished running. + readOnly: true + type: string + format: google-datetime + target: + description: >- + Output only. Server-defined resource path for the target of the + operation. + readOnly: true + type: string + verb: + description: Output only. Name of the verb executed by the operation. + readOnly: true + type: string + statusMessage: + description: Output only. Human-readable status of the operation, if any. + readOnly: true + type: string + requestedCancellation: + description: >- + Output only. Identifies whether the user has requested cancellation + of the operation. Operations that have been cancelled successfully + have Operation.error value with a google.rpc.Status.code of 1, + corresponding to `Code.CANCELLED`. + readOnly: true + type: boolean + apiVersion: + description: Output only. API version used to start the operation. + readOnly: true + type: string + DomainOperationMetadata: + id: DomainOperationMetadata + description: Represents the metadata of a long-running operation on domains. + type: object + properties: + createTime: + description: Output only. The time the operation was created. + readOnly: true + type: string + format: google-datetime + endTime: + description: Output only. The time the operation finished running. + readOnly: true + type: string + format: google-datetime + target: + description: >- + Output only. Server-defined resource path for the target of the + operation. + readOnly: true + type: string + verb: + description: Output only. Name of the verb executed by the operation. + readOnly: true + type: string + statusMessage: + description: Output only. Human-readable status of the operation, if any. + readOnly: true + type: string + requestedCancellation: + description: >- + Output only. Identifies whether the user has requested cancellation + of the operation. Operations that have been cancelled successfully + have Operation.error value with a google.rpc.Status.code of 1, + corresponding to `Code.CANCELLED`. + readOnly: true + type: boolean + apiVersion: + description: Output only. API version used to start the operation. + readOnly: true + type: string + customDomainOperationMetadata: + description: Output only. Additional metadata for operations on custom domains. + readOnly: true + $ref: '#/components/schemas/CustomDomainOperationMetadata' + CustomDomainOperationMetadata: + id: CustomDomainOperationMetadata + description: Additional metadata for operations on custom domains. + type: object + properties: + hostState: + description: >- + Output only. The custom domain's `HostState`, which must be + `HOST_ACTIVE` for Create operations of the domain name this + `CustomDomain` refers toto complete. + readOnly: true + type: string + enumDescriptions: + - >- + Your custom domain's host state is unspecified. The message is + invalid if this is unspecified. + - Your custom domain isn't associated with any IP addresses. + - >- + Your custom domain can't be reached. App Hosting services' DNS + queries to find your domain's IP addresses resulted in errors. See + your `CustomDomainStatus`'s `issues` field for more details. + - >- + Your domain has only IP addresses that don't ultimately resolve to + App Hosting. + - >- + Your domain has IP addresses that resolve to both App Hosting and + to other services. To ensure consistent results, remove `A` and + `AAAA` records related to non-App-Hosting services. + - >- + Your domain has IP addresses that resolve to an incorrect instance + of the App Hosting Data Plane. App Hosting has multiple data plane + instances to ensure high availability. The SSL certificate that + App Hosting creates for your domain is only available on its + assigned instance. If your domain's IP addresses resolve to an + incorrect instance, App Hosting won't be able to serve secure + content on it. + - >- + All requests against your domain are served by App Hosting, via + your domain's assigned shard. If the custom domain's + `OwnershipState` is also `OWNERSHIP_ACTIVE`, App Hosting serves + its backend's content on requests for the domain. + enum: + - HOST_STATE_UNSPECIFIED + - HOST_UNHOSTED + - HOST_UNREACHABLE + - HOST_NON_FAH + - HOST_CONFLICT + - HOST_WRONG_SHARD + - HOST_ACTIVE + ownershipState: + description: >- + Output only. The custom domain's `OwnershipState`, which must be + `OWNERSHIP_ACTIVE` for the create operations to complete. + readOnly: true + type: string + enumDescriptions: + - >- + Your custom domain's ownership state is unspecified. This should + never happen. + - >- + Your custom domain's domain has no App-Hosting-related ownership + records; no backend is authorized to serve on the domain in this + Origin shard. + - >- + Your custom domain can't be reached. App Hosting services' DNS + queries to find your domain's ownership records resulted in + errors. See your `CustomDomainStatus`'s `issues` field for more + details. + - >- + Your custom domain is owned by another App Hosting custom domain. + Remove the conflicting records and replace them with records for + your current custom domain. + - >- + Your custom domain has conflicting `TXT` records that indicate + ownership by both your current custom domain one or more others. + Remove the extraneous ownership records to grant the current + custom domain ownership. + - >- + Your custom domain's DNS records are configured correctly. App + Hosting will transfer ownership of your domain to this custom + domain within 24 hours. + - Your custom domain owns its domain. + enum: + - OWNERSHIP_STATE_UNSPECIFIED + - OWNERSHIP_MISSING + - OWNERSHIP_UNREACHABLE + - OWNERSHIP_MISMATCH + - OWNERSHIP_CONFLICT + - OWNERSHIP_PENDING + - OWNERSHIP_ACTIVE + certState: + description: >- + Output only. The custom domain's `CertState`, which must be + `CERT_ACTIVE` for the create operations to complete. + readOnly: true + type: string + enumDescriptions: + - >- + The certificate's state is unspecified. The message is invalid if + this is unspecified. + - >- + The initial state of every certificate, represents App Hosting's + intent to create a certificate before requests to a Certificate + Authority are made. + - >- + App Hosting is validating whether a domain name's DNS records are + in a state that allow certificate creation on its behalf. + - >- + The certificate was recently created, and needs time to propagate + in App Hosting's load balancers. + - >- + The certificate is active, providing secure connections for the + domain names it represents. + - >- + The certificate is expiring, all domain names on it will be given + new certificates. + - >- + The certificate has expired. App Hosting can no longer serve + secure content on your domain name. + enum: + - CERT_STATE_UNSPECIFIED + - CERT_PREPARING + - CERT_VALIDATING + - CERT_PROPAGATING + - CERT_ACTIVE + - CERT_EXPIRING_SOON + - CERT_EXPIRED + issues: + description: >- + Output only. A list of issues that are currently preventing the + operation from completing. These are generally DNS-related issues + encountered when querying a domain's records or attempting to mint + an SSL certificate. + readOnly: true + type: array + items: + $ref: '#/components/schemas/Status' + quickSetupUpdates: + description: >- + Output only. A set of DNS record updates to perform, to allow App + Hosting to serve secure content on the domain. + readOnly: true + type: array + items: + $ref: '#/components/schemas/DnsUpdates' + liveMigrationSteps: + description: >- + Output only. A list of steps that the user must complete to migrate + their domain to App Hosting without downtime. + readOnly: true + type: array + items: + $ref: '#/components/schemas/LiveMigrationStep' + LiveMigrationStep: + id: LiveMigrationStep + description: >- + A set of updates including ACME challenges and DNS records that allow + App Hosting to create an SSL certificate and establish project ownership + for your domain name before you direct traffic to App Hosting servers. + Use these updates to facilitate zero downtime migrations to App Hosting + from other services. After you've made the recommended updates, check + your custom domain's `ownershipState` and `certState`. To avoid + downtime, they should be `OWNERSHIP_ACTIVE` and `CERT_ACTIVE`, + respectively, before you update your `A` and `AAAA` records. + type: object + properties: + stepState: + description: >- + Output only. The state of the live migration step, indicates whether + you should work to complete the step now, in the future, or have + already completed it. + readOnly: true + type: string + enumDescriptions: + - >- + The step's state is unspecified. The message is invalid if this is + unspecified. + - >- + App Hosting doesn't have enough information to construct the step + yet. Complete any prior steps and/or resolve this step's issue to + proceed. + - >- + The step's state is pending. Complete prior steps before working + on a `PENDING` step. + - >- + The step is incomplete. You should complete any `dnsUpdates` + changes to complete it. + - >- + You've done your part to update records and present challenges as + necessary. App Hosting is now completing background processes to + complete the step, e.g. minting an SSL cert for your domain. + - >- + The step is complete. You've already made the necessary changes to + your domain and/or prior hosting service to advance to the next + step. Once all steps are complete, App Hosting is ready to serve + secure content on your domain. + enum: + - STEP_STATE_UNSPECIFIED + - PREPARING + - PENDING + - INCOMPLETE + - PROCESSING + - COMPLETE + relevantDomainStates: + description: >- + Output only. One or more states from the `CustomDomainStatus` of the + migrating domain that this step is attempting to make ACTIVE. For + example, if the step is attempting to mint an SSL certificate, this + field will include `CERT_STATE`. + readOnly: true + type: array + items: + type: string + enumDescriptions: + - This message is invalid if this is unspecified. + - The custom domain's host state. + - The custom domain's ownership state. + - The custom domain's certificate state. + enum: + - CUSTOM_DOMAIN_STATE_UNSPECIFIED + - HOST_STATE + - OWNERSHIP_STATE + - CERT_STATE + dnsUpdates: + description: >- + Output only. DNS updates to facilitate your domain's zero-downtime + migration to App Hosting. + readOnly: true + type: array + items: + $ref: '#/components/schemas/DnsUpdates' + issues: + description: Output only. Issues that prevent the current step from completing. + readOnly: true + type: array + items: + $ref: '#/components/schemas/Status' + parameters: + access_token: + description: OAuth access token. + in: query + name: access_token + schema: + type: string + alt: + description: Data format for response. + in: query + name: alt + schema: + type: string + enum: + - json + - media + - proto + callback: + description: JSONP + in: query + name: callback + schema: + type: string + fields: + description: Selector specifying which fields to include in a partial response. + in: query + name: fields + schema: + type: string + key: + description: >- + API key. Your API key identifies your project and provides you with API + access, quota, and reports. Required unless you provide an OAuth 2.0 + token. + in: query + name: key + schema: + type: string + oauth_token: + description: OAuth 2.0 token for the current user. + in: query + name: oauth_token + schema: + type: string + prettyPrint: + description: Returns response with indentations and line breaks. + in: query + name: prettyPrint + schema: + type: boolean + quotaUser: + description: >- + Available to use for quota purposes for server-side applications. Can be + any arbitrary string assigned to a user, but should not exceed 40 + characters. + in: query + name: quotaUser + schema: + type: string + upload_protocol: + description: Upload protocol for media (e.g. "raw", "multipart"). + in: query + name: upload_protocol + schema: + type: string + uploadType: + description: Legacy upload protocol for media (e.g. "media", "multipart"). + in: query + name: uploadType + schema: + type: string + _.xgafv: + description: V1 error format. + in: query + name: $.xgafv + schema: + type: string + enum: + - '1' + - '2' + x-stackQL-resources: + locations: + id: firebase.apphosting.locations + name: locations + title: Locations + methods: + list: + operation: + $ref: '#/paths/~1v1~1projects~1{projectsId}~1locations/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.locations + get: + operation: + $ref: '#/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/locations/methods/get' + - $ref: '#/components/x-stackQL-resources/locations/methods/list' + insert: [] + update: [] + replace: [] + delete: [] + operations: + id: firebase.apphosting.operations + name: operations + title: Operations + methods: + list: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1operations/get + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.operations + get: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1operations~1{operationsId}/get + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1operations~1{operationsId}/delete + response: + mediaType: application/json + openAPIDocKey: '200' + cancel: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1operations~1{operationsId}:cancel/post + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/operations/methods/get' + - $ref: '#/components/x-stackQL-resources/operations/methods/list' + insert: [] + update: [] + replace: [] + delete: + - $ref: '#/components/x-stackQL-resources/operations/methods/delete' + backends: + id: firebase.apphosting.backends + name: backends + title: Backends + methods: + list: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1backends/get + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.backends + create: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1backends/post + response: + mediaType: application/json + openAPIDocKey: '200' + get: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1backends~1{backendsId}/get + response: + mediaType: application/json + openAPIDocKey: '200' + patch: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1backends~1{backendsId}/patch + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1backends~1{backendsId}/delete + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/backends/methods/get' + - $ref: '#/components/x-stackQL-resources/backends/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/backends/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/backends/methods/patch' + replace: [] + delete: + - $ref: '#/components/x-stackQL-resources/backends/methods/delete' + traffic: + id: firebase.apphosting.traffic + name: traffic + title: Traffic + methods: + get: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1backends~1{backendsId}~1traffic/get + response: + mediaType: application/json + openAPIDocKey: '200' + patch: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1backends~1{backendsId}~1traffic/patch + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/traffic/methods/get' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/traffic/methods/patch' + replace: [] + delete: [] + builds: + id: firebase.apphosting.builds + name: builds + title: Builds + methods: + list: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1backends~1{backendsId}~1builds/get + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.builds + create: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1backends~1{backendsId}~1builds/post + response: + mediaType: application/json + openAPIDocKey: '200' + get: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1backends~1{backendsId}~1builds~1{buildsId}/get + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1backends~1{backendsId}~1builds~1{buildsId}/delete + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/builds/methods/get' + - $ref: '#/components/x-stackQL-resources/builds/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/builds/methods/create' + update: [] + replace: [] + delete: + - $ref: '#/components/x-stackQL-resources/builds/methods/delete' + rollouts: + id: firebase.apphosting.rollouts + name: rollouts + title: Rollouts + methods: + list: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1backends~1{backendsId}~1rollouts/get + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.rollouts + create: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1backends~1{backendsId}~1rollouts/post + response: + mediaType: application/json + openAPIDocKey: '200' + get: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1backends~1{backendsId}~1rollouts~1{rolloutsId}/get + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/rollouts/methods/get' + - $ref: '#/components/x-stackQL-resources/rollouts/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/rollouts/methods/create' + update: [] + replace: [] + delete: [] + domains: + id: firebase.apphosting.domains + name: domains + title: Domains + methods: + list: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1backends~1{backendsId}~1domains/get + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.domains + create: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1backends~1{backendsId}~1domains/post + response: + mediaType: application/json + openAPIDocKey: '200' + get: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1backends~1{backendsId}~1domains~1{domainsId}/get + response: + mediaType: application/json + openAPIDocKey: '200' + patch: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1backends~1{backendsId}~1domains~1{domainsId}/patch + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1backends~1{backendsId}~1domains~1{domainsId}/delete + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/domains/methods/get' + - $ref: '#/components/x-stackQL-resources/domains/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/domains/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/domains/methods/patch' + replace: [] + delete: + - $ref: '#/components/x-stackQL-resources/domains/methods/delete' +paths: + /v1/projects/{projectsId}/locations: + parameters: &ref_1 + - $ref: '#/components/parameters/access_token' + - $ref: '#/components/parameters/alt' + - $ref: '#/components/parameters/callback' + - $ref: '#/components/parameters/fields' + - $ref: '#/components/parameters/key' + - $ref: '#/components/parameters/oauth_token' + - $ref: '#/components/parameters/prettyPrint' + - $ref: '#/components/parameters/quotaUser' + - $ref: '#/components/parameters/upload_protocol' + - $ref: '#/components/parameters/uploadType' + - $ref: '#/components/parameters/_.xgafv' + get: + description: Lists information about the supported locations for this service. + operationId: firebaseapphosting.projects.locations.list + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/ListLocationsResponse' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: query + name: filter + schema: + type: string + - in: query + name: pageSize + schema: + type: integer + format: int32 + - in: query + name: pageToken + schema: + type: string + - in: query + name: extraLocationTypes + schema: + type: string + /v1/projects/{projectsId}/locations/{locationsId}: + parameters: *ref_1 + get: + description: Gets information about a location. + operationId: firebaseapphosting.projects.locations.get + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Location' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + /v1/projects/{projectsId}/locations/{locationsId}/operations: + parameters: *ref_1 + get: + description: >- + Lists operations that match the specified filter in the request. If the + server doesn't support this method, it returns `UNIMPLEMENTED`. + operationId: firebaseapphosting.projects.locations.operations.list + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/ListOperationsResponse' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: query + name: filter + schema: + type: string + - in: query + name: pageSize + schema: + type: integer + format: int32 + - in: query + name: pageToken + schema: + type: string + /v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}: + parameters: *ref_1 + get: + description: >- + Gets the latest state of a long-running operation. Clients can use this + method to poll the operation result at intervals as recommended by the + API service. + operationId: firebaseapphosting.projects.locations.operations.get + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: operationsId + required: true + schema: + type: string + delete: + description: >- + Deletes a long-running operation. This method indicates that the client + is no longer interested in the operation result. It does not cancel the + operation. If the server doesn't support this method, it returns + `google.rpc.Code.UNIMPLEMENTED`. + operationId: firebaseapphosting.projects.locations.operations.delete + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Empty' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: operationsId + required: true + schema: + type: string + /v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel: + parameters: *ref_1 + post: + description: >- + Starts asynchronous cancellation on a long-running operation. The server + makes a best effort to cancel the operation, but success is not + guaranteed. If the server doesn't support this method, it returns + `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation + or other methods to check whether the cancellation succeeded or whether + the operation completed despite cancellation. On successful + cancellation, the operation is not deleted; instead, it becomes an + operation with an Operation.error value with a google.rpc.Status.code of + `1`, corresponding to `Code.CANCELLED`. + operationId: firebaseapphosting.projects.locations.operations.cancel + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CancelOperationRequest' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Empty' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: operationsId + required: true + schema: + type: string + /v1/projects/{projectsId}/locations/{locationsId}/backends: + parameters: *ref_1 + get: + description: Lists backends in a given project and location. + operationId: firebaseapphosting.projects.locations.backends.list + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/ListBackendsResponse' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: query + name: pageSize + schema: + type: integer + format: int32 + - in: query + name: pageToken + schema: + type: string + - in: query + name: filter + schema: + type: string + - in: query + name: orderBy + schema: + type: string + - in: query + name: showDeleted + schema: + type: boolean + post: + description: Creates a new backend in a given project and location. + operationId: firebaseapphosting.projects.locations.backends.create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Backend' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: query + name: backendId + schema: + type: string + - in: query + name: requestId + schema: + type: string + - in: query + name: validateOnly + schema: + type: boolean + /v1/projects/{projectsId}/locations/{locationsId}/backends/{backendsId}: + parameters: *ref_1 + get: + description: Gets information about a backend. + operationId: firebaseapphosting.projects.locations.backends.get + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Backend' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: backendsId + required: true + schema: + type: string + patch: + description: Updates the information for a single backend. + operationId: firebaseapphosting.projects.locations.backends.patch + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Backend' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: backendsId + required: true + schema: + type: string + - in: query + name: updateMask + schema: + type: string + format: google-fieldmask + - in: query + name: requestId + schema: + type: string + - in: query + name: validateOnly + schema: + type: boolean + - in: query + name: allowMissing + schema: + type: boolean + delete: + description: Deletes a single backend. + operationId: firebaseapphosting.projects.locations.backends.delete + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: backendsId + required: true + schema: + type: string + - in: query + name: requestId + schema: + type: string + - in: query + name: force + schema: + type: boolean + - in: query + name: validateOnly + schema: + type: boolean + - in: query + name: etag + schema: + type: string + /v1/projects/{projectsId}/locations/{locationsId}/backends/{backendsId}/traffic: + parameters: *ref_1 + get: + description: Gets information about a backend's traffic. + operationId: firebaseapphosting.projects.locations.backends.traffic.get + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Traffic' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: backendsId + required: true + schema: + type: string + patch: + description: Updates a backend's traffic. + operationId: firebaseapphosting.projects.locations.backends.traffic.patch + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Traffic' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: backendsId + required: true + schema: + type: string + - in: query + name: updateMask + schema: + type: string + format: google-fieldmask + - in: query + name: requestId + schema: + type: string + - in: query + name: validateOnly + schema: + type: boolean + /v1/projects/{projectsId}/locations/{locationsId}/backends/{backendsId}/builds: + parameters: *ref_1 + get: + description: Lists builds in a given project, location, and backend. + operationId: firebaseapphosting.projects.locations.backends.builds.list + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/ListBuildsResponse' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: backendsId + required: true + schema: + type: string + - in: query + name: pageSize + schema: + type: integer + format: int32 + - in: query + name: pageToken + schema: + type: string + - in: query + name: filter + schema: + type: string + - in: query + name: orderBy + schema: + type: string + - in: query + name: showDeleted + schema: + type: boolean + post: + description: Creates a new build for a backend. + operationId: firebaseapphosting.projects.locations.backends.builds.create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Build' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: backendsId + required: true + schema: + type: string + - in: query + name: buildId + schema: + type: string + - in: query + name: requestId + schema: + type: string + - in: query + name: validateOnly + schema: + type: boolean + /v1/projects/{projectsId}/locations/{locationsId}/backends/{backendsId}/builds/{buildsId}: + parameters: *ref_1 + get: + description: Gets information about a build. + operationId: firebaseapphosting.projects.locations.backends.builds.get + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Build' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: backendsId + required: true + schema: + type: string + - in: path + name: buildsId + required: true + schema: + type: string + delete: + description: Deletes a single build. + operationId: firebaseapphosting.projects.locations.backends.builds.delete + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: backendsId + required: true + schema: + type: string + - in: path + name: buildsId + required: true + schema: + type: string + - in: query + name: requestId + schema: + type: string + - in: query + name: etag + schema: + type: string + - in: query + name: validateOnly + schema: + type: boolean + /v1/projects/{projectsId}/locations/{locationsId}/backends/{backendsId}/rollouts: + parameters: *ref_1 + get: + description: Lists rollouts for a backend. + operationId: firebaseapphosting.projects.locations.backends.rollouts.list + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/ListRolloutsResponse' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: backendsId + required: true + schema: + type: string + - in: query + name: pageSize + schema: + type: integer + format: int32 + - in: query + name: pageToken + schema: + type: string + - in: query + name: filter + schema: + type: string + - in: query + name: orderBy + schema: + type: string + - in: query + name: showDeleted + schema: + type: boolean + post: + description: Creates a new rollout for a backend. + operationId: firebaseapphosting.projects.locations.backends.rollouts.create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Rollout' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: backendsId + required: true + schema: + type: string + - in: query + name: rolloutId + schema: + type: string + - in: query + name: requestId + schema: + type: string + - in: query + name: validateOnly + schema: + type: boolean + /v1/projects/{projectsId}/locations/{locationsId}/backends/{backendsId}/rollouts/{rolloutsId}: + parameters: *ref_1 + get: + description: Gets information about a rollout. + operationId: firebaseapphosting.projects.locations.backends.rollouts.get + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Rollout' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: backendsId + required: true + schema: + type: string + - in: path + name: rolloutsId + required: true + schema: + type: string + /v1/projects/{projectsId}/locations/{locationsId}/backends/{backendsId}/domains: + parameters: *ref_1 + get: + description: Lists domains of a backend. + operationId: firebaseapphosting.projects.locations.backends.domains.list + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/ListDomainsResponse' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: backendsId + required: true + schema: + type: string + - in: query + name: pageSize + schema: + type: integer + format: int32 + - in: query + name: pageToken + schema: + type: string + - in: query + name: filter + schema: + type: string + - in: query + name: orderBy + schema: + type: string + - in: query + name: showDeleted + schema: + type: boolean + post: + description: Links a new domain to a backend. + operationId: firebaseapphosting.projects.locations.backends.domains.create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Domain' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: backendsId + required: true + schema: + type: string + - in: query + name: domainId + schema: + type: string + - in: query + name: requestId + schema: + type: string + - in: query + name: validateOnly + schema: + type: boolean + /v1/projects/{projectsId}/locations/{locationsId}/backends/{backendsId}/domains/{domainsId}: + parameters: *ref_1 + get: + description: Gets information about a domain. + operationId: firebaseapphosting.projects.locations.backends.domains.get + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Domain' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: backendsId + required: true + schema: + type: string + - in: path + name: domainsId + required: true + schema: + type: string + patch: + description: Updates the information for a single domain. + operationId: firebaseapphosting.projects.locations.backends.domains.patch + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Domain' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: backendsId + required: true + schema: + type: string + - in: path + name: domainsId + required: true + schema: + type: string + - in: query + name: updateMask + schema: + type: string + format: google-fieldmask + - in: query + name: requestId + schema: + type: string + - in: query + name: validateOnly + schema: + type: boolean + - in: query + name: allowMissing + schema: + type: boolean + delete: + description: Deletes a single domain. + operationId: firebaseapphosting.projects.locations.backends.domains.delete + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: backendsId + required: true + schema: + type: string + - in: path + name: domainsId + required: true + schema: + type: string + - in: query + name: requestId + schema: + type: string + - in: query + name: etag + schema: + type: string + - in: query + name: validateOnly + schema: + type: boolean diff --git a/providers/src/firebase/v00.00.00000/services/firebasedatabase.yaml b/providers/src/firebase/v00.00.00000/services/database.yaml similarity index 70% rename from providers/src/firebase/v00.00.00000/services/firebasedatabase.yaml rename to providers/src/firebase/v00.00.00000/services/database.yaml index 8ac0646b..5b5e56b2 100644 --- a/providers/src/firebase/v00.00.00000/services/firebasedatabase.yaml +++ b/providers/src/firebase/v00.00.00000/services/database.yaml @@ -4,115 +4,159 @@ info: name: StackQL Studios url: https://github.com/stackql/google-discovery-to-openapi email: info@stackql.io - title: Firebase Realtime Database API - description: The Firebase Realtime Database API enables programmatic provisioning and management of Realtime Database instances. + title: Firebase Realtime Database Management API + description: >- + The Firebase Realtime Database API enables programmatic provisioning and + management of Realtime Database instances. version: v1beta - x-discovery-doc-revision: '20221221' - x-generated-date: '2023-01-06' + x-discovery-doc-revision: '20250826' + x-generated-date: '2025-08-28' externalDocs: - url: https://firebase.google.com/docs/reference/rest/database/database-management/rest/ + url: >- + https://firebase.google.com/docs/reference/rest/database/database-management/rest/ servers: - url: https://firebasedatabase.googleapis.com components: + securitySchemes: + Oauth2: + type: oauth2 + description: Oauth 2.0 implicit authentication + flows: + implicit: + authorizationUrl: https://accounts.google.com/o/oauth2/auth + scopes: &ref_0 + https://www.googleapis.com/auth/cloud-platform: >- + See, edit, configure, and delete your Google Cloud data and see + the email address for your Google Account. + https://www.googleapis.com/auth/cloud-platform.read-only: >- + View your data across Google Cloud services and see the email + address of your Google Account + https://www.googleapis.com/auth/firebase: View and administer all your Firebase data and settings + https://www.googleapis.com/auth/firebase.readonly: View all your Firebase data and settings + Oauth2c: + type: oauth2 + description: Oauth 2.0 authorization code authentication + flows: + authorizationCode: + authorizationUrl: https://accounts.google.com/o/oauth2/auth + tokenUrl: https://accounts.google.com/o/oauth2/token + scopes: *ref_0 schemas: - DisableDatabaseInstanceRequest: - properties: {} - type: object - id: DisableDatabaseInstanceRequest - description: The request sent to the DisableDatabaseInstance method. - ListDatabaseInstancesResponse: - type: object - description: The response from the ListDatabaseInstances method. - id: ListDatabaseInstancesResponse - properties: - nextPageToken: - type: string - description: If the result list is too large to fit in a single response, then a token is returned. If the string is empty, then this response is the last page of results. This token can be used in a subsequent call to `ListDatabaseInstances` to find the next group of database instances. Page tokens are short-lived and should not be persisted. - instances: - type: array - items: - $ref: '#/components/schemas/DatabaseInstance' - description: List of each DatabaseInstance that is in the parent Firebase project. - ReenableDatabaseInstanceRequest: - description: The request sent to the ReenableDatabaseInstance method. - properties: {} - type: object - id: ReenableDatabaseInstanceRequest - UndeleteDatabaseInstanceRequest: - type: object - description: The request sent to UndeleteDatabaseInstance method. - properties: {} - id: UndeleteDatabaseInstanceRequest DatabaseInstance: id: DatabaseInstance + description: >- + Representation of a Realtime Database instance. Details on interacting + with contents of a DatabaseInstance can be found at: + https://firebase.google.com/docs/database/rest/start. type: object - description: 'Representation of a Realtime Database instance. Details on interacting with contents of a DatabaseInstance can be found at: https://firebase.google.com/docs/database/rest/start.' properties: + name: + description: >- + The fully qualified resource name of the database instance, in the + form: + `projects/{project-number}/locations/{location-id}/instances/{database-id}`. + type: string + project: + description: >- + Output only. The resource name of the project this instance belongs + to. For example: `projects/{project-number}`. + readOnly: true + type: string + databaseUrl: + description: >- + Output only. Output Only. The globally unique hostname of the + database. + readOnly: true + type: string type: + description: >- + Immutable. The database instance type. On creation only + USER_DATABASE is allowed, which is also the default when omitted. + type: string enumDescriptions: - - Unknown state, likely the result of an error on the backend. This is only used for distinguishing unset values. - - The default database that is provisioned when a project is created. + - >- + Unknown state, likely the result of an error on the backend. This + is only used for distinguishing unset values. + - >- + The default database that is provisioned when a project is + created. - A database that the user created. - type: string enum: - DATABASE_INSTANCE_TYPE_UNSPECIFIED - DEFAULT_DATABASE - USER_DATABASE - description: Immutable. The database instance type. On creation only USER_DATABASE is allowed, which is also the default when omitted. - databaseUrl: - description: Output only. Output Only. The globally unique hostname of the database. - type: string + state: + description: Output only. The database's lifecycle state. Read-only. readOnly: true - name: type: string - description: 'The fully qualified resource name of the database instance, in the form: `projects/{project-number}/locations/{location-id}/instances/{database-id}`.' - project: - description: 'Output only. The resource name of the project this instance belongs to. For example: `projects/{project-number}`.' - type: string - readOnly: true - state: + enumDescriptions: + - >- + Unspecified state, likely the result of an error on the backend. + This is only used for distinguishing unset values. + - The normal and active state. + - The database is in a disabled state. It can be re-enabled later. + - The database is in a deleted state. enum: - LIFECYCLE_STATE_UNSPECIFIED - ACTIVE - DISABLED - DELETED - description: Output only. The database's lifecycle state. Read-only. - enumDescriptions: - - Unspecified state, likely the result of an error on the backend. This is only used for distinguishing unset values. - - The normal and active state. - - The database is in a disabled state. It can be re-enabled later. - - The database is in a deleted state. + ListDatabaseInstancesResponse: + id: ListDatabaseInstancesResponse + description: The response from the ListDatabaseInstances method. + type: object + properties: + instances: + description: >- + List of each DatabaseInstance that is in the parent Firebase + project. + type: array + items: + $ref: '#/components/schemas/DatabaseInstance' + nextPageToken: + description: >- + If the result list is too large to fit in a single response, then a + token is returned. If the string is empty, then this response is the + last page of results. This token can be used in a subsequent call to + `ListDatabaseInstances` to find the next group of database + instances. Page tokens are short-lived and should not be persisted. type: string - readOnly: true + UndeleteDatabaseInstanceRequest: + id: UndeleteDatabaseInstanceRequest + description: The request sent to UndeleteDatabaseInstance method. + type: object + properties: {} + DisableDatabaseInstanceRequest: + id: DisableDatabaseInstanceRequest + description: The request sent to the DisableDatabaseInstance method. + type: object + properties: {} + ReenableDatabaseInstanceRequest: + id: ReenableDatabaseInstanceRequest + description: The request sent to the ReenableDatabaseInstance method. + type: object + properties: {} parameters: - quotaUser: - description: Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. - in: query - name: quotaUser - schema: - type: string access_token: description: OAuth access token. in: query name: access_token schema: type: string - callback: - description: JSONP - in: query - name: callback - schema: - type: string - key: - description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token. + alt: + description: Data format for response. in: query - name: key + name: alt schema: type: string - upload_protocol: - description: Upload protocol for media (e.g. "raw", "multipart"). + enum: + - json + - media + - proto + callback: + description: JSONP in: query - name: upload_protocol + name: callback schema: type: string fields: @@ -121,22 +165,15 @@ components: name: fields schema: type: string - uploadType: - description: Legacy upload protocol for media (e.g. "media", "multipart"). - in: query - name: uploadType - schema: - type: string - alt: - description: Data format for response. + key: + description: >- + API key. Your API key identifies your project and provides you with API + access, quota, and reports. Required unless you provide an OAuth 2.0 + token. in: query - name: alt + name: key schema: type: string - enum: - - json - - media - - proto oauth_token: description: OAuth 2.0 token for the current user. in: query @@ -149,114 +186,131 @@ components: name: prettyPrint schema: type: boolean + quotaUser: + description: >- + Available to use for quota purposes for server-side applications. Can be + any arbitrary string assigned to a user, but should not exceed 40 + characters. + in: query + name: quotaUser + schema: + type: string + upload_protocol: + description: Upload protocol for media (e.g. "raw", "multipart"). + in: query + name: upload_protocol + schema: + type: string + uploadType: + description: Legacy upload protocol for media (e.g. "media", "multipart"). + in: query + name: uploadType + schema: + type: string _.xgafv: description: V1 error format. in: query - name: _.xgafv + name: $.xgafv schema: type: string enum: - '1' - '2' - securitySchemes: - Oauth2: - type: oauth2 - description: Oauth 2.0 implicit authentication - flows: - implicit: - authorizationUrl: https://accounts.google.com/o/oauth2/auth - scopes: &ref_0 - https://www.googleapis.com/auth/firebase: View and administer all your Firebase data and settings - https://www.googleapis.com/auth/cloud-platform: See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account. - https://www.googleapis.com/auth/firebase.readonly: View all your Firebase data and settings - https://www.googleapis.com/auth/cloud-platform.read-only: View your data across Google Cloud services and see the email address of your Google Account - Oauth2c: - type: oauth2 - description: Oauth 2.0 authorization code authentication - flows: - authorizationCode: - authorizationUrl: https://accounts.google.com/o/oauth2/auth - tokenUrl: https://accounts.google.com/o/oauth2/token - scopes: *ref_0 x-stackQL-resources: instances: - id: firebase.firebasedatabase.instances + id: firebase.database.instances name: instances title: Instances methods: - projects_locations_instances_reenable: + create: operation: - $ref: '#/paths/~1v1beta~1projects~1{projectsId}~1locations~1{locationsId}~1instances~1{instancesId}:reenable/post' + $ref: >- + #/paths/~1v1beta~1projects~1{projectsId}~1locations~1{locationsId}~1instances/post response: mediaType: application/json openAPIDocKey: '200' - projects_locations_instances_list: + list: operation: - $ref: '#/paths/~1v1beta~1projects~1{projectsId}~1locations~1{locationsId}~1instances/get' + $ref: >- + #/paths/~1v1beta~1projects~1{projectsId}~1locations~1{locationsId}~1instances/get response: mediaType: application/json openAPIDocKey: '200' - projects_locations_instances_create: + objectKey: $.instances + get: operation: - $ref: '#/paths/~1v1beta~1projects~1{projectsId}~1locations~1{locationsId}~1instances/post' + $ref: >- + #/paths/~1v1beta~1projects~1{projectsId}~1locations~1{locationsId}~1instances~1{instancesId}/get response: mediaType: application/json openAPIDocKey: '200' - projects_locations_instances_disable: + delete: operation: - $ref: '#/paths/~1v1beta~1projects~1{projectsId}~1locations~1{locationsId}~1instances~1{instancesId}:disable/post' + $ref: >- + #/paths/~1v1beta~1projects~1{projectsId}~1locations~1{locationsId}~1instances~1{instancesId}/delete response: mediaType: application/json openAPIDocKey: '200' - projects_locations_instances_undelete: + undelete: operation: - $ref: '#/paths/~1v1beta~1projects~1{projectsId}~1locations~1{locationsId}~1instances~1{instancesId}:undelete/post' + $ref: >- + #/paths/~1v1beta~1projects~1{projectsId}~1locations~1{locationsId}~1instances~1{instancesId}:undelete/post response: mediaType: application/json openAPIDocKey: '200' - projects_locations_instances_delete: + disable: operation: - $ref: '#/paths/~1v1beta~1projects~1{projectsId}~1locations~1{locationsId}~1instances~1{instancesId}/delete' + $ref: >- + #/paths/~1v1beta~1projects~1{projectsId}~1locations~1{locationsId}~1instances~1{instancesId}:disable/post response: mediaType: application/json openAPIDocKey: '200' - projects_locations_instances_get: + reenable: operation: - $ref: '#/paths/~1v1beta~1projects~1{projectsId}~1locations~1{locationsId}~1instances~1{instancesId}/get' + $ref: >- + #/paths/~1v1beta~1projects~1{projectsId}~1locations~1{locationsId}~1instances~1{instancesId}:reenable/post response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/instances/methods/projects_locations_instances_get' - - $ref: '#/components/x-stackQL-resources/instances/methods/projects_locations_instances_list' + - $ref: '#/components/x-stackQL-resources/instances/methods/get' + - $ref: '#/components/x-stackQL-resources/instances/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/instances/methods/projects_locations_instances_create' + - $ref: '#/components/x-stackQL-resources/instances/methods/create' update: [] + replace: [] delete: - - $ref: '#/components/x-stackQL-resources/instances/methods/projects_locations_instances_delete' + - $ref: '#/components/x-stackQL-resources/instances/methods/delete' paths: - /v1beta/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:reenable: + /v1beta/projects/{projectsId}/locations/{locationsId}/instances: parameters: &ref_1 - - $ref: '#/components/parameters/quotaUser' - $ref: '#/components/parameters/access_token' + - $ref: '#/components/parameters/alt' - $ref: '#/components/parameters/callback' - - $ref: '#/components/parameters/key' - - $ref: '#/components/parameters/upload_protocol' - $ref: '#/components/parameters/fields' - - $ref: '#/components/parameters/uploadType' - - $ref: '#/components/parameters/alt' + - $ref: '#/components/parameters/key' - $ref: '#/components/parameters/oauth_token' - $ref: '#/components/parameters/prettyPrint' + - $ref: '#/components/parameters/quotaUser' + - $ref: '#/components/parameters/upload_protocol' + - $ref: '#/components/parameters/uploadType' - $ref: '#/components/parameters/_.xgafv' post: - description: Enables a DatabaseInstance. The database must have been disabled previously using DisableDatabaseInstance. The state of a successfully reenabled DatabaseInstance is ACTIVE. - operationId: firebasedatabase.projects.locations.instances.reenable + description: >- + Requests that a new DatabaseInstance be created. The state of a + successfully created DatabaseInstance is ACTIVE. Only available for + projects on the Blaze plan. Projects can be upgraded using the Cloud + Billing API + https://cloud.google.com/billing/reference/rest/v1/projects/updateBillingInfo. + Note that it might take a few minutes for billing enablement state to + propagate to Firebase systems. + operationId: firebasedatabase.projects.locations.instances.create requestBody: content: application/json: schema: - $ref: '#/components/schemas/ReenableDatabaseInstanceRequest' + $ref: '#/components/schemas/DatabaseInstance' security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -284,17 +338,22 @@ paths: required: true schema: type: string - - in: path - name: instancesId - required: true + - in: query + name: databaseId schema: type: string - x-stackQL-resource: instances - x-stackQL-verb: exec - /v1beta/projects/{projectsId}/locations/{locationsId}/instances: - parameters: *ref_1 + - in: query + name: validateOnly + schema: + type: boolean get: - description: Lists each DatabaseInstance associated with the specified parent project. The list items are returned in no particular order, but will be a consistent view of the database instances when additional requests are made with a `pageToken`. The resulting list contains instances in any STATE. The list results may be stale by a few seconds. Use GetDatabaseInstance for consistent reads. + description: >- + Lists each DatabaseInstance associated with the specified parent + project. The list items are returned in no particular order, but will be + a consistent view of the database instances when additional requests are + made with a `pageToken`. The resulting list contains instances in any + STATE. The list results may be stale by a few seconds. Use + GetDatabaseInstance for consistent reads. operationId: firebasedatabase.projects.locations.instances.list security: - Oauth2: @@ -331,37 +390,41 @@ paths: required: true schema: type: string + - in: query + name: pageToken + schema: + type: string - in: query name: pageSize schema: type: integer + format: int32 - in: query name: showDeleted schema: type: boolean - - in: query - name: pageToken - schema: - type: string - x-stackQL-resource: instances - x-stackQL-verb: select - post: - description: Requests that a new DatabaseInstance be created. The state of a successfully created DatabaseInstance is ACTIVE. Only available for projects on the Blaze plan. Projects can be upgraded using the Cloud Billing API https://cloud.google.com/billing/reference/rest/v1/projects/updateBillingInfo. Note that it might take a few minutes for billing enablement state to propagate to Firebase systems. - operationId: firebasedatabase.projects.locations.instances.create - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DatabaseInstance' + /v1beta/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}: + parameters: *ref_1 + get: + description: Gets the DatabaseInstance identified by the specified resource name. + operationId: firebasedatabase.projects.locations.instances.get security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform Oauth2c: - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform.read-only + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform.read-only - Oauth2: - https://www.googleapis.com/auth/firebase Oauth2c: - https://www.googleapis.com/auth/firebase + - Oauth2: + - https://www.googleapis.com/auth/firebase.readonly + Oauth2c: + - https://www.googleapis.com/auth/firebase.readonly responses: '200': description: Successful response @@ -380,26 +443,19 @@ paths: required: true schema: type: string - - in: query - name: validateOnly - schema: - type: boolean - - in: query - name: databaseId + - in: path + name: instancesId + required: true schema: type: string - x-stackQL-resource: instances - x-stackQL-verb: insert - /v1beta/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:disable: - parameters: *ref_1 - post: - description: Disables a DatabaseInstance. The database can be re-enabled later using ReenableDatabaseInstance. When a database is disabled, all reads and writes are denied, including view access in the Firebase console. - operationId: firebasedatabase.projects.locations.instances.disable - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DisableDatabaseInstanceRequest' + delete: + description: >- + Marks a DatabaseInstance to be deleted. The DatabaseInstance will be set + to the DELETED state for 20 days, and will be purged within 30 days. The + default database cannot be deleted. IDs for deleted database instances + may never be recovered or re-used. The Database may only be deleted if + it is already in a DISABLED state. + operationId: firebasedatabase.projects.locations.instances.delete security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -432,12 +488,16 @@ paths: required: true schema: type: string - x-stackQL-resource: instances - x-stackQL-verb: exec /v1beta/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:undelete: parameters: *ref_1 post: - description: Restores a DatabaseInstance that was previously marked to be deleted. After the delete method is used, DatabaseInstances are set to the DELETED state for 20 days, and will be purged within 30 days. Databases in the DELETED state can be undeleted without losing any data. This method may only be used on a DatabaseInstance in the DELETED state. Purged DatabaseInstances may not be recovered. + description: >- + Restores a DatabaseInstance that was previously marked to be deleted. + After the delete method is used, DatabaseInstances are set to the + DELETED state for 20 days, and will be purged within 30 days. Databases + in the DELETED state can be undeleted without losing any data. This + method may only be used on a DatabaseInstance in the DELETED state. + Purged DatabaseInstances may not be recovered. operationId: firebasedatabase.projects.locations.instances.undelete requestBody: content: @@ -476,13 +536,19 @@ paths: required: true schema: type: string - x-stackQL-resource: instances - x-stackQL-verb: exec - /v1beta/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}: + /v1beta/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:disable: parameters: *ref_1 - delete: - description: Marks a DatabaseInstance to be deleted. The DatabaseInstance will be set to the DELETED state for 20 days, and will be purged within 30 days. The default database cannot be deleted. IDs for deleted database instances may never be recovered or re-used. The Database may only be deleted if it is already in a DISABLED state. - operationId: firebasedatabase.projects.locations.instances.delete + post: + description: >- + Disables a DatabaseInstance. The database can be re-enabled later using + ReenableDatabaseInstance. When a database is disabled, all reads and + writes are denied, including view access in the Firebase console. + operationId: firebasedatabase.projects.locations.instances.disable + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DisableDatabaseInstanceRequest' security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -515,28 +581,28 @@ paths: required: true schema: type: string - x-stackQL-resource: instances - x-stackQL-verb: delete - get: - description: Gets the DatabaseInstance identified by the specified resource name. - operationId: firebasedatabase.projects.locations.instances.get + /v1beta/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:reenable: + parameters: *ref_1 + post: + description: >- + Enables a DatabaseInstance. The database must have been disabled + previously using DisableDatabaseInstance. The state of a successfully + reenabled DatabaseInstance is ACTIVE. + operationId: firebasedatabase.projects.locations.instances.reenable + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReenableDatabaseInstanceRequest' security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform Oauth2c: - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform.read-only - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform.read-only - Oauth2: - https://www.googleapis.com/auth/firebase Oauth2c: - https://www.googleapis.com/auth/firebase - - Oauth2: - - https://www.googleapis.com/auth/firebase.readonly - Oauth2c: - - https://www.googleapis.com/auth/firebase.readonly responses: '200': description: Successful response @@ -560,5 +626,3 @@ paths: required: true schema: type: string - x-stackQL-resource: instances - x-stackQL-verb: select diff --git a/providers/src/firebase/v00.00.00000/services/dataconnect.yaml b/providers/src/firebase/v00.00.00000/services/dataconnect.yaml new file mode 100644 index 00000000..560be5b6 --- /dev/null +++ b/providers/src/firebase/v00.00.00000/services/dataconnect.yaml @@ -0,0 +1,2469 @@ +openapi: 3.1.0 +info: + contact: + name: StackQL Studios + url: https://github.com/stackql/google-discovery-to-openapi + email: info@stackql.io + title: Firebase Data Connect API + description: >- + Firebase Data Connect is a relational database service for mobile and web + apps that lets you build and scale using a fully-managed PostgreSQL database + powered by Cloud SQL. The REST API lets developers manage the connections to + their database, change the schema of their database, and query the database. + version: v1 + x-discovery-doc-revision: '20250824' + x-generated-date: '2025-08-28' +externalDocs: + url: https://firebase.google.com/docs/data-connect +servers: + - url: https://firebasedataconnect.googleapis.com +components: + securitySchemes: + Oauth2: + type: oauth2 + description: Oauth 2.0 implicit authentication + flows: + implicit: + authorizationUrl: https://accounts.google.com/o/oauth2/auth + scopes: &ref_0 + https://www.googleapis.com/auth/cloud-platform: >- + See, edit, configure, and delete your Google Cloud data and see + the email address for your Google Account. + Oauth2c: + type: oauth2 + description: Oauth 2.0 authorization code authentication + flows: + authorizationCode: + authorizationUrl: https://accounts.google.com/o/oauth2/auth + tokenUrl: https://accounts.google.com/o/oauth2/token + scopes: *ref_0 + schemas: + ListOperationsResponse: + id: ListOperationsResponse + description: The response message for Operations.ListOperations. + type: object + properties: + operations: + description: >- + A list of operations that matches the specified filter in the + request. + type: array + items: + $ref: '#/components/schemas/Operation' + nextPageToken: + description: The standard List next-page token. + type: string + Operation: + id: Operation + description: >- + This resource represents a long-running operation that is the result of + a network API call. + type: object + properties: + name: + description: >- + The server-assigned name, which is only unique within the same + service that originally returns it. If you use the default HTTP + mapping, the `name` should be a resource name ending with + `operations/{unique_id}`. + type: string + metadata: + description: >- + Service-specific metadata associated with the operation. It + typically contains progress information and common metadata such as + create time. Some services might not provide such metadata. Any + method that returns a long-running operation should document the + metadata type, if any. + type: object + additionalProperties: + type: any + description: Properties of the object. Contains field @type with type URL. + done: + description: >- + If the value is `false`, it means the operation is still in + progress. If `true`, the operation is completed, and either `error` + or `response` is available. + type: boolean + error: + description: >- + The error result of the operation in case of failure or + cancellation. + $ref: '#/components/schemas/Status' + response: + description: >- + The normal, successful response of the operation. If the original + method returns no data on success, such as `Delete`, the response is + `google.protobuf.Empty`. If the original method is standard + `Get`/`Create`/`Update`, the response should be the resource. For + other methods, the response should have the type `XxxResponse`, + where `Xxx` is the original method name. For example, if the + original method name is `TakeSnapshot()`, the inferred response type + is `TakeSnapshotResponse`. + type: object + additionalProperties: + type: any + description: Properties of the object. Contains field @type with type URL. + Status: + id: Status + description: >- + 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](https://github.com/grpc). Each `Status` message + contains three pieces of data: error code, error message, and error + details. You can find out more about this error model and how to work + with it in the [API Design + Guide](https://cloud.google.com/apis/design/errors). + type: object + properties: + code: + description: The status code, which should be an enum value of google.rpc.Code. + type: integer + format: int32 + message: + description: >- + 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 field, or localized by the client. + type: string + details: + description: >- + A list of messages that carry the error details. There is a common + set of message types for APIs to use. + type: array + items: + type: object + additionalProperties: + type: any + description: Properties of the object. Contains field @type with type URL. + Empty: + id: Empty + description: >- + A generic empty message that you can re-use to avoid defining duplicated + empty messages in your APIs. A typical example is to use it as the + request or the response type of an API method. For instance: service Foo + { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } + type: object + properties: {} + CancelOperationRequest: + id: CancelOperationRequest + description: The request message for Operations.CancelOperation. + type: object + properties: {} + ExecuteQueryRequest: + id: ExecuteQueryRequest + description: The ExecuteQuery request to Firebase Data Connect. + type: object + properties: + operationName: + description: >- + Required. The name of the GraphQL operation name. Required because + all Connector operations must be named. See + https://graphql.org/learn/queries/#operation-name. + type: string + variables: + description: Optional. Values for GraphQL variables provided in this request. + type: object + additionalProperties: + type: any + description: Properties of the object. + ExecuteQueryResponse: + id: ExecuteQueryResponse + description: The ExecuteQuery response from Firebase Data Connect. + type: object + properties: + data: + description: The result of executing the requested operation. + type: object + additionalProperties: + type: any + description: Properties of the object. + errors: + description: Errors of this response. + type: array + items: + $ref: '#/components/schemas/GraphqlError' + GraphqlError: + id: GraphqlError + description: >- + GraphqlError conforms to the GraphQL error spec. + https://spec.graphql.org/draft/#sec-Errors Firebase Data Connect API + surfaces `GraphqlError` in various APIs: - Upon compile error, + `UpdateSchema` and `UpdateConnector` return Code.Invalid_Argument with a + list of `GraphqlError` in error details. - Upon query compile error, + `ExecuteGraphql` and `ExecuteGraphqlRead` return Code.OK with a list of + `GraphqlError` in response body. - Upon query execution error, + `ExecuteGraphql`, `ExecuteGraphqlRead`, `ExecuteMutation` and + `ExecuteQuery` all return Code.OK with a list of `GraphqlError` in + response body. + type: object + properties: + message: + description: >- + The detailed error message. The message should help developer + understand the underlying problem without leaking internal data. + type: string + locations: + description: >- + The source locations where the error occurred. Locations should help + developers and toolings identify the source of error quickly. + Included in admin endpoints (`ExecuteGraphql`, `ExecuteGraphqlRead`, + `UpdateSchema` and `UpdateConnector`) to reference the provided + GraphQL GQL document. Omitted in `ExecuteMutation` and + `ExecuteQuery` since the caller shouldn't have access access the + underlying GQL source. + type: array + items: + $ref: '#/components/schemas/SourceLocation' + path: + description: >- + The result field which could not be populated due to error. Clients + can use path to identify whether a null result is intentional or + caused by a runtime error. It should be a list of string or index + from the root of GraphQL query document. + type: array + items: + type: any + extensions: + description: Additional error information. + $ref: '#/components/schemas/GraphqlErrorExtensions' + SourceLocation: + id: SourceLocation + description: SourceLocation references a location in a GraphQL source. + type: object + properties: + line: + description: Line number starting at 1. + type: integer + format: int32 + column: + description: Column number starting at 1. + type: integer + format: int32 + GraphqlErrorExtensions: + id: GraphqlErrorExtensions + description: >- + GraphqlErrorExtensions contains additional information of + `GraphqlError`. + type: object + properties: + file: + description: >- + The source file name where the error occurred. Included only for + `UpdateSchema` and `UpdateConnector`, it corresponds to `File.path` + of the provided `Source`. + type: string + code: + description: >- + Maps to canonical gRPC codes. If not specified, it represents + `Code.INTERNAL`. + type: string + enumDescriptions: + - 'Not an error; returned on success. HTTP Mapping: 200 OK' + - >- + The operation was cancelled, typically by the caller. HTTP + Mapping: 499 Client Closed Request + - >- + Unknown error. For example, this error may be returned when a + `Status` value received from another address space belongs to an + error space that is not known in this address space. Also errors + raised by APIs that do not return enough error information may be + converted to this error. HTTP Mapping: 500 Internal Server Error + - >- + The client specified an invalid argument. Note that this differs + from `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates arguments + that are problematic regardless of the state of the system (e.g., + a malformed file name). HTTP Mapping: 400 Bad Request + - >- + The deadline expired before the operation could complete. For + operations that change the state of the system, this error may be + returned even if the operation has completed successfully. For + example, a successful response from a server could have been + delayed long enough for the deadline to expire. HTTP Mapping: 504 + Gateway Timeout + - >- + Some requested entity (e.g., file or directory) was not found. + Note to server developers: if a request is denied for an entire + class of users, such as gradual feature rollout or undocumented + allowlist, `NOT_FOUND` may be used. If a request is denied for + some users within a class of users, such as user-based access + control, `PERMISSION_DENIED` must be used. HTTP Mapping: 404 Not + Found + - >- + The entity that a client attempted to create (e.g., file or + directory) already exists. HTTP Mapping: 409 Conflict + - >- + The caller does not have permission to execute the specified + operation. `PERMISSION_DENIED` must not be used for rejections + caused by exhausting some resource (use `RESOURCE_EXHAUSTED` + instead for those errors). `PERMISSION_DENIED` must not be used if + the caller can not be identified (use `UNAUTHENTICATED` instead + for those errors). This error code does not imply the request is + valid or the requested entity exists or satisfies other + pre-conditions. HTTP Mapping: 403 Forbidden + - >- + The request does not have valid authentication credentials for the + operation. HTTP Mapping: 401 Unauthorized + - >- + Some resource has been exhausted, perhaps a per-user quota, or + perhaps the entire file system is out of space. HTTP Mapping: 429 + Too Many Requests + - >- + The operation was rejected because the system is not in a state + required for the operation's execution. For example, the directory + to be deleted is non-empty, an rmdir operation is applied to a + non-directory, etc. Service implementors can use the following + guidelines to decide between `FAILED_PRECONDITION`, `ABORTED`, and + `UNAVAILABLE`: (a) Use `UNAVAILABLE` if the client can retry just + the failing call. (b) Use `ABORTED` if the client should retry at + a higher level. For example, when a client-specified test-and-set + fails, indicating the client should restart a read-modify-write + sequence. (c) Use `FAILED_PRECONDITION` if the client should not + retry until the system state has been explicitly fixed. For + example, if an "rmdir" fails because the directory is non-empty, + `FAILED_PRECONDITION` should be returned since the client should + not retry unless the files are deleted from the directory. HTTP + Mapping: 400 Bad Request + - >- + The operation was aborted, typically due to a concurrency issue + such as a sequencer check failure or transaction abort. See the + guidelines above for deciding between `FAILED_PRECONDITION`, + `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 409 Conflict + - >- + The operation was attempted past the valid range. E.g., seeking or + reading past end-of-file. Unlike `INVALID_ARGUMENT`, this error + indicates a problem that may be fixed if the system state changes. + For example, a 32-bit file system will generate `INVALID_ARGUMENT` + if asked to read at an offset that is not in the range [0,2^32-1], + but it will generate `OUT_OF_RANGE` if asked to read from an + offset past the current file size. There is a fair bit of overlap + between `FAILED_PRECONDITION` and `OUT_OF_RANGE`. We recommend + using `OUT_OF_RANGE` (the more specific error) when it applies so + that callers who are iterating through a space can easily look for + an `OUT_OF_RANGE` error to detect when they are done. HTTP + Mapping: 400 Bad Request + - >- + The operation is not implemented or is not supported/enabled in + this service. HTTP Mapping: 501 Not Implemented + - >- + Internal errors. This means that some invariants expected by the + underlying system have been broken. This error code is reserved + for serious errors. HTTP Mapping: 500 Internal Server Error + - >- + The service is currently unavailable. This is most likely a + transient condition, which can be corrected by retrying with a + backoff. Note that it is not always safe to retry non-idempotent + operations. See the guidelines above for deciding between + `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: + 503 Service Unavailable + - >- + Unrecoverable data loss or corruption. HTTP Mapping: 500 Internal + Server Error + enum: + - OK + - CANCELLED + - UNKNOWN + - INVALID_ARGUMENT + - DEADLINE_EXCEEDED + - NOT_FOUND + - ALREADY_EXISTS + - PERMISSION_DENIED + - UNAUTHENTICATED + - RESOURCE_EXHAUSTED + - FAILED_PRECONDITION + - ABORTED + - OUT_OF_RANGE + - UNIMPLEMENTED + - INTERNAL + - UNAVAILABLE + - DATA_LOSS + debugDetails: + description: >- + More detailed error message to assist debugging. It contains + application business logic that are inappropriate to leak publicly. + In the emulator, Data Connect API always includes it to assist local + development and debugging. In the backend, ConnectorService always + hides it. GraphqlService without impersonation always include it. + GraphqlService with impersonation includes it only if explicitly + opted-in with `include_debug_details` in `GraphqlRequestExtensions`. + type: string + resource: + description: >- + Distinguish which schema or connector the error originates from. It + should be set on errors from control plane APIs (e.g. + `UpdateSchema`, `UpdateConnector`). + type: string + ExecuteMutationRequest: + id: ExecuteMutationRequest + description: The ExecuteMutation request to Firebase Data Connect. + type: object + properties: + operationName: + description: >- + Required. The name of the GraphQL operation name. Required because + all Connector operations must be named. See + https://graphql.org/learn/queries/#operation-name. + type: string + variables: + description: Optional. Values for GraphQL variables provided in this request. + type: object + additionalProperties: + type: any + description: Properties of the object. + ExecuteMutationResponse: + id: ExecuteMutationResponse + description: The ExecuteMutation response from Firebase Data Connect. + type: object + properties: + data: + description: The result of executing the requested operation. + type: object + additionalProperties: + type: any + description: Properties of the object. + errors: + description: Errors of this response. + type: array + items: + $ref: '#/components/schemas/GraphqlError' + GraphqlRequest: + id: GraphqlRequest + description: >- + The GraphQL request to Firebase Data Connect. It strives to match the + GraphQL over HTTP spec. + https://github.com/graphql/graphql-over-http/blob/main/spec/GraphQLOverHTTP.md#post + type: object + properties: + query: + description: Required. The GraphQL query document source. + type: string + operationName: + description: >- + Optional. The name of the GraphQL operation name. Required only if + `query` contains multiple operations. See + https://graphql.org/learn/queries/#operation-name. + type: string + variables: + description: Optional. Values for GraphQL variables provided in this request. + type: object + additionalProperties: + type: any + description: Properties of the object. + extensions: + description: Optional. Additional GraphQL request information. + $ref: '#/components/schemas/GraphqlRequestExtensions' + GraphqlRequestExtensions: + id: GraphqlRequestExtensions + description: >- + GraphqlRequestExtensions contains additional information of + `GraphqlRequest`. + type: object + properties: + impersonate: + description: >- + Optional. If set, impersonate a request with given Firebase Auth + context and evaluate the auth policies on the operation. If omitted, + bypass any defined auth policies. + $ref: '#/components/schemas/Impersonation' + Impersonation: + id: Impersonation + description: Impersonation configures the Firebase Auth context to impersonate. + type: object + properties: + unauthenticated: + description: >- + Evaluate the auth policy as an unauthenticated request. Can only be + set to true. + type: boolean + authClaims: + description: >- + Evaluate the auth policy with a customized JWT auth token. Should + follow the Firebase Auth token format. + https://firebase.google.com/docs/rules/rules-and-auth For example: a + verified user may have auth_claims of {"sub": , "email_verified": + true} + type: object + additionalProperties: + type: any + description: Properties of the object. + includeDebugDetails: + description: Optional. If set, include debug details in GraphQL error extensions. + type: boolean + GraphqlResponse: + id: GraphqlResponse + description: >- + The GraphQL response from Firebase Data Connect. It strives to match the + GraphQL over HTTP spec. Note: Firebase Data Connect always responds with + `Content-Type: application/json`. + https://github.com/graphql/graphql-over-http/blob/main/spec/GraphQLOverHTTP.md#body + type: object + properties: + data: + description: >- + The result of the execution of the requested operation. If an error + was raised before execution begins, the data entry should not be + present in the result. (a request error: + https://spec.graphql.org/draft/#sec-Errors.Request-Errors) If an + error was raised during the execution that prevented a valid + response, the data entry in the response should be null. (a field + error: + https://spec.graphql.org/draft/#sec-Errors.Error-Result-Format) + type: object + additionalProperties: + type: any + description: Properties of the object. + errors: + description: >- + Errors of this response. If the data entry in the response is not + present, the errors entry must be present. It conforms to + https://spec.graphql.org/draft/#sec-Errors. + type: array + items: + $ref: '#/components/schemas/GraphqlError' + ListServicesResponse: + id: ListServicesResponse + description: Message for response to listing Services. + type: object + properties: + services: + description: The list of Services. + type: array + items: + $ref: '#/components/schemas/Service' + nextPageToken: + description: >- + A token, which can be sent as `page_token` to retrieve the next + page. If this field is omitted, there are no subsequent pages. + type: string + unreachable: + description: Locations that could not be reached. + type: array + items: + type: string + Service: + id: Service + description: A Firebase Data Connect service. + type: object + properties: + name: + description: >- + Identifier. The relative resource name of the Firebase Data Connect + service, in the format: ``` + projects/{project}/locations/{location}/services/{service} ``` Note + that the service ID is specific to Firebase Data Connect and does + not correspond to any of the instance IDs of the underlying data + source connections. + type: string + createTime: + description: Output only. [Output only] Create time stamp. + readOnly: true + type: string + format: google-datetime + updateTime: + description: Output only. [Output only] Update time stamp. + readOnly: true + type: string + format: google-datetime + labels: + description: Optional. Labels as key value pairs. + type: object + additionalProperties: + type: string + annotations: + description: Optional. Stores small amounts of arbitrary data. + type: object + additionalProperties: + type: string + uid: + description: Output only. System-assigned, unique identifier. + readOnly: true + type: string + reconciling: + description: >- + Output only. A field that if true, indicates that the system is + working update the service. + readOnly: true + type: boolean + displayName: + description: Optional. Mutable human-readable name. 63 character limit. + type: string + etag: + description: >- + Output only. This checksum is computed by the server based on the + value of other fields, and may be sent on update and delete requests + to ensure the client has an up-to-date value before proceeding. + [AIP-154](https://google.aip.dev/154) + readOnly: true + type: string + Schema: + id: Schema + description: The application schema of a Firebase Data Connect service. + type: object + properties: + name: + description: >- + Identifier. The relative resource name of the schema, in the format: + ``` + projects/{project}/locations/{location}/services/{service}/schemas/{schema} + ``` Right now, the only supported schema is "main". + type: string + createTime: + description: Output only. [Output only] Create time stamp. + readOnly: true + type: string + format: google-datetime + updateTime: + description: Output only. [Output only] Update time stamp. + readOnly: true + type: string + format: google-datetime + labels: + description: Optional. Labels as key value pairs. + type: object + additionalProperties: + type: string + annotations: + description: Optional. Stores small amounts of arbitrary data. + type: object + additionalProperties: + type: string + datasources: + description: Required. The data sources linked in the schema. + type: array + items: + $ref: '#/components/schemas/Datasource' + source: + description: Required. The source files that comprise the application schema. + $ref: '#/components/schemas/Source' + uid: + description: Output only. System-assigned, unique identifier. + readOnly: true + type: string + reconciling: + description: >- + Output only. A field that if true, indicates that the system is + working to compile and deploy the schema. + readOnly: true + type: boolean + displayName: + description: Optional. Mutable human-readable name. 63 character limit. + type: string + etag: + description: >- + Output only. This checksum is computed by the server based on the + value of other fields, and may be sent on update and delete requests + to ensure the client has an up-to-date value before proceeding. + [AIP-154](https://google.aip.dev/154) + readOnly: true + type: string + Datasource: + id: Datasource + description: A data source that backs Firebase Data Connect services. + type: object + properties: + postgresql: + description: PostgreSQL configurations. + $ref: '#/components/schemas/PostgreSql' + PostgreSql: + id: PostgreSql + description: Settings for PostgreSQL data source. + type: object + properties: + schemaValidation: + description: >- + Optional. Configure how much Postgresql schema validation to + perform. + type: string + enumDescriptions: + - Unspecified SQL schema validation. Default to STRICT. + - >- + Skip no SQL schema validation. Use it with extreme caution. + CreateSchema or UpdateSchema will succeed even if SQL database is + unavailable or SQL schema is incompatible. Generated SQL may fail + at execution time. + - >- + Connect to the SQL database and validate that the SQL DDL matches + the schema exactly. Surface any discrepancies as + `FAILED_PRECONDITION` with an `IncompatibleSqlSchemaError` error + detail. + - >- + Connect to the SQL database and validate that the SQL DDL has all + the SQL resources used in the given Firebase Data Connect Schema. + Surface any missing resources as `FAILED_PRECONDITION` with an + `IncompatibleSqlSchemaError` error detail. Succeed even if there + are unknown tables and columns. + enum: + - SQL_SCHEMA_VALIDATION_UNSPECIFIED + - NONE + - STRICT + - COMPATIBLE + schemaMigration: + description: Optional. Configure how to perform Postgresql schema migration. + type: string + enumDescriptions: + - Unspecified SQL schema migration. + - >- + Connect to the SQL database and identify any missing SQL resources + used in the given Firebase Data Connect Schema. Automatically + create necessary SQL resources (SQL table, column, etc) before + deploying the schema. During migration steps, the SQL Schema must + comply with the previous before_deploy setting in case the + migration is interrupted. Therefore, the previous before_deploy + setting must not be `schema_validation=STRICT`. + enum: + - SQL_SCHEMA_MIGRATION_UNSPECIFIED + - MIGRATE_COMPATIBLE + unlinked: + description: >- + No Postgres data source is linked. If set, don't allow `database` + and `schema_validation` to be configured. + deprecated: true + type: boolean + cloudSql: + description: Cloud SQL configurations. + $ref: '#/components/schemas/CloudSqlInstance' + database: + description: Required. Name of the PostgreSQL database. + type: string + ephemeral: + description: >- + Output only. Ephemeral is true if this data connect service is + served from temporary in-memory emulation of Postgres. While Cloud + SQL is being provisioned, the data connect service provides the + ephemeral service to help developers get started. Once the Cloud SQL + is provisioned, Data Connect service will transfer its data on a + best-effort basis to the Cloud SQL instance. WARNING: Ephemeral data + sources will expire after 24 hour. The data will be lost if they + aren't transferred to the Cloud SQL instance. WARNING: When + `ephemeral=true`, mutations to the database are not guaranteed to be + durably persisted, even if an OK status code is returned. All or + parts of the data may be lost or reverted to earlier versions. + readOnly: true + type: boolean + CloudSqlInstance: + id: CloudSqlInstance + description: Settings for CloudSQL instance configuration. + type: object + properties: + instance: + description: >- + Required. Name of the CloudSQL instance, in the format: ``` + projects/{project}/locations/{location}/instances/{instance} ``` + type: string + Source: + id: Source + description: Used to represent a set of source files. + type: object + properties: + files: + description: Required. The files that comprise the source set. + type: array + items: + $ref: '#/components/schemas/File' + File: + id: File + description: Individual files. + type: object + properties: + path: + description: >- + Required. The file name including folder path, if applicable. The + path should be relative to a local workspace (e.g. + dataconnect/(schema|connector)/*.gql) and not an absolute path (e.g. + /absolute/path/(schema|connector)/*.gql). + type: string + content: + description: Required. The file's textual content. + type: string + ListSchemasResponse: + id: ListSchemasResponse + description: >- + Message for response to listing Schemas. By default, `schemas.source` + will not be included in the response. To specify the fields included in + the response, the response field mask can be provided by using the query + parameter `$fields` or the header `X-Goog-FieldMask`. + type: object + properties: + schemas: + description: The list of Schemas. + type: array + items: + $ref: '#/components/schemas/Schema' + nextPageToken: + description: >- + A token, which can be sent as `page_token` to retrieve the next + page. If this field is omitted, there are no subsequent pages. + type: string + unreachable: + description: Locations that could not be reached. + type: array + items: + type: string + ListConnectorsResponse: + id: ListConnectorsResponse + description: >- + Message for response to listing Connectors. By default, + `connectors.source` will not be included in the response. To specify the + fields included in the response, the response field mask can be provided + by using the query parameter `$fields` or the header `X-Goog-FieldMask`. + type: object + properties: + connectors: + description: The list of Connectors. + type: array + items: + $ref: '#/components/schemas/Connector' + nextPageToken: + description: >- + A token, which can be sent as `page_token` to retrieve the next + page. If this field is omitted, there are no subsequent pages. + type: string + unreachable: + description: Locations that could not be reached. + type: array + items: + type: string + Connector: + id: Connector + description: Connector consists of a set of operations, i.e. queries and mutations. + type: object + properties: + name: + description: >- + Identifier. The relative resource name of the connector, in the + format: ``` + projects/{project}/locations/{location}/services/{service}/connectors/{connector} + ``` + type: string + createTime: + description: Output only. [Output only] Create time stamp. + readOnly: true + type: string + format: google-datetime + updateTime: + description: Output only. [Output only] Update time stamp. + readOnly: true + type: string + format: google-datetime + labels: + description: Optional. Labels as key value pairs. + type: object + additionalProperties: + type: string + annotations: + description: Optional. Stores small amounts of arbitrary data. + type: object + additionalProperties: + type: string + source: + description: Required. The source files that comprise the connector. + $ref: '#/components/schemas/Source' + uid: + description: Output only. System-assigned, unique identifier. + readOnly: true + type: string + reconciling: + description: >- + Output only. A field that if true, indicates that the system is + working to compile and deploy the connector. + readOnly: true + type: boolean + displayName: + description: Optional. Mutable human-readable name. 63 character limit. + type: string + etag: + description: >- + Output only. This checksum is computed by the server based on the + value of other fields, and may be sent on update and delete requests + to ensure the client has an up-to-date value before proceeding. + [AIP-154](https://google.aip.dev/154) + readOnly: true + type: string + ListLocationsResponse: + id: ListLocationsResponse + description: The response message for Locations.ListLocations. + type: object + properties: + locations: + description: >- + A list of locations that matches the specified filter in the + request. + type: array + items: + $ref: '#/components/schemas/Location' + nextPageToken: + description: The standard List next-page token. + type: string + Location: + id: Location + description: A resource that represents a Google Cloud location. + type: object + properties: + name: + description: >- + Resource name for the location, which may vary between + implementations. For example: + `"projects/example-project/locations/us-east1"` + type: string + locationId: + description: 'The canonical id for this location. For example: `"us-east1"`.' + type: string + displayName: + description: >- + The friendly name for this location, typically a nearby city name. + For example, "Tokyo". + type: string + labels: + description: >- + Cross-service attributes for the location. For example + {"cloud.googleapis.com/region": "us-east1"} + type: object + additionalProperties: + type: string + metadata: + description: >- + Service-specific metadata. For example the available capacity at the + given location. + type: object + additionalProperties: + type: any + description: Properties of the object. Contains field @type with type URL. + OperationMetadata: + id: OperationMetadata + description: >- + Represents the metadata of the long-running operation. Note: This + message is auto-generated by CCFE. CCFE's storage, called Resource + Metadata Store (RMS), holds metadata about long-running operations (i.e. + OperationMetadata) and resources (i.e. ResourceMetadata). + OperationMetadata documents the status of the operation. See [CCFE + documentation for sidechannel + data](https://g3doc.corp.google.com/cloud/control2/g3doc/dev/codelab_extras/sidechannel.md?cl=head#sidechannel-data) + and yaqs/4289526912465764352. + type: object + properties: + createTime: + description: Output only. The time the operation was created. + readOnly: true + type: string + format: google-datetime + endTime: + description: Output only. The time the operation finished running. + readOnly: true + type: string + format: google-datetime + target: + description: >- + Output only. Server-defined resource path for the target of the + operation. + readOnly: true + type: string + verb: + description: Output only. Name of the verb executed by the operation. + readOnly: true + type: string + statusMessage: + description: Output only. Human-readable status of the operation, if any. + readOnly: true + type: string + requestedCancellation: + description: >- + Output only. Identifies whether the user has requested cancellation + of the operation. Operations that have been cancelled successfully + have Operation.error value with a google.rpc.Status.code of 1, + corresponding to `Code.CANCELLED`. + readOnly: true + type: boolean + apiVersion: + description: Output only. API version used to start the operation. + readOnly: true + type: string + parameters: + access_token: + description: OAuth access token. + in: query + name: access_token + schema: + type: string + alt: + description: Data format for response. + in: query + name: alt + schema: + type: string + enum: + - json + - media + - proto + callback: + description: JSONP + in: query + name: callback + schema: + type: string + fields: + description: Selector specifying which fields to include in a partial response. + in: query + name: fields + schema: + type: string + key: + description: >- + API key. Your API key identifies your project and provides you with API + access, quota, and reports. Required unless you provide an OAuth 2.0 + token. + in: query + name: key + schema: + type: string + oauth_token: + description: OAuth 2.0 token for the current user. + in: query + name: oauth_token + schema: + type: string + prettyPrint: + description: Returns response with indentations and line breaks. + in: query + name: prettyPrint + schema: + type: boolean + quotaUser: + description: >- + Available to use for quota purposes for server-side applications. Can be + any arbitrary string assigned to a user, but should not exceed 40 + characters. + in: query + name: quotaUser + schema: + type: string + upload_protocol: + description: Upload protocol for media (e.g. "raw", "multipart"). + in: query + name: upload_protocol + schema: + type: string + uploadType: + description: Legacy upload protocol for media (e.g. "media", "multipart"). + in: query + name: uploadType + schema: + type: string + _.xgafv: + description: V1 error format. + in: query + name: $.xgafv + schema: + type: string + enum: + - '1' + - '2' + x-stackQL-resources: + locations: + id: firebase.dataconnect.locations + name: locations + title: Locations + methods: + list: + operation: + $ref: '#/paths/~1v1~1projects~1{projectsId}~1locations/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.locations + get: + operation: + $ref: '#/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/locations/methods/get' + - $ref: '#/components/x-stackQL-resources/locations/methods/list' + insert: [] + update: [] + replace: [] + delete: [] + operations: + id: firebase.dataconnect.operations + name: operations + title: Operations + methods: + list: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1operations/get + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.operations + get: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1operations~1{operationsId}/get + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1operations~1{operationsId}/delete + response: + mediaType: application/json + openAPIDocKey: '200' + cancel: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1operations~1{operationsId}:cancel/post + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/operations/methods/get' + - $ref: '#/components/x-stackQL-resources/operations/methods/list' + insert: [] + update: [] + replace: [] + delete: + - $ref: '#/components/x-stackQL-resources/operations/methods/delete' + services: + id: firebase.dataconnect.services + name: services + title: Services + methods: + execute_graphql: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1services~1{servicesId}:executeGraphql/post + response: + mediaType: application/json + openAPIDocKey: '200' + execute_graphql_read: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1services~1{servicesId}:executeGraphqlRead/post + response: + mediaType: application/json + openAPIDocKey: '200' + list: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1services/get + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.services + create: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1services/post + response: + mediaType: application/json + openAPIDocKey: '200' + get: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1services~1{servicesId}/get + response: + mediaType: application/json + openAPIDocKey: '200' + patch: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1services~1{servicesId}/patch + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1services~1{servicesId}/delete + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/services/methods/get' + - $ref: '#/components/x-stackQL-resources/services/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/services/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/services/methods/patch' + replace: [] + delete: + - $ref: '#/components/x-stackQL-resources/services/methods/delete' + connectors: + id: firebase.dataconnect.connectors + name: connectors + title: Connectors + methods: + execute_query: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1services~1{servicesId}~1connectors~1{connectorsId}:executeQuery/post + response: + mediaType: application/json + openAPIDocKey: '200' + execute_mutation: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1services~1{servicesId}~1connectors~1{connectorsId}:executeMutation/post + response: + mediaType: application/json + openAPIDocKey: '200' + list: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1services~1{servicesId}~1connectors/get + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.connectors + create: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1services~1{servicesId}~1connectors/post + response: + mediaType: application/json + openAPIDocKey: '200' + get: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1services~1{servicesId}~1connectors~1{connectorsId}/get + response: + mediaType: application/json + openAPIDocKey: '200' + patch: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1services~1{servicesId}~1connectors~1{connectorsId}/patch + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1services~1{servicesId}~1connectors~1{connectorsId}/delete + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/connectors/methods/get' + - $ref: '#/components/x-stackQL-resources/connectors/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/connectors/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/connectors/methods/patch' + replace: [] + delete: + - $ref: '#/components/x-stackQL-resources/connectors/methods/delete' + schemas: + id: firebase.dataconnect.schemas + name: schemas + title: Schemas + methods: + get: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1services~1{servicesId}~1schemas~1{schemasId}/get + response: + mediaType: application/json + openAPIDocKey: '200' + patch: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1services~1{servicesId}~1schemas~1{schemasId}/patch + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1services~1{servicesId}~1schemas~1{schemasId}/delete + response: + mediaType: application/json + openAPIDocKey: '200' + list: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1services~1{servicesId}~1schemas/get + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.schemas + create: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1locations~1{locationsId}~1services~1{servicesId}~1schemas/post + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/schemas/methods/get' + - $ref: '#/components/x-stackQL-resources/schemas/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/schemas/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/schemas/methods/patch' + replace: [] + delete: + - $ref: '#/components/x-stackQL-resources/schemas/methods/delete' +paths: + /v1/projects/{projectsId}/locations: + parameters: &ref_1 + - $ref: '#/components/parameters/access_token' + - $ref: '#/components/parameters/alt' + - $ref: '#/components/parameters/callback' + - $ref: '#/components/parameters/fields' + - $ref: '#/components/parameters/key' + - $ref: '#/components/parameters/oauth_token' + - $ref: '#/components/parameters/prettyPrint' + - $ref: '#/components/parameters/quotaUser' + - $ref: '#/components/parameters/upload_protocol' + - $ref: '#/components/parameters/uploadType' + - $ref: '#/components/parameters/_.xgafv' + get: + description: Lists information about the supported locations for this service. + operationId: firebasedataconnect.projects.locations.list + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/ListLocationsResponse' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: query + name: filter + schema: + type: string + - in: query + name: pageSize + schema: + type: integer + format: int32 + - in: query + name: pageToken + schema: + type: string + - in: query + name: extraLocationTypes + schema: + type: string + /v1/projects/{projectsId}/locations/{locationsId}: + parameters: *ref_1 + get: + description: Gets information about a location. + operationId: firebasedataconnect.projects.locations.get + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Location' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + /v1/projects/{projectsId}/locations/{locationsId}/operations: + parameters: *ref_1 + get: + description: >- + Lists operations that match the specified filter in the request. If the + server doesn't support this method, it returns `UNIMPLEMENTED`. + operationId: firebasedataconnect.projects.locations.operations.list + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/ListOperationsResponse' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: query + name: filter + schema: + type: string + - in: query + name: pageSize + schema: + type: integer + format: int32 + - in: query + name: pageToken + schema: + type: string + /v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}: + parameters: *ref_1 + get: + description: >- + Gets the latest state of a long-running operation. Clients can use this + method to poll the operation result at intervals as recommended by the + API service. + operationId: firebasedataconnect.projects.locations.operations.get + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: operationsId + required: true + schema: + type: string + delete: + description: >- + Deletes a long-running operation. This method indicates that the client + is no longer interested in the operation result. It does not cancel the + operation. If the server doesn't support this method, it returns + `google.rpc.Code.UNIMPLEMENTED`. + operationId: firebasedataconnect.projects.locations.operations.delete + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Empty' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: operationsId + required: true + schema: + type: string + /v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel: + parameters: *ref_1 + post: + description: >- + Starts asynchronous cancellation on a long-running operation. The server + makes a best effort to cancel the operation, but success is not + guaranteed. If the server doesn't support this method, it returns + `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation + or other methods to check whether the cancellation succeeded or whether + the operation completed despite cancellation. On successful + cancellation, the operation is not deleted; instead, it becomes an + operation with an Operation.error value with a google.rpc.Status.code of + `1`, corresponding to `Code.CANCELLED`. + operationId: firebasedataconnect.projects.locations.operations.cancel + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CancelOperationRequest' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Empty' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: operationsId + required: true + schema: + type: string + /v1/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:executeGraphql: + parameters: *ref_1 + post: + description: >- + Execute any GraphQL query and mutation against the Firebase Data + Connect's generated GraphQL schema. Grants full read and write access to + the connected data sources. Note: Use introspection query to explore the + generated GraphQL schema. + operationId: firebasedataconnect.projects.locations.services.executeGraphql + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GraphqlRequest' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GraphqlResponse' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: servicesId + required: true + schema: + type: string + /v1/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:executeGraphqlRead: + parameters: *ref_1 + post: + description: >- + Execute any GraphQL query against the Firebase Data Connect's generated + GraphQL schema. Grants full read to the connected data sources. + `ExecuteGraphqlRead` is identical to `ExecuteGraphql` except it only + accepts read-only query. + operationId: firebasedataconnect.projects.locations.services.executeGraphqlRead + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GraphqlRequest' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GraphqlResponse' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: servicesId + required: true + schema: + type: string + /v1/projects/{projectsId}/locations/{locationsId}/services: + parameters: *ref_1 + get: + description: Lists Services in a given project and location. + operationId: firebasedataconnect.projects.locations.services.list + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/ListServicesResponse' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: query + name: pageSize + schema: + type: integer + format: int32 + - in: query + name: pageToken + schema: + type: string + - in: query + name: filter + schema: + type: string + - in: query + name: orderBy + schema: + type: string + post: + description: Creates a new Service in a given project and location. + operationId: firebasedataconnect.projects.locations.services.create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Service' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: query + name: serviceId + schema: + type: string + - in: query + name: requestId + schema: + type: string + - in: query + name: validateOnly + schema: + type: boolean + /v1/projects/{projectsId}/locations/{locationsId}/services/{servicesId}: + parameters: *ref_1 + get: + description: Gets details of a single Service. + operationId: firebasedataconnect.projects.locations.services.get + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Service' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: servicesId + required: true + schema: + type: string + patch: + description: Updates the parameters of a single Service. + operationId: firebasedataconnect.projects.locations.services.patch + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Service' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: servicesId + required: true + schema: + type: string + - in: query + name: updateMask + schema: + type: string + format: google-fieldmask + - in: query + name: requestId + schema: + type: string + - in: query + name: allowMissing + schema: + type: boolean + - in: query + name: validateOnly + schema: + type: boolean + delete: + description: Deletes a single Service. + operationId: firebasedataconnect.projects.locations.services.delete + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: servicesId + required: true + schema: + type: string + - in: query + name: force + schema: + type: boolean + - in: query + name: etag + schema: + type: string + - in: query + name: requestId + schema: + type: string + - in: query + name: allowMissing + schema: + type: boolean + - in: query + name: validateOnly + schema: + type: boolean + /v1/projects/{projectsId}/locations/{locationsId}/services/{servicesId}/connectors/{connectorsId}:executeQuery: + parameters: *ref_1 + post: + description: Execute a predefined query in a Connector. + operationId: firebasedataconnect.projects.locations.services.connectors.executeQuery + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ExecuteQueryRequest' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/ExecuteQueryResponse' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: servicesId + required: true + schema: + type: string + - in: path + name: connectorsId + required: true + schema: + type: string + /v1/projects/{projectsId}/locations/{locationsId}/services/{servicesId}/connectors/{connectorsId}:executeMutation: + parameters: *ref_1 + post: + description: Execute a predefined mutation in a Connector. + operationId: >- + firebasedataconnect.projects.locations.services.connectors.executeMutation + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ExecuteMutationRequest' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/ExecuteMutationResponse' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: servicesId + required: true + schema: + type: string + - in: path + name: connectorsId + required: true + schema: + type: string + /v1/projects/{projectsId}/locations/{locationsId}/services/{servicesId}/connectors: + parameters: *ref_1 + get: + description: Lists Connectors in a given project and location. + operationId: firebasedataconnect.projects.locations.services.connectors.list + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/ListConnectorsResponse' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: servicesId + required: true + schema: + type: string + - in: query + name: pageSize + schema: + type: integer + format: int32 + - in: query + name: pageToken + schema: + type: string + - in: query + name: filter + schema: + type: string + - in: query + name: orderBy + schema: + type: string + post: + description: >- + Creates a new Connector in a given project and location. The operations + are validated against and must be compatible with the active schema. If + the operations and schema are not compatible or if the schema is not + present, this will result in an error. + operationId: firebasedataconnect.projects.locations.services.connectors.create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Connector' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: servicesId + required: true + schema: + type: string + - in: query + name: connectorId + schema: + type: string + - in: query + name: requestId + schema: + type: string + - in: query + name: validateOnly + schema: + type: boolean + /v1/projects/{projectsId}/locations/{locationsId}/services/{servicesId}/connectors/{connectorsId}: + parameters: *ref_1 + get: + description: Gets details of a single Connector. + operationId: firebasedataconnect.projects.locations.services.connectors.get + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Connector' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: servicesId + required: true + schema: + type: string + - in: path + name: connectorsId + required: true + schema: + type: string + patch: + description: >- + Updates the parameters of a single Connector, and creates a new + ConnectorRevision with the updated Connector. The operations are + validated against and must be compatible with the live schema. If the + operations and schema are not compatible or if the schema is not + present, this will result in an error. + operationId: firebasedataconnect.projects.locations.services.connectors.patch + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Connector' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: servicesId + required: true + schema: + type: string + - in: path + name: connectorsId + required: true + schema: + type: string + - in: query + name: updateMask + schema: + type: string + format: google-fieldmask + - in: query + name: requestId + schema: + type: string + - in: query + name: allowMissing + schema: + type: boolean + - in: query + name: validateOnly + schema: + type: boolean + delete: + description: Deletes a single Connector. + operationId: firebasedataconnect.projects.locations.services.connectors.delete + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: servicesId + required: true + schema: + type: string + - in: path + name: connectorsId + required: true + schema: + type: string + - in: query + name: force + schema: + type: boolean + - in: query + name: etag + schema: + type: string + - in: query + name: requestId + schema: + type: string + - in: query + name: allowMissing + schema: + type: boolean + - in: query + name: validateOnly + schema: + type: boolean + /v1/projects/{projectsId}/locations/{locationsId}/services/{servicesId}/schemas/{schemasId}: + parameters: *ref_1 + get: + description: Gets details of a single Schema. + operationId: firebasedataconnect.projects.locations.services.schemas.get + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Schema' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: servicesId + required: true + schema: + type: string + - in: path + name: schemasId + required: true + schema: + type: string + patch: + description: >- + Updates the parameters of a single Schema, and creates a new + SchemaRevision with the updated Schema. + operationId: firebasedataconnect.projects.locations.services.schemas.patch + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Schema' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: servicesId + required: true + schema: + type: string + - in: path + name: schemasId + required: true + schema: + type: string + - in: query + name: updateMask + schema: + type: string + format: google-fieldmask + - in: query + name: requestId + schema: + type: string + - in: query + name: allowMissing + schema: + type: boolean + - in: query + name: validateOnly + schema: + type: boolean + delete: + description: >- + Deletes a single Schema. Because the schema and connectors must be + compatible at all times, if this is called while any connectors are + active, this will result in an error. + operationId: firebasedataconnect.projects.locations.services.schemas.delete + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: servicesId + required: true + schema: + type: string + - in: path + name: schemasId + required: true + schema: + type: string + - in: query + name: force + schema: + type: boolean + - in: query + name: etag + schema: + type: string + - in: query + name: requestId + schema: + type: string + - in: query + name: allowMissing + schema: + type: boolean + - in: query + name: validateOnly + schema: + type: boolean + /v1/projects/{projectsId}/locations/{locationsId}/services/{servicesId}/schemas: + parameters: *ref_1 + get: + description: >- + Lists Schemas in a given project and location. Note that only + `schemas/main` is supported, so this will always return at most one + Schema. + operationId: firebasedataconnect.projects.locations.services.schemas.list + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/ListSchemasResponse' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: servicesId + required: true + schema: + type: string + - in: query + name: pageSize + schema: + type: integer + format: int32 + - in: query + name: pageToken + schema: + type: string + - in: query + name: filter + schema: + type: string + - in: query + name: orderBy + schema: + type: string + post: + description: >- + Creates a new Schema in a given project and location. Only creation of + `schemas/main` is supported and calling create with any other schema ID + will result in an error. + operationId: firebasedataconnect.projects.locations.services.schemas.create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Schema' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: locationsId + required: true + schema: + type: string + - in: path + name: servicesId + required: true + schema: + type: string + - in: query + name: schemaId + schema: + type: string + - in: query + name: requestId + schema: + type: string + - in: query + name: validateOnly + schema: + type: boolean diff --git a/providers/src/firebase/v00.00.00000/services/fcm.yaml b/providers/src/firebase/v00.00.00000/services/fcm.yaml new file mode 100644 index 00000000..36196e4e --- /dev/null +++ b/providers/src/firebase/v00.00.00000/services/fcm.yaml @@ -0,0 +1,867 @@ +openapi: 3.1.0 +info: + contact: + name: StackQL Studios + url: https://github.com/stackql/google-discovery-to-openapi + email: info@stackql.io + title: Firebase Cloud Messaging API + description: >- + FCM send API that provides a cross-platform messaging solution to reliably + deliver messages. + version: v1 + x-discovery-doc-revision: '20250815' + x-generated-date: '2025-08-28' +externalDocs: + url: https://firebase.google.com/docs/cloud-messaging +servers: + - url: https://fcm.googleapis.com +components: + securitySchemes: + Oauth2: + type: oauth2 + description: Oauth 2.0 implicit authentication + flows: + implicit: + authorizationUrl: https://accounts.google.com/o/oauth2/auth + scopes: &ref_0 + https://www.googleapis.com/auth/cloud-platform: >- + See, edit, configure, and delete your Google Cloud data and see + the email address for your Google Account. + https://www.googleapis.com/auth/firebase.messaging: >- + Send messages and manage messaging subscriptions for your Firebase + applications + Oauth2c: + type: oauth2 + description: Oauth 2.0 authorization code authentication + flows: + authorizationCode: + authorizationUrl: https://accounts.google.com/o/oauth2/auth + tokenUrl: https://accounts.google.com/o/oauth2/token + scopes: *ref_0 + schemas: + SendMessageRequest: + id: SendMessageRequest + description: Request to send a message to specified target. + type: object + properties: + validateOnly: + description: >- + Flag for testing the request without actually delivering the + message. + type: boolean + message: + description: Required. Message to send. + $ref: '#/components/schemas/Message' + Message: + id: Message + description: Message to send by Firebase Cloud Messaging Service. + type: object + properties: + name: + description: >- + Output Only. The identifier of the message sent, in the format of + `projects/*/messages/{message_id}`. + type: string + token: + description: Registration token to send a message to. + type: string + topic: + description: >- + Topic name to send a message to, e.g. "weather". Note: "/topics/" + prefix should not be provided. + type: string + condition: + description: >- + Condition to send a message to, e.g. "'foo' in topics && 'bar' in + topics". + type: string + data: + description: >- + Input only. Arbitrary key/value payload, which must be UTF-8 + encoded. The key should not be a reserved word ("from", + "message_type", or any word starting with "google." or + "gcm.notification."). When sending payloads containing only data + fields to iOS devices, only normal priority (`"apns-priority": "5"`) + is allowed in + [`ApnsConfig`](/docs/reference/fcm/rest/v1/projects.messages#apnsconfig). + type: object + additionalProperties: + type: string + notification: + description: Input only. Basic notification template to use across all platforms. + $ref: '#/components/schemas/Notification' + android: + description: >- + Input only. Android specific options for messages sent through [FCM + connection server](https://goo.gl/4GLdUl). + $ref: '#/components/schemas/AndroidConfig' + webpush: + description: >- + Input only. [Webpush protocol](https://tools.ietf.org/html/rfc8030) + options. + $ref: '#/components/schemas/WebpushConfig' + apns: + description: >- + Input only. [Apple Push Notification Service](https://goo.gl/MXRTPa) + specific options. + $ref: '#/components/schemas/ApnsConfig' + fcmOptions: + description: >- + Input only. Template for FCM SDK feature options to use across all + platforms. + $ref: '#/components/schemas/FcmOptions' + Notification: + id: Notification + description: Basic notification template to use across all platforms. + type: object + properties: + title: + description: The notification's title. + type: string + body: + description: The notification's body text. + type: string + image: + description: >- + Contains the URL of an image that is going to be downloaded on the + device and displayed in a notification. JPEG, PNG, BMP have full + support across platforms. Animated GIF and video only work on iOS. + WebP and HEIF have varying levels of support across platforms and + platform versions. Android has 1MB image size limit. Quota usage and + implications/costs for hosting image on Firebase Storage: + https://firebase.google.com/pricing + type: string + AndroidConfig: + id: AndroidConfig + description: >- + Android specific options for messages sent through [FCM connection + server](https://goo.gl/4GLdUl). + type: object + properties: + collapseKey: + description: >- + An identifier of a group of messages that can be collapsed, so that + only the last message gets sent when delivery can be resumed. A + maximum of 4 different collapse keys is allowed at any given time. + type: string + priority: + description: >- + Message priority. Can take "normal" and "high" values. For more + information, see [Setting the priority of a + message](https://goo.gl/GjONJv). + type: string + enumDescriptions: + - >- + Default priority for data messages. Normal priority messages won't + open network connections on a sleeping device, and their delivery + may be delayed to conserve the battery. For less time-sensitive + messages, such as notifications of new email or other data to + sync, choose normal delivery priority. + - >- + Default priority for notification messages. FCM attempts to + deliver high priority messages immediately, allowing the FCM + service to wake a sleeping device when possible and open a network + connection to your app server. Apps with instant messaging, chat, + or voice call alerts, for example, generally need to open a + network connection and make sure FCM delivers the message to the + device without delay. Set high priority if the message is + time-critical and requires the user's immediate interaction, but + beware that setting your messages to high priority contributes + more to battery drain compared with normal priority messages. + enum: + - NORMAL + - HIGH + ttl: + description: >- + How long (in seconds) the message should be kept in FCM storage if + the device is offline. The maximum time to live supported is 4 + weeks, and the default value is 4 weeks if not set. Set it to 0 if + want to send the message immediately. In JSON format, the Duration + type is encoded as a string rather than an object, where the string + ends in the suffix "s" (indicating seconds) and is preceded by the + number of seconds, with nanoseconds expressed as fractional seconds. + For example, 3 seconds with 0 nanoseconds should be encoded in JSON + format as "3s", while 3 seconds and 1 nanosecond should be expressed + in JSON format as "3.000000001s". The ttl will be rounded down to + the nearest second. + type: string + format: google-duration + restrictedPackageName: + description: >- + Package name of the application where the registration token must + match in order to receive the message. + type: string + data: + description: >- + Arbitrary key/value payload. If present, it will override + google.firebase.fcm.v1.Message.data. + type: object + additionalProperties: + type: string + notification: + description: Notification to send to android devices. + $ref: '#/components/schemas/AndroidNotification' + fcmOptions: + description: Options for features provided by the FCM SDK for Android. + $ref: '#/components/schemas/AndroidFcmOptions' + directBootOk: + description: >- + Optional. If set to true, messages will be allowed to be delivered + to the app while the device is in direct boot mode. See [Support + Direct Boot + mode](https://developer.android.com/training/articles/direct-boot). + type: boolean + bandwidthConstrainedOk: + description: >- + Optional. If set to true, messages will be allowed to be delivered + to the app while the device is in bandwidth constrained mode. This + should only be enabled when the app has been tested to properly + handle messages in bandwidth constrained mode. + type: boolean + restrictedSatelliteOk: + description: >- + Optional. If set to true, messages will be allowed to be delivered + to the app while the device is connected over a restricted satellite + network. This should only be enabled for messages that can be + handled over a restricted satellite network and only for apps that + are enabled to work over a restricted satellite network. Note that + the ability of the app to connect to a restricted satellite network + is dependent on the carrier's settings and the device model. + type: boolean + AndroidNotification: + id: AndroidNotification + description: Notification to send to android devices. + type: object + properties: + title: + description: >- + The notification's title. If present, it will override + google.firebase.fcm.v1.Notification.title. + type: string + body: + description: >- + The notification's body text. If present, it will override + google.firebase.fcm.v1.Notification.body. + type: string + icon: + description: >- + The notification's icon. Sets the notification icon to myicon for + drawable resource myicon. If you don't send this key in the request, + FCM displays the launcher icon specified in your app manifest. + type: string + color: + description: 'The notification''s icon color, expressed in #rrggbb format.' + type: string + sound: + description: >- + The sound to play when the device receives the notification. + Supports "default" or the filename of a sound resource bundled in + the app. Sound files must reside in /res/raw/. + type: string + tag: + description: >- + Identifier used to replace existing notifications in the + notification drawer. If not specified, each request creates a new + notification. If specified and a notification with the same tag is + already being shown, the new notification replaces the existing one + in the notification drawer. + type: string + clickAction: + description: >- + The action associated with a user click on the notification. If + specified, an activity with a matching intent filter is launched + when a user clicks on the notification. + type: string + bodyLocKey: + description: >- + The key to the body string in the app's string resources to use to + localize the body text to the user's current localization. See + [String Resources](https://goo.gl/NdFZGI) for more information. + type: string + bodyLocArgs: + description: >- + Variable string values to be used in place of the format specifiers + in body_loc_key to use to localize the body text to the user's + current localization. See [Formatting and + Styling](https://goo.gl/MalYE3) for more information. + type: array + items: + type: string + titleLocKey: + description: >- + The key to the title string in the app's string resources to use to + localize the title text to the user's current localization. See + [String Resources](https://goo.gl/NdFZGI) for more information. + type: string + titleLocArgs: + description: >- + Variable string values to be used in place of the format specifiers + in title_loc_key to use to localize the title text to the user's + current localization. See [Formatting and + Styling](https://goo.gl/MalYE3) for more information. + type: array + items: + type: string + channelId: + description: >- + The [notification's channel + id](https://developer.android.com/guide/topics/ui/notifiers/notifications#ManageChannels) + (new in Android O). The app must create a channel with this channel + ID before any notification with this channel ID is received. If you + don't send this channel ID in the request, or if the channel ID + provided has not yet been created by the app, FCM uses the channel + ID specified in the app manifest. + type: string + ticker: + description: >- + Sets the "ticker" text, which is sent to accessibility services. + Prior to API level 21 (`Lollipop`), sets the text that is displayed + in the status bar when the notification first arrives. + type: string + sticky: + description: >- + When set to false or unset, the notification is automatically + dismissed when the user clicks it in the panel. When set to true, + the notification persists even when the user clicks it. + type: boolean + eventTime: + description: >- + Set the time that the event in the notification occurred. + Notifications in the panel are sorted by this time. A point in time + is represented using + [protobuf.Timestamp](https://developers.google.com/protocol-buffers/docs/reference/java/com/google/protobuf/Timestamp). + type: string + format: google-datetime + localOnly: + description: >- + Set whether or not this notification is relevant only to the current + device. Some notifications can be bridged to other devices for + remote display, such as a Wear OS watch. This hint can be set to + recommend this notification not be bridged. See [Wear OS + guides](https://developer.android.com/training/wearables/notifications/bridger#existing-method-of-preventing-bridging) + type: boolean + notificationPriority: + description: >- + Set the relative priority for this notification. Priority is an + indication of how much of the user's attention should be consumed by + this notification. Low-priority notifications may be hidden from the + user in certain situations, while the user might be interrupted for + a higher-priority notification. The effect of setting the same + priorities may differ slightly on different platforms. Note this + priority differs from `AndroidMessagePriority`. This priority is + processed by the client after the message has been delivered, + whereas + [AndroidMessagePriority](https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages#androidmessagepriority) + is an FCM concept that controls when the message is delivered. + type: string + enumDescriptions: + - >- + If priority is unspecified, notification priority is set to + `PRIORITY_DEFAULT`. + - >- + Lowest notification priority. Notifications with this + `PRIORITY_MIN` might not be shown to the user except under special + circumstances, such as detailed notification logs. + - >- + Lower notification priority. The UI may choose to show the + notifications smaller, or at a different position in the list, + compared with notifications with `PRIORITY_DEFAULT`. + - >- + Default notification priority. If the application does not + prioritize its own notifications, use this value for all + notifications. + - >- + Higher notification priority. Use this for more important + notifications or alerts. The UI may choose to show these + notifications larger, or at a different position in the + notification lists, compared with notifications with + `PRIORITY_DEFAULT`. + - >- + Highest notification priority. Use this for the application's most + important items that require the user's prompt attention or input. + enum: + - PRIORITY_UNSPECIFIED + - PRIORITY_MIN + - PRIORITY_LOW + - PRIORITY_DEFAULT + - PRIORITY_HIGH + - PRIORITY_MAX + defaultSound: + description: >- + If set to true, use the Android framework's default sound for the + notification. Default values are specified in + [config.xml](https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values/config.xml). + type: boolean + defaultVibrateTimings: + description: >- + If set to true, use the Android framework's default vibrate pattern + for the notification. Default values are specified in + [config.xml](https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values/config.xml). + If `default_vibrate_timings` is set to true and `vibrate_timings` is + also set, the default value is used instead of the user-specified + `vibrate_timings`. + type: boolean + defaultLightSettings: + description: >- + If set to true, use the Android framework's default LED light + settings for the notification. Default values are specified in + [config.xml](https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values/config.xml). + If `default_light_settings` is set to true and `light_settings` is + also set, the user-specified `light_settings` is used instead of the + default value. + type: boolean + vibrateTimings: + description: >- + Set the vibration pattern to use. Pass in an array of + [protobuf.Duration](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Duration) + to turn on or off the vibrator. The first value indicates the + `Duration` to wait before turning the vibrator on. The next value + indicates the `Duration` to keep the vibrator on. Subsequent values + alternate between `Duration` to turn the vibrator off and to turn + the vibrator on. If `vibrate_timings` is set and + `default_vibrate_timings` is set to `true`, the default value is + used instead of the user-specified `vibrate_timings`. + type: array + items: + type: string + format: google-duration + visibility: + description: >- + Set the + [Notification.visibility](https://developer.android.com/reference/android/app/Notification.html#visibility) + of the notification. + type: string + enumDescriptions: + - If unspecified, default to `Visibility.PRIVATE`. + - >- + Show this notification on all lockscreens, but conceal sensitive + or private information on secure lockscreens. + - Show this notification in its entirety on all lockscreens. + - >- + Do not reveal any part of this notification on a secure + lockscreen. + enum: + - VISIBILITY_UNSPECIFIED + - PRIVATE + - PUBLIC + - SECRET + notificationCount: + description: >- + Sets the number of items this notification represents. May be + displayed as a badge count for launchers that support badging.See + [Notification + Badge](https://developer.android.com/training/notify-user/badges). + For example, this might be useful if you're using just one + notification to represent multiple new messages but you want the + count here to represent the number of total new messages. If zero or + unspecified, systems that support badging use the default, which is + to increment a number displayed on the long-press menu each time a + new notification arrives. + type: integer + format: int32 + lightSettings: + description: >- + Settings to control the notification's LED blinking rate and color + if LED is available on the device. The total blinking time is + controlled by the OS. + $ref: '#/components/schemas/LightSettings' + image: + description: >- + Contains the URL of an image that is going to be displayed in a + notification. If present, it will override + google.firebase.fcm.v1.Notification.image. + type: string + bypassProxyNotification: + description: >- + If set, display notifications delivered to the device will be + handled by the app instead of the proxy. + deprecated: true + type: boolean + proxy: + description: Setting to control when a notification may be proxied. + type: string + enumDescriptions: + - If unspecified, default to `Proxy.IF_PRIORITY_LOWERED`. + - Try to proxy this notification. + - Do not proxy this notification. + - >- + Only try to proxy this notification if its + `AndroidMessagePriority` was lowered from `HIGH` to `NORMAL` on + the device. + enum: + - PROXY_UNSPECIFIED + - ALLOW + - DENY + - IF_PRIORITY_LOWERED + LightSettings: + id: LightSettings + description: Settings to control notification LED. + type: object + properties: + color: + description: >- + Required. Set `color` of the LED with + [google.type.Color](https://github.com/googleapis/googleapis/blob/master/google/type/color.proto). + $ref: '#/components/schemas/Color' + lightOnDuration: + description: >- + Required. Along with `light_off_duration`, define the blink rate of + LED flashes. Resolution defined by + [proto.Duration](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Duration) + type: string + format: google-duration + lightOffDuration: + description: >- + Required. Along with `light_on_duration `, define the blink rate of + LED flashes. Resolution defined by + [proto.Duration](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Duration) + type: string + format: google-duration + Color: + id: Color + description: >- + Represents a color in the RGBA color space. This representation is + designed for simplicity of conversion to and from color representations + in various languages over compactness. For example, the fields of this + representation can be trivially provided to the constructor of + `java.awt.Color` in Java; it can also be trivially provided to UIColor's + `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little + work, it can be easily formatted into a CSS `rgba()` string in + JavaScript. This reference page doesn't have information about the + absolute color space that should be used to interpret the RGB value—for + example, sRGB, Adobe RGB, DCI-P3, and BT.2020. By default, applications + should assume the sRGB color space. When color equality needs to be + decided, implementations, unless documented otherwise, treat two colors + as equal if all their red, green, blue, and alpha values each differ by + at most `1e-5`. Example (Java): import com.google.type.Color; // ... + public static java.awt.Color fromProto(Color protocolor) { float alpha = + protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return + new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), + protocolor.getBlue(), alpha); } public static Color + toProto(java.awt.Color color) { float red = (float) color.getRed(); + float green = (float) color.getGreen(); float blue = (float) + color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder + = Color .newBuilder() .setRed(red / denominator) .setGreen(green / + denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); + if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() + .setValue(((float) alpha) / denominator) .build()); } return + resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static + UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; + float green = [protocolor green]; float blue = [protocolor blue]; + FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if + (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return + [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static + Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if + (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return + nil; } Color* result = [[Color alloc] init]; [result setRed:red]; + [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { + [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; + return result; } // ... Example (JavaScript): // ... var protoToCssColor + = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var + greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || + 0.0; var red = Math.floor(redFrac * 255); var green = + Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if + (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } + var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, + green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, + ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var + rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString + = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var + resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { + resultBuilder.push('0'); } resultBuilder.push(hexString); return + resultBuilder.join(''); }; // ... + type: object + properties: + red: + description: The amount of red in the color as a value in the interval [0, 1]. + type: number + format: float + green: + description: The amount of green in the color as a value in the interval [0, 1]. + type: number + format: float + blue: + description: The amount of blue in the color as a value in the interval [0, 1]. + type: number + format: float + alpha: + description: >- + The fraction of this color that should be applied to the pixel. That + is, the final pixel color is defined by the equation: `pixel color = + alpha * (this color) + (1.0 - alpha) * (background color)` This + means that a value of 1.0 corresponds to a solid color, whereas a + value of 0.0 corresponds to a completely transparent color. This + uses a wrapper message rather than a simple float scalar so that it + is possible to distinguish between a default value and the value + being unset. If omitted, this color object is rendered as a solid + color (as if the alpha value had been explicitly given a value of + 1.0). + type: number + format: float + AndroidFcmOptions: + id: AndroidFcmOptions + description: Options for features provided by the FCM SDK for Android. + type: object + properties: + analyticsLabel: + description: Label associated with the message's analytics data. + type: string + WebpushConfig: + id: WebpushConfig + description: '[Webpush protocol](https://tools.ietf.org/html/rfc8030) options.' + type: object + properties: + headers: + description: >- + HTTP headers defined in webpush protocol. Refer to [Webpush + protocol](https://tools.ietf.org/html/rfc8030#section-5) for + supported headers, e.g. "TTL": "15". + type: object + additionalProperties: + type: string + data: + description: >- + Arbitrary key/value payload. If present, it will override + google.firebase.fcm.v1.Message.data. + type: object + additionalProperties: + type: string + notification: + description: >- + Web Notification options as a JSON object. Supports Notification + instance properties as defined in [Web Notification + API](https://developer.mozilla.org/en-US/docs/Web/API/Notification). + If present, "title" and "body" fields override + [google.firebase.fcm.v1.Notification.title] and + [google.firebase.fcm.v1.Notification.body]. + type: object + additionalProperties: + type: any + description: Properties of the object. + fcmOptions: + description: Options for features provided by the FCM SDK for Web. + $ref: '#/components/schemas/WebpushFcmOptions' + WebpushFcmOptions: + id: WebpushFcmOptions + description: Options for features provided by the FCM SDK for Web. + type: object + properties: + link: + description: >- + The link to open when the user clicks on the notification. For all + URL values, HTTPS is required. + type: string + analyticsLabel: + description: Label associated with the message's analytics data. + type: string + ApnsConfig: + id: ApnsConfig + description: >- + [Apple Push Notification Service](https://goo.gl/MXRTPa) specific + options. + type: object + properties: + headers: + description: >- + HTTP request headers defined in Apple Push Notification Service. + Refer to [APNs request + headers](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns) + for supported headers such as `apns-expiration` and `apns-priority`. + The backend sets a default value for `apns-expiration` of 30 days + and a default value for `apns-priority` of 10 if not explicitly set. + type: object + additionalProperties: + type: string + payload: + description: >- + APNs payload as a JSON object, including both `aps` dictionary and + custom payload. See [Payload Key + Reference](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification). + If present, it overrides google.firebase.fcm.v1.Notification.title + and google.firebase.fcm.v1.Notification.body. + type: object + additionalProperties: + type: any + description: Properties of the object. + fcmOptions: + description: Options for features provided by the FCM SDK for iOS. + $ref: '#/components/schemas/ApnsFcmOptions' + liveActivityToken: + description: >- + Optional. [Apple Live + Activity](https://developer.apple.com/design/human-interface-guidelines/live-activities) + token to send updates to. This token can either be a push token or + [push-to-start](https://developer.apple.com/documentation/activitykit/activity/pushtostarttoken) + token from Apple. To start, update, or end a live activity remotely + using FCM, construct an [`aps + payload`](https://developer.apple.com/documentation/activitykit/starting-and-updating-live-activities-with-activitykit-push-notifications#Construct-the-payload-that-starts-a-Live-Activity) + and put it in the + [`apns.payload`](https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages#ApnsConfig) + field. + type: string + ApnsFcmOptions: + id: ApnsFcmOptions + description: Options for features provided by the FCM SDK for iOS. + type: object + properties: + analyticsLabel: + description: Label associated with the message's analytics data. + type: string + image: + description: >- + Contains the URL of an image that is going to be displayed in a + notification. If present, it will override + google.firebase.fcm.v1.Notification.image. + type: string + FcmOptions: + id: FcmOptions + description: Platform independent options for features provided by the FCM SDKs. + type: object + properties: + analyticsLabel: + description: Label associated with the message's analytics data. + type: string + parameters: + access_token: + description: OAuth access token. + in: query + name: access_token + schema: + type: string + alt: + description: Data format for response. + in: query + name: alt + schema: + type: string + enum: + - json + - media + - proto + callback: + description: JSONP + in: query + name: callback + schema: + type: string + fields: + description: Selector specifying which fields to include in a partial response. + in: query + name: fields + schema: + type: string + key: + description: >- + API key. Your API key identifies your project and provides you with API + access, quota, and reports. Required unless you provide an OAuth 2.0 + token. + in: query + name: key + schema: + type: string + oauth_token: + description: OAuth 2.0 token for the current user. + in: query + name: oauth_token + schema: + type: string + prettyPrint: + description: Returns response with indentations and line breaks. + in: query + name: prettyPrint + schema: + type: boolean + quotaUser: + description: >- + Available to use for quota purposes for server-side applications. Can be + any arbitrary string assigned to a user, but should not exceed 40 + characters. + in: query + name: quotaUser + schema: + type: string + upload_protocol: + description: Upload protocol for media (e.g. "raw", "multipart"). + in: query + name: upload_protocol + schema: + type: string + uploadType: + description: Legacy upload protocol for media (e.g. "media", "multipart"). + in: query + name: uploadType + schema: + type: string + _.xgafv: + description: V1 error format. + in: query + name: $.xgafv + schema: + type: string + enum: + - '1' + - '2' + x-stackQL-resources: + messages: + id: firebase.fcm.messages + name: messages + title: Messages + methods: + send: + operation: + $ref: '#/paths/~1v1~1projects~1{projectsId}~1messages:send/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: [] + insert: [] + update: [] + replace: [] + delete: [] +paths: + /v1/projects/{projectsId}/messages:send: + parameters: + - $ref: '#/components/parameters/access_token' + - $ref: '#/components/parameters/alt' + - $ref: '#/components/parameters/callback' + - $ref: '#/components/parameters/fields' + - $ref: '#/components/parameters/key' + - $ref: '#/components/parameters/oauth_token' + - $ref: '#/components/parameters/prettyPrint' + - $ref: '#/components/parameters/quotaUser' + - $ref: '#/components/parameters/upload_protocol' + - $ref: '#/components/parameters/uploadType' + - $ref: '#/components/parameters/_.xgafv' + post: + description: >- + Send a message to specified target (a registration token, topic or + condition). + operationId: fcm.projects.messages.send + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SendMessageRequest' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase.messaging + Oauth2c: + - https://www.googleapis.com/auth/firebase.messaging + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Message' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string diff --git a/providers/src/firebase/v00.00.00000/services/fcmdata.yaml b/providers/src/firebase/v00.00.00000/services/fcmdata.yaml new file mode 100644 index 00000000..cf134564 --- /dev/null +++ b/providers/src/firebase/v00.00.00000/services/fcmdata.yaml @@ -0,0 +1,479 @@ +openapi: 3.1.0 +info: + contact: + name: StackQL Studios + url: https://github.com/stackql/google-discovery-to-openapi + email: info@stackql.io + title: Firebase Cloud Messaging Data API + description: >- + Provides additional information about Firebase Cloud Messaging (FCM) message + sends and deliveries. + version: v1beta1 + x-discovery-doc-revision: '20250616' + x-generated-date: '2025-08-28' +externalDocs: + url: https://firebase.google.com/docs/cloud-messaging +servers: + - url: https://fcmdata.googleapis.com +components: + securitySchemes: + Oauth2: + type: oauth2 + description: Oauth 2.0 implicit authentication + flows: + implicit: + authorizationUrl: https://accounts.google.com/o/oauth2/auth + scopes: &ref_0 + https://www.googleapis.com/auth/cloud-platform: >- + See, edit, configure, and delete your Google Cloud data and see + the email address for your Google Account. + Oauth2c: + type: oauth2 + description: Oauth 2.0 authorization code authentication + flows: + authorizationCode: + authorizationUrl: https://accounts.google.com/o/oauth2/auth + tokenUrl: https://accounts.google.com/o/oauth2/token + scopes: *ref_0 + schemas: + GoogleFirebaseFcmDataV1beta1Data: + description: Data detailing messaging delivery + properties: + countNotificationsAccepted: + description: >- + Count of notifications accepted by FCM intended for Android devices. + The targeted device must have opted in to the collection of usage + and diagnostic information. + format: int64 + type: string + proxyNotificationInsightPercents: + $ref: >- + #/components/schemas/GoogleFirebaseFcmDataV1beta1ProxyNotificationInsightPercents + description: Additional insights about proxy notification delivery. + messageOutcomePercents: + $ref: >- + #/components/schemas/GoogleFirebaseFcmDataV1beta1MessageOutcomePercents + description: Mutually exclusive breakdown of message delivery outcomes. + deliveryPerformancePercents: + $ref: >- + #/components/schemas/GoogleFirebaseFcmDataV1beta1DeliveryPerformancePercents + description: >- + Additional information about delivery performance for messages that + were successfully delivered. + messageInsightPercents: + $ref: >- + #/components/schemas/GoogleFirebaseFcmDataV1beta1MessageInsightPercents + description: Additional general insights about message delivery. + countMessagesAccepted: + type: string + format: int64 + description: >- + Count of messages accepted by FCM intended for Android devices. The + targeted device must have opted in to the collection of usage and + diagnostic information. + type: object + id: GoogleFirebaseFcmDataV1beta1Data + GoogleFirebaseFcmDataV1beta1DeliveryPerformancePercents: + properties: + delayedDeviceDoze: + type: number + description: >- + The percentage of accepted messages that were delayed because the + device was in doze mode. Only [normal priority + messages](https://firebase.google.com/docs/cloud-messaging/concept-options#setting-the-priority-of-a-message) + should be delayed due to doze mode. + format: float + delayedMessageThrottled: + type: number + format: float + description: >- + The percentage of accepted messages that were delayed due to message + throttling, such as [collapsible message + throttling](https://firebase.google.com/docs/cloud-messaging/concept-options#collapsible_throttling) + or [maximum message rate + throttling](https://firebase.google.com/docs/cloud-messaging/concept-options#device_throttling). + delayedUserStopped: + description: >- + The percentage of accepted messages that were delayed because the + intended device user-profile was + [stopped](https://firebase.google.com/docs/cloud-messaging/android/receive#handling_messages) + on the target device at the time of the send. The messages were + eventually delivered when the user-profile was started again. + type: number + format: float + deliveredNoDelay: + format: float + description: >- + The percentage of accepted messages that were delivered to the + device without delay from the FCM system. + type: number + delayedDeviceOffline: + format: float + description: >- + The percentage of accepted messages that were delayed because the + target device was not connected at the time of sending. These + messages were eventually delivered when the device reconnected. + type: number + type: object + id: GoogleFirebaseFcmDataV1beta1DeliveryPerformancePercents + description: >- + Overview of delivery performance for messages that were successfully + delivered. All percentages are calculated with countMessagesAccepted as + the denominator. These categories are not mutually exclusive; a message + can be delayed for multiple reasons. + GoogleFirebaseFcmDataV1beta1MessageInsightPercents: + properties: + priorityLowered: + description: >- + The percentage of accepted messages that had their priority lowered + from high to normal. See [documentation for setting message + priority](https://firebase.google.com/docs/cloud-messaging/android/message-priority). + format: float + type: number + id: GoogleFirebaseFcmDataV1beta1MessageInsightPercents + description: >- + Additional information about message delivery. All percentages are + calculated with countMessagesAccepted as the denominator. + type: object + GoogleFirebaseFcmDataV1beta1MessageOutcomePercents: + type: object + id: GoogleFirebaseFcmDataV1beta1MessageOutcomePercents + description: >- + Percentage breakdown of message delivery outcomes. These categories are + mutually exclusive. All percentages are calculated with + countMessagesAccepted as the denominator. These categories may not + account for all message outcomes. + properties: + delivered: + format: float + description: >- + The percentage of all accepted messages that were successfully + delivered to the device. + type: number + droppedTooManyPendingMessages: + description: >- + The percentage of accepted messages that were dropped due to [too + many undelivered non-collapsible + messages](https://firebase.google.com/docs/cloud-messaging/concept-options#collapsible_and_non-collapsible_messages). + Specifically, each app instance can only have 100 pending messages + stored on our servers for a device which is disconnected. When that + device reconnects, those messages are delivered. When there are more + than the maximum pending messages, we call + [OnDeletedMessages()](https://firebase.google.com/docs/cloud-messaging/android/receive#override-ondeletedmessages) + in our SDK instead of delivering the messages. + format: float + type: number + droppedDeviceInactive: + type: number + format: float + description: >- + The percentage of accepted messages that were dropped because the + target device is inactive. FCM will drop messages if the target + device is deemed inactive by our servers. If a device does + reconnect, we call + [OnDeletedMessages()](https://firebase.google.com/docs/cloud-messaging/android/receive#override-ondeletedmessages) + in our SDK instead of delivering the messages. + droppedAppForceStopped: + type: number + format: float + description: >- + The percentage of accepted messages that were dropped because the + application was force stopped on the device at the time of delivery + and retries were unsuccessful. + droppedTtlExpired: + format: float + type: number + description: >- + The percentage of accepted messages that expired because [Time To + Live + (TTL)](https://firebase.google.com/docs/cloud-messaging/concept-options#ttl) + elapsed before the target device reconnected. + pending: + format: float + description: >- + The percentage of messages accepted on this day that were not + dropped and not delivered, due to the device being disconnected (as + of the end of the America/Los_Angeles day when the message was sent + to FCM). A portion of these messages will be delivered the next day + when the device connects but others may be destined to devices that + ultimately never reconnect. + type: number + collapsed: + format: float + description: >- + The percentage of accepted messages that were + [collapsed](https://firebase.google.com/docs/cloud-messaging/concept-options#collapsible_and_non-collapsible_messages) + by another message. + type: number + GoogleFirebaseFcmDataV1beta1ProxyNotificationInsightPercents: + id: GoogleFirebaseFcmDataV1beta1ProxyNotificationInsightPercents + type: object + description: >- + Additional information about [proxy + notification](https://firebase.google.com/docs/cloud-messaging/android/message-priority#proxy) + delivery. All percentages are calculated with countNotificationsAccepted + as the denominator. + properties: + failed: + type: number + format: float + description: >- + The percentage of accepted notifications that failed to be proxied. + This is usually caused by exceptions that occurred while calling + [notifyAsPackage](https://developer.android.com/reference/android/app/NotificationManager#notifyAsPackage%28java.lang.String,%20java.lang.String,%20int,%20android.app.Notification%29). + skippedNotThrottled: + format: float + type: number + description: >- + The percentage of accepted notifications that were skipped because + the messages were not throttled. + skippedUnconfigured: + format: float + type: number + description: >- + The percentage of accepted notifications that were skipped because + configurations required for notifications to be proxied were + missing. + skippedUnsupported: + type: number + format: float + description: >- + The percentage of accepted notifications that were skipped because + proxy notification is unsupported for the recipient. + skippedOptedOut: + description: >- + The percentage of accepted notifications that were skipped because + the app disallowed these messages to be proxied. + format: float + type: number + proxied: + type: number + format: float + description: >- + The percentage of accepted notifications that were successfully + proxied by [Google Play + services](https://developers.google.com/android/guides/overview). + GoogleTypeDate: + properties: + day: + format: int32 + type: integer + description: >- + Day of a month. Must be from 1 to 31 and valid for the year and + month, or 0 to specify a year by itself or a year and month where + the day isn't significant. + year: + type: integer + format: int32 + description: >- + Year of the date. Must be from 1 to 9999, or 0 to specify a date + without a year. + month: + type: integer + description: >- + Month of a year. Must be from 1 to 12, or 0 to specify a year + without a month and day. + format: int32 + id: GoogleTypeDate + type: object + description: >- + Represents a whole or partial calendar date, such as a birthday. The + time of day and time zone are either specified elsewhere or are + insignificant. The date is relative to the Gregorian Calendar. This can + represent one of the following: * A full date, with non-zero year, + month, and day values. * A month and day, with a zero year (for example, + an anniversary). * A year on its own, with a zero month and a zero day. + * A year and month, with a zero day (for example, a credit card + expiration date). Related types: * google.type.TimeOfDay * + google.type.DateTime * google.protobuf.Timestamp + GoogleFirebaseFcmDataV1beta1ListAndroidDeliveryDataResponse: + properties: + nextPageToken: + description: >- + A token, which can be sent as `page_token` to retrieve the next + page. If this field is omitted, there are no subsequent pages. + type: string + androidDeliveryData: + items: + $ref: >- + #/components/schemas/GoogleFirebaseFcmDataV1beta1AndroidDeliveryData + type: array + description: >- + The delivery data for the provided app. There will be one entry per + combination of app, date, and analytics label. + description: Response message for ListAndroidDeliveryData. + type: object + id: GoogleFirebaseFcmDataV1beta1ListAndroidDeliveryDataResponse + GoogleFirebaseFcmDataV1beta1AndroidDeliveryData: + properties: + data: + description: The data for the specified appId, date, and analyticsLabel. + $ref: '#/components/schemas/GoogleFirebaseFcmDataV1beta1Data' + date: + $ref: '#/components/schemas/GoogleTypeDate' + description: The date represented by this entry. + appId: + description: The app ID to which the messages were sent. + type: string + analyticsLabel: + description: >- + The analytics label associated with the messages sent. All messages + sent without an analytics label will be grouped together in a single + entry. + type: string + id: GoogleFirebaseFcmDataV1beta1AndroidDeliveryData + description: >- + Message delivery data for a given date, app, and analytics label + combination. + type: object + parameters: + oauth_token: + description: OAuth 2.0 token for the current user. + in: query + name: oauth_token + schema: + type: string + uploadType: + description: Legacy upload protocol for media (e.g. "media", "multipart"). + in: query + name: uploadType + schema: + type: string + upload_protocol: + description: Upload protocol for media (e.g. "raw", "multipart"). + in: query + name: upload_protocol + schema: + type: string + _.xgafv: + description: V1 error format. + in: query + name: $.xgafv + schema: + type: string + enum: + - '1' + - '2' + alt: + description: Data format for response. + in: query + name: alt + schema: + type: string + enum: + - json + - media + - proto + fields: + description: Selector specifying which fields to include in a partial response. + in: query + name: fields + schema: + type: string + key: + description: >- + API key. Your API key identifies your project and provides you with API + access, quota, and reports. Required unless you provide an OAuth 2.0 + token. + in: query + name: key + schema: + type: string + callback: + description: JSONP + in: query + name: callback + schema: + type: string + quotaUser: + description: >- + Available to use for quota purposes for server-side applications. Can be + any arbitrary string assigned to a user, but should not exceed 40 + characters. + in: query + name: quotaUser + schema: + type: string + access_token: + description: OAuth access token. + in: query + name: access_token + schema: + type: string + prettyPrint: + description: Returns response with indentations and line breaks. + in: query + name: prettyPrint + schema: + type: boolean + x-stackQL-resources: + delivery_data: + id: firebase.fcmdata.delivery_data + name: delivery_data + title: Delivery_data + methods: + list: + operation: + $ref: >- + #/paths/~1v1beta1~1projects~1{projectsId}~1androidApps~1{androidAppsId}~1deliveryData/get + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.androidDeliveryData + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/delivery_data/methods/list' + insert: [] + update: [] + replace: [] + delete: [] +paths: + /v1beta1/projects/{projectsId}/androidApps/{androidAppsId}/deliveryData: + parameters: + - $ref: '#/components/parameters/oauth_token' + - $ref: '#/components/parameters/uploadType' + - $ref: '#/components/parameters/upload_protocol' + - $ref: '#/components/parameters/_.xgafv' + - $ref: '#/components/parameters/alt' + - $ref: '#/components/parameters/fields' + - $ref: '#/components/parameters/key' + - $ref: '#/components/parameters/callback' + - $ref: '#/components/parameters/quotaUser' + - $ref: '#/components/parameters/access_token' + - $ref: '#/components/parameters/prettyPrint' + get: + description: List aggregate delivery data for the given Android application. + operationId: fcmdata.projects.androidApps.deliveryData.list + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GoogleFirebaseFcmDataV1beta1ListAndroidDeliveryDataResponse + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: androidAppsId + required: true + schema: + type: string + - in: query + name: pageToken + schema: + type: string + - in: query + name: pageSize + schema: + type: integer + format: int32 diff --git a/providers/src/firebase/v00.00.00000/services/firebase.yaml b/providers/src/firebase/v00.00.00000/services/firebase.yaml index 6406302f..ec8e8bde 100644 --- a/providers/src/firebase/v00.00.00000/services/firebase.yaml +++ b/providers/src/firebase/v00.00.00000/services/firebase.yaml @@ -5,740 +5,1524 @@ info: url: https://github.com/stackql/google-discovery-to-openapi email: info@stackql.io title: Firebase Management API - description: The Firebase Management API enables programmatic setup and management of Firebase projects, including a project's Firebase resources and Firebase apps. + description: >- + The Firebase Management API enables programmatic setup and management of + Firebase projects, including a project's Firebase resources and Firebase + apps. version: v1beta1 - x-discovery-doc-revision: '20221221' - x-generated-date: '2023-01-06' + x-discovery-doc-revision: '20250822' + x-generated-date: '2025-08-28' externalDocs: url: https://firebase.google.com servers: - url: https://firebase.googleapis.com components: + securitySchemes: + Oauth2: + type: oauth2 + description: Oauth 2.0 implicit authentication + flows: + implicit: + authorizationUrl: https://accounts.google.com/o/oauth2/auth + scopes: &ref_0 + https://www.googleapis.com/auth/cloud-platform: >- + See, edit, configure, and delete your Google Cloud data and see + the email address for your Google Account. + https://www.googleapis.com/auth/cloud-platform.read-only: >- + View your data across Google Cloud services and see the email + address of your Google Account + https://www.googleapis.com/auth/firebase: View and administer all your Firebase data and settings + https://www.googleapis.com/auth/firebase.readonly: View all your Firebase data and settings + Oauth2c: + type: oauth2 + description: Oauth 2.0 authorization code authentication + flows: + authorizationCode: + authorizationUrl: https://accounts.google.com/o/oauth2/auth + tokenUrl: https://accounts.google.com/o/oauth2/token + scopes: *ref_0 schemas: Operation: id: Operation - description: This resource represents a long-running operation that is the result of a network API call. + description: >- + This resource represents a long-running operation that is the result of + a network API call. type: object properties: + name: + description: >- + The server-assigned name, which is only unique within the same + service that originally returns it. If you use the default HTTP + mapping, the `name` should be a resource name ending with + `operations/{unique_id}`. + type: string metadata: - additionalProperties: - description: Properties of the object. Contains field @type with type URL. - type: any - type: object - description: Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any. - response: + description: >- + Service-specific metadata associated with the operation. It + typically contains progress information and common metadata such as + create time. Some services might not provide such metadata. Any + method that returns a long-running operation should document the + metadata type, if any. type: object - description: The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`. additionalProperties: - description: Properties of the object. Contains field @type with type URL. type: any + description: Properties of the object. Contains field @type with type URL. done: + description: >- + If the value is `false`, it means the operation is still in + progress. If `true`, the operation is completed, and either `error` + or `response` is available. type: boolean - description: If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available. error: + description: >- + The error result of the operation in case of failure or + cancellation. $ref: '#/components/schemas/Status' - description: The error result of the operation in case of failure or cancellation. - name: - type: string - description: The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`. - RemoveAnalyticsRequest: - id: RemoveAnalyticsRequest - type: object - properties: - analyticsPropertyId: - type: string - description: 'Optional. The ID of the Google Analytics property associated with the specified `FirebaseProject`. - If not set, then the Google Analytics property that is currently associated with the specified `FirebaseProject` is removed. - If set, and the specified `FirebaseProject` is currently associated with a *different* Google Analytics property, then the response is a `412 Precondition Failed` error. ' - AddFirebaseRequest: - id: AddFirebaseRequest - type: object - description: All fields are required. - properties: - locationId: - description: Deprecated. Instead, to set a Project's default GCP resource location, call [`FinalizeDefaultLocation`](../projects.defaultLocation/finalize) after you add Firebase resources to the GCP `Project`. The ID of the Project's default GCP resource location. The location must be one of the available [GCP resource locations](https://firebase.google.com/docs/projects/locations). - type: string - StreamMapping: - properties: - app: - type: string - description: 'The resource name of the Firebase App associated with the Google Analytics data stream, in the format: projects/PROJECT_IDENTIFIER/androidApps/APP_ID or projects/PROJECT_IDENTIFIER/iosApps/APP_ID or projects/PROJECT_IDENTIFIER /webApps/APP_ID Refer to the `FirebaseProject` [`name`](../projects#FirebaseProject.FIELDS.name) field for details about PROJECT_IDENTIFIER values.' - streamId: - format: int64 - type: string - description: The unique Google-assigned identifier of the Google Analytics data stream associated with the Firebase App. Learn more about Google Analytics data streams in the [Analytics documentation](https://support.google.com/analytics/answer/9303323). - measurementId: - description: Applicable for Firebase Web Apps only. The unique Google-assigned identifier of the Google Analytics web stream associated with the Firebase Web App. Firebase SDKs use this ID to interact with Google Analytics APIs. Learn more about this ID and Google Analytics web streams in the [Analytics documentation](https://support.google.com/analytics/answer/9304153). - type: string + response: + description: >- + The normal, successful response of the operation. If the original + method returns no data on success, such as `Delete`, the response is + `google.protobuf.Empty`. If the original method is standard + `Get`/`Create`/`Update`, the response should be the resource. For + other methods, the response should have the type `XxxResponse`, + where `Xxx` is the original method name. For example, if the + original method name is `TakeSnapshot()`, the inferred response type + is `TakeSnapshotResponse`. + type: object + additionalProperties: + type: any + description: Properties of the object. Contains field @type with type URL. + Status: + id: Status + description: >- + 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](https://github.com/grpc). Each `Status` message + contains three pieces of data: error code, error message, and error + details. You can find out more about this error model and how to work + with it in the [API Design + Guide](https://cloud.google.com/apis/design/errors). type: object - id: StreamMapping - description: A mapping of a Firebase App to a Google Analytics data stream - Location: - id: Location properties: - type: - enum: - - LOCATION_TYPE_UNSPECIFIED - - REGIONAL - - MULTI_REGIONAL - description: Indicates whether the GCP resource location is a [regional or multi-regional location](https://firebase.google.com/docs/projects/locations#types) for data replication. - type: string - enumDescriptions: - - Used internally for distinguishing unset values and is not intended for external use. - - The location is a regional location. Data in a regional location is replicated in multiple zones within a region. - - The location is a multi-regional location. Data in a multi-region location is replicated in multiple regions. Within each region, data is replicated in multiple zones. - locationId: + code: + description: The status code, which should be an enum value of google.rpc.Code. + type: integer + format: int32 + message: + description: >- + 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 field, or localized by the client. type: string - description: The ID of the GCP resource location. It will be one of the available [GCP resource locations](https://firebase.google.com/docs/projects/locations#types). - features: - description: Products and services that are available in the GCP resource location. + details: + description: >- + A list of messages that carry the error details. There is a common + set of message types for APIs to use. type: array items: - enum: - - LOCATION_FEATURE_UNSPECIFIED - - FIRESTORE - - DEFAULT_STORAGE - - FUNCTIONS - type: string - enumDescriptions: - - Used internally for distinguishing unset values and is not intended for external use. - - This location supports Cloud Firestore database instances. App Engine is available in this location, so it can be a Project's [default GCP resource location](//firebase.google.com/docs/projects/locations#default-cloud-location). - - This location supports default Cloud Storage buckets. App Engine is available in this location, so it can be a Project's [default GCP resource location](//firebase.google.com/docs/projects/locations#default-cloud-location). - - Cloud Functions for Firebase is available in this location. + type: object + additionalProperties: + type: any + description: Properties of the object. Contains field @type with type URL. + AndroidApp: + id: AndroidApp + description: Details of a Firebase App for Android. type: object - description: A GCP resource location that can be selected for a FirebaseProject. - ProjectInfo: properties: - locationId: - description: The ID of the Project's default GCP resource location. The location is one of the available [GCP resource locations](https://firebase.google.com/docs/projects/locations). Not all Projects will have this field populated. If it is not populated, it means that the Project does not yet have a default GCP resource location. To set a Project's default GCP resource location, call [`FinalizeDefaultLocation`](../projects.defaultLocation/finalize) after you add Firebase resources to the Project. + name: + description: >- + The resource name of the AndroidApp, in the format: projects/ + PROJECT_IDENTIFIER/androidApps/APP_ID * PROJECT_IDENTIFIER: the + parent Project's + [`ProjectNumber`](../projects#FirebaseProject.FIELDS.project_number) + ***(recommended)*** or its + [`ProjectId`](../projects#FirebaseProject.FIELDS.project_id). Learn + more about using project identifiers in Google's [AIP 2510 + standard](https://google.aip.dev/cloud/2510). Note that the value + for PROJECT_IDENTIFIER in any response body will be the `ProjectId`. + * APP_ID: the globally unique, Firebase-assigned identifier for the + App (see + [`appId`](../projects.androidApps#AndroidApp.FIELDS.app_id)). type: string - project: + appId: + description: >- + Output only. Immutable. The globally unique, Firebase-assigned + identifier for the `AndroidApp`. This identifier should be treated + as an opaque token, as the data format is not specified. + readOnly: true type: string - description: 'The resource name of the GCP `Project` to which Firebase resources can be added, in the format: projects/PROJECT_IDENTIFIER Refer to the `FirebaseProject` [`name`](../projects#FirebaseProject.FIELDS.name) field for details about PROJECT_IDENTIFIER values.' displayName: + description: The user-assigned display name for the `AndroidApp`. type: string - description: 'The user-assigned display name of the GCP `Project`, for example: `My App`' - type: object - description: A reference to a Google Cloud Platform (GCP) `Project`. - id: ProjectInfo - FinalizeDefaultLocationRequest: - properties: - locationId: - description: The ID of the Project's default GCP resource location. The location must be one of the available [GCP resource locations](https://firebase.google.com/docs/projects/locations). + projectId: + description: >- + Output only. Immutable. A user-assigned unique identifier of the + parent FirebaseProject for the `AndroidApp`. + readOnly: true + type: string + packageName: + description: >- + Immutable. The canonical package name of the Android app as would + appear in the Google Play Developer Console. + type: string + apiKeyId: + description: >- + The globally unique, Google-assigned identifier (UID) for the + Firebase API key associated with the `AndroidApp`. Be aware that + this value is the UID of the API key, _not_ the + [`keyString`](https://cloud.google.com/api-keys/docs/reference/rest/v2/projects.locations.keys#Key.FIELDS.key_string) + of the API key. The `keyString` is the value that can be found in + the App's [configuration + artifact](../../rest/v1beta1/projects.androidApps/getConfig). If + `api_key_id` is not set in requests to + [`androidApps.Create`](../../rest/v1beta1/projects.androidApps/create), + then Firebase automatically associates an `api_key_id` with the + `AndroidApp`. This auto-associated key may be an existing valid key + or, if no valid key exists, a new one will be provisioned. In patch + requests, `api_key_id` cannot be set to an empty value, and the new + UID must have no restrictions or only have restrictions that are + valid for the associated `AndroidApp`. We recommend using the + [Google Cloud + Console](https://console.cloud.google.com/apis/credentials) to + manage API keys. type: string - id: FinalizeDefaultLocationRequest - type: object - AndroidApp: - description: Details of a Firebase App for Android. - type: object - id: AndroidApp - properties: state: + description: Output only. The lifecycle state of the App. readOnly: true + type: string enumDescriptions: - Unspecified state. - The App is active. - - The App has been soft-deleted. Firebase permanantely deletes an App after it has been in the `DELETED` state for more than 30 days. Up until this time, you can restore the App by calling `Undelete` ([Android](projects.androidApps/undelete) | [iOS](projects.iosApps/undelete) | [web](projects.webApps/undelete)). + - >- + The App has been soft-deleted. After an App has been in the + `DELETED` state for more than 30 days, it is considered expired + and will be permanently deleted. Up until this time, you can + restore the App by calling `Undelete` + ([Android](projects.androidApps/undelete) | + [iOS](projects.iosApps/undelete) | + [web](projects.webApps/undelete)). enum: - STATE_UNSPECIFIED - ACTIVE - DELETED - type: string - description: Output only. The lifecycle state of the App. sha1Hashes: + description: The SHA1 certificate hashes for the AndroidApp. + type: array items: type: string - type: array - description: The SHA1 certificate hashes for the AndroidApp. - name: - description: 'The resource name of the AndroidApp, in the format: projects/ PROJECT_IDENTIFIER/androidApps/APP_ID * PROJECT_IDENTIFIER: the parent Project''s [`ProjectNumber`](../projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its [`ProjectId`](../projects#FirebaseProject.FIELDS.project_id). Learn more about using project identifiers in Google''s [AIP 2510 standard](https://google.aip.dev/cloud/2510). Note that the value for PROJECT_IDENTIFIER in any response body will be the `ProjectId`. * APP_ID: the globally unique, Firebase-assigned identifier for the App (see [`appId`](../projects.androidApps#AndroidApp.FIELDS.app_id)).' - type: string - projectId: - readOnly: true - description: Output only. Immutable. A user-assigned unique identifier of the parent FirebaseProject for the `AndroidApp`. - type: string - apiKeyId: - description: The globally unique, Google-assigned identifier (UID) for the Firebase API key associated with the `AndroidApp`. Be aware that this value is the UID of the API key, _not_ the [`keyString`](https://cloud.google.com/api-keys/docs/reference/rest/v2/projects.locations.keys#Key.FIELDS.key_string) of the API key. The `keyString` is the value that can be found in the App's [configuration artifact](../../rest/v1beta1/projects.androidApps/getConfig). If `api_key_id` is not set in requests to [`androidApps.Create`](../../rest/v1beta1/projects.androidApps/create), then Firebase automatically associates an `api_key_id` with the `AndroidApp`. This auto-associated key may be an existing valid key or, if no valid key exists, a new one will be provisioned. In patch requests, `api_key_id` cannot be set to an empty value, and the new UID must have no restrictions or only have restrictions that are valid for the associated `AndroidApp`. We recommend using the [Google Cloud Console](https://console.cloud.google.com/apis/credentials) to manage API keys. - type: string sha256Hashes: - type: array description: The SHA256 certificate hashes for the AndroidApp. + type: array items: type: string - etag: - description: This checksum is computed by the server based on the value of other fields, and it may be sent with update requests to ensure the client has an up-to-date value before proceeding. Learn more about `etag` in Google's [AIP-154 standard](https://google.aip.dev/154#declarative-friendly-resources). This etag is strongly validated. - type: string - appId: - description: Output only. Immutable. The globally unique, Firebase-assigned identifier for the `AndroidApp`. This identifier should be treated as an opaque token, as the data format is not specified. - readOnly: true - type: string - displayName: - type: string - description: The user-assigned display name for the `AndroidApp`. - packageName: - type: string - description: Immutable. The canonical package name of the Android app as would appear in the Google Play Developer Console. - IosApp: - id: IosApp - properties: - name: - type: string - description: 'The resource name of the IosApp, in the format: projects/PROJECT_IDENTIFIER /iosApps/APP_ID * PROJECT_IDENTIFIER: the parent Project''s [`ProjectNumber`](../projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its [`ProjectId`](../projects#FirebaseProject.FIELDS.project_id). Learn more about using project identifiers in Google''s [AIP 2510 standard](https://google.aip.dev/cloud/2510). Note that the value for PROJECT_IDENTIFIER in any response body will be the `ProjectId`. * APP_ID: the globally unique, Firebase-assigned identifier for the App (see [`appId`](../projects.iosApps#IosApp.FIELDS.app_id)).' - state: - readOnly: true - description: Output only. The lifecycle state of the App. - type: string - enum: - - STATE_UNSPECIFIED - - ACTIVE - - DELETED - enumDescriptions: - - Unspecified state. - - The App is active. - - The App has been soft-deleted. Firebase permanantely deletes an App after it has been in the `DELETED` state for more than 30 days. Up until this time, you can restore the App by calling `Undelete` ([Android](projects.androidApps/undelete) | [iOS](projects.iosApps/undelete) | [web](projects.webApps/undelete)). - bundleId: - type: string - description: Immutable. The canonical bundle ID of the iOS app as it would appear in the iOS AppStore. - projectId: - type: string - description: Output only. Immutable. A user-assigned unique identifier of the parent FirebaseProject for the `IosApp`. + expireTime: + description: >- + Output only. If the App has been removed from the Project, this is + the timestamp of when the App is considered expired and will be + permanently deleted. After this time, the App cannot be undeleted + (that is, restored to the Project). This value is only provided if + the App is in the `DELETED` state. readOnly: true - appStoreId: - description: The automatically generated Apple ID assigned to the iOS app by Apple in the iOS App Store. type: string + format: google-datetime etag: - description: This checksum is computed by the server based on the value of other fields, and it may be sent with update requests to ensure the client has an up-to-date value before proceeding. Learn more about `etag` in Google's [AIP-154 standard](https://google.aip.dev/154#declarative-friendly-resources). This etag is strongly validated. - type: string - appId: - type: string - readOnly: true - description: Output only. Immutable. The globally unique, Firebase-assigned identifier for the `IosApp`. This identifier should be treated as an opaque token, as the data format is not specified. - teamId: - description: The Apple Developer Team ID associated with the App in the App Store. - type: string - apiKeyId: + description: >- + This checksum is computed by the server based on the value of other + fields, and it may be sent with update requests to ensure the client + has an up-to-date value before proceeding. Learn more about `etag` + in Google's [AIP-154 + standard](https://google.aip.dev/154#declarative-friendly-resources). + This etag is strongly validated. type: string - description: The globally unique, Google-assigned identifier (UID) for the Firebase API key associated with the `IosApp`. Be aware that this value is the UID of the API key, _not_ the [`keyString`](https://cloud.google.com/api-keys/docs/reference/rest/v2/projects.locations.keys#Key.FIELDS.key_string) of the API key. The `keyString` is the value that can be found in the App's [configuration artifact](../../rest/v1beta1/projects.iosApps/getConfig). If `api_key_id` is not set in requests to [`iosApps.Create`](../../rest/v1beta1/projects.iosApps/create), then Firebase automatically associates an `api_key_id` with the `IosApp`. This auto-associated key may be an existing valid key or, if no valid key exists, a new one will be provisioned. In patch requests, `api_key_id` cannot be set to an empty value, and the new UID must have no restrictions or only have restrictions that are valid for the associated `IosApp`. We recommend using the [Google Cloud Console](https://console.cloud.google.com/apis/credentials) to manage API keys. - displayName: - type: string - description: The user-assigned display name for the `IosApp`. - type: object - description: Details of a Firebase App for iOS. - ListShaCertificatesResponse: + ListAndroidAppsResponse: + id: ListAndroidAppsResponse type: object - id: ListShaCertificatesResponse properties: - certificates: + apps: + description: >- + List of each `AndroidApp` associated with the specified + `FirebaseProject`. type: array - description: The list of each `ShaCertificate` associated with the `AndroidApp`. items: - $ref: '#/components/schemas/ShaCertificate' - RemoveIosAppRequest: + $ref: '#/components/schemas/AndroidApp' + nextPageToken: + description: >- + If the result list is too large to fit in a single response, then a + token is returned. If the string is empty, then this response is the + last page of results. This token can be used in a subsequent call to + `ListAndroidApps` to find the next group of Apps. Page tokens are + short-lived and should not be persisted. + type: string + RemoveAndroidAppRequest: + id: RemoveAndroidAppRequest type: object properties: - immediate: - description: Determines whether to _immediately_ delete the App. If set to true, the App is immediately deleted from the Project and cannot be restored to the Project. If not set, defaults to false, which means that the App may be restored to the Project within 30 days using UndeleteIosApp + allowMissing: + description: >- + If set to true, and the App is not found, the request will succeed + but no action will be taken on the server. type: boolean validateOnly: + description: >- + If set to true, the request is only validated. The App will _not_ be + removed. type: boolean - description: If set to true, the request is only validated. The App will _not_ be removed. - allowMissing: - type: boolean - description: If set to true, and the App is not found, the request will succeed but no action will be taken on the server. etag: + description: >- + Checksum provided in the AndroidApp resource. If provided, this + checksum ensures that the client has an up-to-date value before + proceeding. type: string - description: Checksum provided in the IosApp resource. If provided, this checksum ensures that the client has an up-to-date value before proceeding. - id: RemoveIosAppRequest - RemoveWebAppRequest: + immediate: + description: >- + Determines whether to _immediately_ delete the AndroidApp. If set to + true, the App is immediately deleted from the Project and cannot be + undeleted (that is, restored to the Project). If not set, defaults + to false, which means the App will be set to expire in 30 days. + Within the 30 days, the App may be restored to the Project using + UndeleteAndroidApp. + type: boolean + UndeleteAndroidAppRequest: + id: UndeleteAndroidAppRequest type: object properties: - allowMissing: - type: boolean - description: If set to true, and the App is not found, the request will succeed but no action will be taken on the server. validateOnly: - description: If set to true, the request is only validated. The App will _not_ be removed. - type: boolean - immediate: + description: >- + If set to true, the request is only validated. The App will _not_ be + undeleted. type: boolean - description: Determines whether to _immediately_ delete the App. If set to true, the App is immediately deleted from the Project and cannot be restored to the Project. If not set, defaults to false, which means that the App may be restored to the Project within 30 days using UndeleteWebApp etag: - description: Checksum provided in the WebApp resource. If provided, this checksum ensures that the client has an up-to-date value before proceeding. + description: >- + Checksum provided in the AndroidApp resource. If provided, this + checksum ensures that the client has an up-to-date value before + proceeding. type: string - id: RemoveWebAppRequest - FirebaseAppInfo: - id: FirebaseAppInfo - description: A high-level summary of an App. + AndroidAppConfig: + id: AndroidAppConfig + description: Configuration metadata of a single Firebase App for Android. + type: object properties: - displayName: - description: The user-assigned display name of the Firebase App. + configFilename: + description: >- + The filename that the configuration artifact for the `AndroidApp` is + typically saved as. For example: `google-services.json` type: string - platform: - description: The platform of the Firebase App. + configFileContents: + description: The contents of the JSON configuration file. type: string - enum: - - PLATFORM_UNSPECIFIED - - IOS - - ANDROID - - WEB - enumDescriptions: - - Unknown state. This is only used for distinguishing unset values. - - The Firebase App is associated with iOS. - - The Firebase App is associated with Android. - - The Firebase App is associated with web. + format: byte + ListShaCertificatesResponse: + id: ListShaCertificatesResponse + type: object + properties: + certificates: + description: The list of each `ShaCertificate` associated with the `AndroidApp`. + type: array + items: + $ref: '#/components/schemas/ShaCertificate' + ShaCertificate: + id: ShaCertificate + description: A SHA-1 or SHA-256 certificate associated with the AndroidApp. + type: object + properties: name: - description: 'The resource name of the Firebase App, in the format: projects/PROJECT_ID /iosApps/APP_ID or projects/PROJECT_ID/androidApps/APP_ID or projects/ PROJECT_ID/webApps/APP_ID' - type: string - appId: - description: Output only. Immutable. The globally unique, Firebase-assigned identifier for the `WebApp`. This identifier should be treated as an opaque token, as the data format is not specified. - readOnly: true + description: >- + The resource name of the ShaCertificate for the AndroidApp, in the + format: projects/PROJECT_IDENTIFIER/androidApps/APP_ID/sha/SHA_HASH + * PROJECT_IDENTIFIER: the parent Project's + [`ProjectNumber`](../projects#FirebaseProject.FIELDS.project_number) + ***(recommended)*** or its + [`ProjectId`](../projects#FirebaseProject.FIELDS.project_id). Learn + more about using project identifiers in Google's [AIP 2510 + standard](https://google.aip.dev/cloud/2510). Note that the value + for PROJECT_IDENTIFIER in any response body will be the `ProjectId`. + * APP_ID: the globally unique, Firebase-assigned identifier for the + App (see + [`appId`](../projects.androidApps#AndroidApp.FIELDS.app_id)). * + SHA_HASH: the certificate hash for the App (see + [`shaHash`](../projects.androidApps.sha#ShaCertificate.FIELDS.sha_hash)). type: string - namespace: - description: 'Output only. Immutable. The platform-specific identifier of the App. *Note:* For most use cases, use `appId`, which is the canonical, globally unique identifier for referencing an App. This string is derived from a native identifier for each platform: `packageName` for an `AndroidApp`, `bundleId` for an `IosApp`, and `webId` for a `WebApp`. Its contents should be treated as opaque, as the native identifier format may change as platforms evolve. This string is only unique within a `FirebaseProject` and its associated Apps.' + shaHash: + description: The certificate hash for the `AndroidApp`. type: string - readOnly: true - apiKeyId: - description: The globally unique, Google-assigned identifier (UID) for the Firebase API key associated with the App. Be aware that this value is the UID of the API key, _not_ the [`keyString`](https://cloud.google.com/api-keys/docs/reference/rest/v2/projects.locations.keys#Key.FIELDS.key_string) of the API key. The `keyString` is the value that can be found in the App's configuration artifact ([`AndroidApp`](../../rest/v1beta1/projects.androidApps/getConfig) | [`IosApp`](../../rest/v1beta1/projects.iosApps/getConfig) | [`WebApp`](../../rest/v1beta1/projects.webApps/getConfig)). If `api_key_id` is not set in requests to create the App ([`AndroidApp`](../../rest/v1beta1/projects.androidApps/create) | [`IosApp`](../../rest/v1beta1/projects.iosApps/create) | [`WebApp`](../../rest/v1beta1/projects.webApps/create)), then Firebase automatically associates an `api_key_id` with the App. This auto-associated key may be an existing valid key or, if no valid key exists, a new one will be provisioned. + certType: + description: The type of SHA certificate encoded in the hash. type: string - state: enumDescriptions: - - Unspecified state. - - The App is active. - - The App has been soft-deleted. Firebase permanantely deletes an App after it has been in the `DELETED` state for more than 30 days. Up until this time, you can restore the App by calling `Undelete` ([Android](projects.androidApps/undelete) | [iOS](projects.iosApps/undelete) | [web](projects.webApps/undelete)). - readOnly: true - type: string + - Unknown state. This is only used for distinguishing unset values. + - Certificate is a SHA-1 type certificate. + - Certificate is a SHA-256 type certificate. enum: - - STATE_UNSPECIFIED - - ACTIVE - - DELETED - description: Output only. The lifecycle state of the App. + - SHA_CERTIFICATE_TYPE_UNSPECIFIED + - SHA_1 + - SHA_256 + Empty: + id: Empty + description: >- + A generic empty message that you can re-use to avoid defining duplicated + empty messages in your APIs. A typical example is to use it as the + request or the response type of an API method. For instance: service Foo + { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } type: object - Status: + properties: {} + AddGoogleAnalyticsRequest: + id: AddGoogleAnalyticsRequest type: object - description: '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](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).' - id: Status properties: - details: - description: A list of messages that carry the error details. There is a common set of message types for APIs to use. + analyticsAccountId: + description: >- + The ID for the existing [Google Analytics + account](http://www.google.com/analytics/) that you want to link + with the `FirebaseProject`. Specifying this field will provision a + new Google Analytics property in your Google Analytics account and + associate the new property with the `FirebaseProject`. + type: string + analyticsPropertyId: + description: >- + The ID for the existing Google Analytics property that you want to + associate with the `FirebaseProject`. + type: string + AnalyticsDetails: + id: AnalyticsDetails + type: object + properties: + analyticsProperty: + description: >- + The Analytics Property object associated with the specified + `FirebaseProject`. This object contains the details of the Google + Analytics property associated with the Project. + $ref: '#/components/schemas/AnalyticsProperty' + streamMappings: + description: ' - For `AndroidApps` and `IosApps`: a map of `app` to `streamId` for each Firebase App in the specified `FirebaseProject`. Each `app` and `streamId` appears only once. - For `WebApps`: a map of `app` to `streamId` and `measurementId` for each `WebApp` in the specified `FirebaseProject`. Each `app`, `streamId`, and `measurementId` appears only once.' type: array items: - type: object - additionalProperties: - description: Properties of the object. Contains field @type with type URL. - type: any - message: + $ref: '#/components/schemas/StreamMapping' + AnalyticsProperty: + id: AnalyticsProperty + description: Details of a Google Analytics property + type: object + properties: + id: + description: >- + The globally unique, Google-assigned identifier of the Google + Analytics property associated with the specified `FirebaseProject`. + If you called + [`AddGoogleAnalytics`](../../v1beta1/projects/addGoogleAnalytics) to + link the `FirebaseProject` with a Google Analytics account, the + value in this `id` field is the same as the ID of the property + either specified or provisioned with that call to + `AddGoogleAnalytics`. type: string - description: 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 field, or localized by the client. - code: - format: int32 - type: integer - description: The status code, which should be an enum value of google.rpc.Code. - WebApp: - description: Details of a Firebase App for the web. + displayName: + description: >- + The display name of the Google Analytics property associated with + the specified `FirebaseProject`. + type: string + analyticsAccountId: + description: >- + Output only. The ID of the [Google Analytics + account](https://www.google.com/analytics/) for the Google Analytics + property associated with the specified FirebaseProject. + readOnly: true + type: string + StreamMapping: + id: StreamMapping + description: A mapping of a Firebase App to a Google Analytics data stream type: object - id: WebApp properties: + app: + description: >- + The resource name of the Firebase App associated with the Google + Analytics data stream, in the format: + projects/PROJECT_IDENTIFIER/androidApps/APP_ID or + projects/PROJECT_IDENTIFIER/iosApps/APP_ID or + projects/PROJECT_IDENTIFIER /webApps/APP_ID Refer to the + `FirebaseProject` [`name`](../projects#FirebaseProject.FIELDS.name) + field for details about PROJECT_IDENTIFIER values. + type: string + streamId: + description: >- + The unique Google-assigned identifier of the Google Analytics data + stream associated with the Firebase App. Learn more about Google + Analytics data streams in the [Analytics + documentation](https://support.google.com/analytics/answer/9303323). + type: string + format: int64 + measurementId: + description: >- + Applicable for Firebase Web Apps only. The unique Google-assigned + identifier of the Google Analytics web stream associated with the + Firebase Web App. Firebase SDKs use this ID to interact with Google + Analytics APIs. Learn more about this ID and Google Analytics web + streams in the [Analytics + documentation](https://support.google.com/analytics/answer/9304153). + type: string + RemoveAnalyticsRequest: + id: RemoveAnalyticsRequest + type: object + properties: + analyticsPropertyId: + description: >- + Optional. The ID of the Google Analytics property associated with + the specified `FirebaseProject`. - If not set, then the Google + Analytics property that is currently associated with the specified + `FirebaseProject` is removed. - If set, and the specified + `FirebaseProject` is currently associated with a *different* Google + Analytics property, then the response is a `412 Precondition Failed` + error. + type: string + IosApp: + id: IosApp + description: Details of a Firebase App for iOS. + type: object + properties: + name: + description: >- + The resource name of the IosApp, in the format: + projects/PROJECT_IDENTIFIER /iosApps/APP_ID * PROJECT_IDENTIFIER: + the parent Project's + [`ProjectNumber`](../projects#FirebaseProject.FIELDS.project_number) + ***(recommended)*** or its + [`ProjectId`](../projects#FirebaseProject.FIELDS.project_id). Learn + more about using project identifiers in Google's [AIP 2510 + standard](https://google.aip.dev/cloud/2510). Note that the value + for PROJECT_IDENTIFIER in any response body will be the `ProjectId`. + * APP_ID: the globally unique, Firebase-assigned identifier for the + App (see [`appId`](../projects.iosApps#IosApp.FIELDS.app_id)). + type: string appId: + description: >- + Output only. Immutable. The globally unique, Firebase-assigned + identifier for the `IosApp`. This identifier should be treated as an + opaque token, as the data format is not specified. + readOnly: true type: string + displayName: + description: The user-assigned display name for the `IosApp`. + type: string + projectId: + description: >- + Output only. Immutable. A user-assigned unique identifier of the + parent FirebaseProject for the `IosApp`. readOnly: true - description: Output only. Immutable. The globally unique, Firebase-assigned identifier for the `WebApp`. This identifier should be treated as an opaque token, as the data format is not specified. - name: type: string - description: 'The resource name of the WebApp, in the format: projects/PROJECT_IDENTIFIER /webApps/APP_ID * PROJECT_IDENTIFIER: the parent Project''s [`ProjectNumber`](../projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its [`ProjectId`](../projects#FirebaseProject.FIELDS.project_id). Learn more about using project identifiers in Google''s [AIP 2510 standard](https://google.aip.dev/cloud/2510). Note that the value for PROJECT_IDENTIFIER in any response body will be the `ProjectId`. * APP_ID: the globally unique, Firebase-assigned identifier for the App (see [`appId`](../projects.webApps#WebApp.FIELDS.app_id)).' + bundleId: + description: >- + Immutable. The canonical bundle ID of the iOS app as it would appear + in the iOS AppStore. + type: string + appStoreId: + description: >- + The automatically generated Apple ID assigned to the iOS app by + Apple in the iOS App Store. + type: string + teamId: + description: >- + The Apple Developer Team ID associated with the App in the App + Store. + type: string + apiKeyId: + description: >- + The globally unique, Google-assigned identifier (UID) for the + Firebase API key associated with the `IosApp`. Be aware that this + value is the UID of the API key, _not_ the + [`keyString`](https://cloud.google.com/api-keys/docs/reference/rest/v2/projects.locations.keys#Key.FIELDS.key_string) + of the API key. The `keyString` is the value that can be found in + the App's [configuration + artifact](../../rest/v1beta1/projects.iosApps/getConfig). If + `api_key_id` is not set in requests to + [`iosApps.Create`](../../rest/v1beta1/projects.iosApps/create), then + Firebase automatically associates an `api_key_id` with the `IosApp`. + This auto-associated key may be an existing valid key or, if no + valid key exists, a new one will be provisioned. In patch requests, + `api_key_id` cannot be set to an empty value, and the new UID must + have no restrictions or only have restrictions that are valid for + the associated `IosApp`. We recommend using the [Google Cloud + Console](https://console.cloud.google.com/apis/credentials) to + manage API keys. + type: string state: + description: Output only. The lifecycle state of the App. + readOnly: true type: string enumDescriptions: - Unspecified state. - The App is active. - - The App has been soft-deleted. Firebase permanantely deletes an App after it has been in the `DELETED` state for more than 30 days. Up until this time, you can restore the App by calling `Undelete` ([Android](projects.androidApps/undelete) | [iOS](projects.iosApps/undelete) | [web](projects.webApps/undelete)). - readOnly: true - description: Output only. The lifecycle state of the App. + - >- + The App has been soft-deleted. After an App has been in the + `DELETED` state for more than 30 days, it is considered expired + and will be permanently deleted. Up until this time, you can + restore the App by calling `Undelete` + ([Android](projects.androidApps/undelete) | + [iOS](projects.iosApps/undelete) | + [web](projects.webApps/undelete)). enum: - STATE_UNSPECIFIED - ACTIVE - DELETED - displayName: - description: The user-assigned display name for the `WebApp`. - type: string - webId: + expireTime: + description: >- + Output only. If the App has been removed from the Project, this is + the timestamp of when the App is considered expired and will be + permanently deleted. After this time, the App cannot be undeleted + (that is, restored to the Project). This value is only provided if + the App is in the `DELETED` state. readOnly: true - description: Output only. Immutable. A unique, Firebase-assigned identifier for the `WebApp`. This identifier is only used to populate the `namespace` value for the `WebApp`. For most use cases, use `appId` to identify or reference the App. The `webId` value is only unique within a `FirebaseProject` and its associated Apps. type: string - appUrls: + format: google-datetime + etag: + description: >- + This checksum is computed by the server based on the value of other + fields, and it may be sent with update requests to ensure the client + has an up-to-date value before proceeding. Learn more about `etag` + in Google's [AIP-154 + standard](https://google.aip.dev/154#declarative-friendly-resources). + This etag is strongly validated. + type: string + ListIosAppsResponse: + id: ListIosAppsResponse + type: object + properties: + apps: + description: >- + List of each `IosApp` associated with the specified + `FirebaseProject`. type: array items: - type: string - description: The URLs where the `WebApp` is hosted. + $ref: '#/components/schemas/IosApp' + nextPageToken: + description: >- + If the result list is too large to fit in a single response, then a + token is returned. If the string is empty, then this response is the + last page of results. This token can be used in a subsequent call to + `ListIosApps` to find the next group of Apps. Page tokens are + short-lived and should not be persisted. + type: string + RemoveIosAppRequest: + id: RemoveIosAppRequest + type: object + properties: + allowMissing: + description: >- + If set to true, and the App is not found, the request will succeed + but no action will be taken on the server. + type: boolean + validateOnly: + description: >- + If set to true, the request is only validated. The App will _not_ be + removed. + type: boolean + etag: + description: >- + Checksum provided in the IosApp resource. If provided, this checksum + ensures that the client has an up-to-date value before proceeding. + type: string + immediate: + description: >- + Determines whether to _immediately_ delete the IosApp. If set to + true, the App is immediately deleted from the Project and cannot be + undeleted (that is, restored to the Project). If not set, defaults + to false, which means the App will be set to expire in 30 days. + Within the 30 days, the App may be restored to the Project using + UndeleteIosApp + type: boolean + UndeleteIosAppRequest: + id: UndeleteIosAppRequest + type: object + properties: + validateOnly: + description: >- + If set to true, the request is only validated. The App will _not_ be + undeleted. + type: boolean + etag: + description: >- + Checksum provided in the IosApp resource. If provided, this checksum + ensures that the client has an up-to-date value before proceeding. + type: string + IosAppConfig: + id: IosAppConfig + description: Configuration metadata of a single Firebase App for iOS. + type: object + properties: + configFilename: + description: >- + The filename that the configuration artifact for the `IosApp` is + typically saved as. For example: `GoogleService-Info.plist` + type: string + configFileContents: + description: The content of the XML configuration file. + type: string + format: byte + FirebaseProject: + id: FirebaseProject + description: >- + A `FirebaseProject` is the top-level Firebase entity. It is the + container for Firebase Apps, Firebase Hosting sites, storage systems + (Firebase Realtime Database, Cloud Firestore, Cloud Storage buckets), + and other Firebase and Google Cloud resources. You create a + `FirebaseProject` by calling AddFirebase and specifying an *existing* + [Google Cloud + `Project`](https://cloud.google.com/resource-manager/reference/rest/v1/projects). + This adds Firebase resources to the existing Google Cloud `Project`. + Since a FirebaseProject is actually also a Google Cloud `Project`, a + `FirebaseProject` has the same underlying Google Cloud identifiers + (`projectNumber` and `projectId`). This allows for easy interop with + Google APIs. + type: object + properties: + name: + description: >- + The resource name of the Project, in the format: + projects/PROJECT_IDENTIFIER PROJECT_IDENTIFIER: the Project's + [`ProjectNumber`](../projects#FirebaseProject.FIELDS.project_number) + ***(recommended)*** or its + [`ProjectId`](../projects#FirebaseProject.FIELDS.project_id). Learn + more about using project identifiers in Google's [AIP 2510 + standard](https://google.aip.dev/cloud/2510). Note that the value + for PROJECT_IDENTIFIER in any response body will be the `ProjectId`. + type: string projectId: - description: Output only. Immutable. A user-assigned unique identifier of the parent FirebaseProject for the `WebApp`. + description: >- + Output only. Immutable. A user-assigned unique identifier for the + Project. This identifier may appear in URLs or names for some + Firebase resources associated with the Project, but it should + generally be treated as a convenience alias to reference the + Project. + readOnly: true type: string + projectNumber: + description: >- + Output only. Immutable. The globally unique, Google-assigned + canonical identifier for the Project. Use this identifier when + configuring integrations and/or making API calls to Firebase or + third-party services. + readOnly: true + type: string + format: int64 + displayName: + description: The user-assigned display name of the Project. + type: string + resources: + description: >- + Output only. **DEPRECATED.** _Auto-provisioning of these resources + is changing, so this object no longer reliably provides information + about the Project. Instead, retrieve information about each resource + directly from its resource-specific API._ The default Firebase + resources associated with the Project. + readOnly: true + deprecated: true + $ref: '#/components/schemas/DefaultResources' + state: + description: Output only. The lifecycle state of the Project. readOnly: true - apiKeyId: type: string - description: The globally unique, Google-assigned identifier (UID) for the Firebase API key associated with the `WebApp`. Be aware that this value is the UID of the API key, _not_ the [`keyString`](https://cloud.google.com/api-keys/docs/reference/rest/v2/projects.locations.keys#Key.FIELDS.key_string) of the API key. The `keyString` is the value that can be found in the App's [configuration artifact](../../rest/v1beta1/projects.webApps/getConfig). If `api_key_id` is not set in requests to [`webApps.Create`](../../rest/v1beta1/projects.webApps/create), then Firebase automatically associates an `api_key_id` with the `WebApp`. This auto-associated key may be an existing valid key or, if no valid key exists, a new one will be provisioned. In patch requests, `api_key_id` cannot be set to an empty value, and the new UID must have no restrictions or only have restrictions that are valid for the associated `WebApp`. We recommend using the [Google Cloud Console](https://console.cloud.google.com/apis/credentials) to manage API keys. + enumDescriptions: + - Unspecified state. + - The Project is active. + - The Project has been soft-deleted. + enum: + - STATE_UNSPECIFIED + - ACTIVE + - DELETED + annotations: + description: >- + A set of user-defined annotations for the FirebaseProject. Learn + more about annotations in Google's [AIP-128 + standard](https://google.aip.dev/128#annotations). These annotations + are intended solely for developers and client-side tools. Firebase + services will not mutate this annotations set. + type: object + additionalProperties: + type: string etag: - description: This checksum is computed by the server based on the value of other fields, and it may be sent with update requests to ensure the client has an up-to-date value before proceeding. Learn more about `etag` in Google's [AIP-154 standard](https://google.aip.dev/154#declarative-friendly-resources). This etag is strongly validated. + description: >- + This checksum is computed by the server based on the value of other + fields, and it may be sent with update requests to ensure the client + has an up-to-date value before proceeding. Learn more about `etag` + in Google's [AIP-154 + standard](https://google.aip.dev/154#declarative-friendly-resources). + This etag is strongly validated. type: string DefaultResources: + id: DefaultResources + deprecated: true + description: >- + **DEPRECATED.** _Auto-provisioning of these resources is changing, so + this object no longer reliably provides information about the resources + within the Project. Instead, retrieve information about each resource + directly from its resource-specific API._ The default auto-provisioned + resources associated with the Project. + type: object properties: - locationId: - readOnly: true - description: Output only. The ID of the Project's default GCP resource location. The location is one of the available [GCP resource locations](https://firebase.google.com/docs/projects/locations). This field is omitted if the default GCP resource location has not been finalized yet. To set a Project's default GCP resource location, call [`FinalizeDefaultLocation`](../projects.defaultLocation/finalize) after you add Firebase resources to the Project. - type: string hostingSite: + description: >- + Output only. **DEPRECATED.** _Instead, find the name of the default + Firebase Hosting site using + [ListSites](https://firebase.google.com/docs/reference/hosting/rest/v1beta1/projects.sites/list) + within the Firebase Hosting REST API. If the default Hosting site + for the Project has not yet been provisioned, the return might not + contain a default site._ The name of the default Firebase Hosting + site, in the format: PROJECT_ID Though rare, your `projectId` might + already be used as the name for an existing Hosting site in another + project (learn more about creating non-default, [additional + sites](https://firebase.google.com/docs/hosting/multisites)). In + these cases, your `projectId` is appended with a hyphen then five + alphanumeric characters to create your default Hosting site name. + For example, if your `projectId` is `myproject123`, your default + Hosting site name might be: `myproject123-a5c16` + readOnly: true + deprecated: true type: string - description: 'Output only. The default Firebase Hosting site name, in the format: PROJECT_ID Though rare, your `projectId` might already be used as the name for an existing Hosting site in another project (learn more about creating non-default, [additional sites](https://firebase.google.com/docs/hosting/multisites)). In these cases, your `projectId` is appended with a hyphen then five alphanumeric characters to create your default Hosting site name. For example, if your `projectId` is `myproject123`, your default Hosting site name might be: `myproject123-a5c16`' + realtimeDatabaseInstance: + description: >- + Output only. **DEPRECATED.** _Instead, find the name of the default + Realtime Database instance using the [list + endpoint](https://firebase.google.com/docs/reference/rest/database/database-management/rest/v1beta/projects.locations.instances/list) + within the Firebase Realtime Database REST API. If the default + Realtime Database instance for a Project has not yet been + provisioned, the return might not contain a default instance._ The + default Firebase Realtime Database instance name, in the format: + PROJECT_ID Though rare, your `projectId` might already be used as + the name for an existing Realtime Database instance in another + project (learn more about [database + sharding](https://firebase.google.com/docs/database/usage/sharding)). + In these cases, your `projectId` is appended with a hyphen then five + alphanumeric characters to create your default Realtime Database + instance name. For example, if your `projectId` is `myproject123`, + your default database instance name might be: `myproject123-a5c16` readOnly: true + deprecated: true + type: string storageBucket: - description: 'Output only. The default Cloud Storage for Firebase storage bucket, in the format: PROJECT_ID.appspot.com' + description: >- + Output only. **DEPRECATED.** _Instead, find the name of the default + Cloud Storage for Firebase bucket using the [list + endpoint](https://firebase.google.com/docs/reference/rest/storage/rest/v1beta/projects.buckets/list) + within the Cloud Storage for Firebase REST API. If the default + bucket for the Project has not yet been provisioned, the return + might not contain a default bucket._ The name of the default Cloud + Storage for Firebase bucket, in one of the following formats: * If + provisioned _before_ October 30, 2024: + PROJECT_ID.firebasestorage.app * If provisioned _on or after_ + October 30, 2024: PROJECT_ID.firebasestorage.app readOnly: true + deprecated: true type: string - realtimeDatabaseInstance: + locationId: + description: >- + Output only. **DEPRECATED.** _Instead, use product-specific REST + APIs to find the location of each resource in a Project. This field + may not be populated, especially for newly provisioned projects + after October 30, 2024._ The ID of the Project's ["location for + default Google Cloud + resources"](https://firebase.google.com/docs/projects/locations#default-cloud-location), + which are resources associated with Google App Engine. The location + is one of the available [Google App Engine + locations](https://cloud.google.com/about/locations#region). This + field is omitted if the location for default Google Cloud resources + has not been set. readOnly: true + deprecated: true type: string - description: 'Output only. The default Firebase Realtime Database instance name, in the format: PROJECT_ID Though rare, your `projectId` might already be used as the name for an existing Realtime Database instance in another project (learn more about [database sharding](https://firebase.google.com/docs/database/usage/sharding)). In these cases, your `projectId` is appended with a hyphen then five alphanumeric characters to create your default Realtime Database instance name. For example, if your `projectId` is `myproject123`, your default database instance name might be: `myproject123-a5c16`' - description: The default resources associated with the Project. - id: DefaultResources - type: object - AnalyticsDetails: + ListFirebaseProjectsResponse: + id: ListFirebaseProjectsResponse type: object - id: AnalyticsDetails properties: - analyticsProperty: - $ref: '#/components/schemas/AnalyticsProperty' - description: The Analytics Property object associated with the specified `FirebaseProject`. This object contains the details of the Google Analytics property associated with the Project. - streamMappings: - description: ' - For `AndroidApps` and `IosApps`: a map of `app` to `streamId` for each Firebase App in the specified `FirebaseProject`. Each `app` and `streamId` appears only once. - For `WebApps`: a map of `app` to `streamId` and `measurementId` for each `WebApp` in the specified `FirebaseProject`. Each `app`, `streamId`, and `measurementId` appears only once.' - items: - $ref: '#/components/schemas/StreamMapping' + results: + description: One page of the list of Projects that are accessible to the caller. type: array - StatusProto: - id: StatusProto - properties: - space: - description: The following are usually only present when code != 0 Space to which this status belongs + items: + $ref: '#/components/schemas/FirebaseProject' + nextPageToken: + description: >- + If the result list is too large to fit in a single response, then a + token is returned. If the string is empty, then this response is the + last page of results. This token can be used in a subsequent calls + to `ListFirebaseProjects` to find the next group of Projects. Page + tokens are short-lived and should not be persisted. type: string - canonicalCode: - format: int32 - type: integer - description: The canonical error code (see codes.proto) that most closely corresponds to this status. May be missing. - messageSet: - description: message_set associates an arbitrary proto message with the status. - $ref: '#/components/schemas/MessageSet' - message: + AddFirebaseRequest: + id: AddFirebaseRequest + description: All fields are required. + type: object + properties: + locationId: + description: >- + **DEPRECATED.** _Instead, use product-specific REST APIs to work + with the location of each resource in a Project. This field may be + ignored, especially for newly provisioned projects after October 30, + 2024._ The ID of the Project's ["location for default Google Cloud + resources"](https://firebase.google.com/docs/projects/locations#default-cloud-location), + which are resources associated with Google App Engine. The location + must be one of the available [Google App Engine + locations](https://cloud.google.com/about/locations#region). type: string - description: Detail message - code: - description: Numeric code drawn from the space specified below. Often, this is the canonical error space, and code is drawn from google3/util/task/codes.proto - type: integer - format: int32 + ListAvailableProjectsResponse: + id: ListAvailableProjectsResponse type: object - description: Wire-format for a Status object - ListIosAppsResponse: - id: ListIosAppsResponse properties: - apps: - items: - $ref: '#/components/schemas/IosApp' + projectInfo: + description: >- + The list of Google Cloud `Projects` which can have Firebase + resources added to them. type: array - description: List of each `IosApp` associated with the specified `FirebaseProject`. + items: + $ref: '#/components/schemas/ProjectInfo' nextPageToken: + description: >- + If the result list is too large to fit in a single response, then a + token is returned. If the string is empty, then this response is the + last page of results. This token can be used in a subsequent calls + to `ListAvailableProjects` to find the next group of Projects. Page + tokens are short-lived and should not be persisted. type: string - description: If the result list is too large to fit in a single response, then a token is returned. If the string is empty, then this response is the last page of results. This token can be used in a subsequent call to `ListIosApps` to find the next group of Apps. Page tokens are short-lived and should not be persisted. + ProjectInfo: + id: ProjectInfo + description: A reference to a Google Cloud `Project`. type: object - UndeleteAndroidAppRequest: properties: - etag: - description: Checksum provided in the AndroidApp resource. If provided, this checksum ensures that the client has an up-to-date value before proceeding. + project: + description: >- + The resource name of the Google Cloud `Project` to which Firebase + resources can be added, in the format: projects/PROJECT_IDENTIFIER + Refer to the `FirebaseProject` + [`name`](../projects#FirebaseProject.FIELDS.name) field for details + about PROJECT_IDENTIFIER values. type: string - validateOnly: - description: If set to true, the request is only validated. The App will _not_ be undeleted. - type: boolean - id: UndeleteAndroidAppRequest - type: object - ShaCertificate: + displayName: + description: >- + The user-assigned display name of the Google Cloud `Project`, for + example: `My App`. + type: string + locationId: + description: >- + **DEPRECATED** _Instead, use product-specific REST APIs to work with + the location of each resource in a Project. This field may not be + populated, especially for newly provisioned projects after October + 30, 2024._ The ID of the Project's ["location for default Google + Cloud + resources"](https://firebase.google.com/docs/projects/locations#default-cloud-location). + The location is one of the available [Google App Engine + locations](https://cloud.google.com/about/locations#region). Not all + Projects will have this field populated. If it is not populated, it + means that the Project does not yet have a location for default + Google Cloud resources. + type: string + ListAvailableLocationsResponse: + id: ListAvailableLocationsResponse + deprecated: true type: object - id: ShaCertificate - description: A SHA-1 or SHA-256 certificate associated with the AndroidApp. properties: - name: + locations: + description: One page of results from a call to `ListAvailableLocations`. + type: array + items: + $ref: '#/components/schemas/Location' + nextPageToken: + description: >- + If the result list is too large to fit in a single response, then a + token is returned. If the string is empty, then this response is the + last page of results and all available locations have been listed. + This token can be used in a subsequent call to + `ListAvailableLocations` to find more locations. Page tokens are + short-lived and should not be persisted. type: string - description: 'The resource name of the ShaCertificate for the AndroidApp, in the format: projects/PROJECT_IDENTIFIER/androidApps/APP_ID/sha/SHA_HASH * PROJECT_IDENTIFIER: the parent Project''s [`ProjectNumber`](../projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its [`ProjectId`](../projects#FirebaseProject.FIELDS.project_id). Learn more about using project identifiers in Google''s [AIP 2510 standard](https://google.aip.dev/cloud/2510). Note that the value for PROJECT_IDENTIFIER in any response body will be the `ProjectId`. * APP_ID: the globally unique, Firebase-assigned identifier for the App (see [`appId`](../projects.androidApps#AndroidApp.FIELDS.app_id)). * SHA_HASH: the certificate hash for the App (see [`shaHash`](../projects.androidApps.sha#ShaCertificate.FIELDS.sha_hash)).' - shaHash: + Location: + id: Location + deprecated: true + description: >- + **DEPRECATED.** _This Location is no longer used to determine Firebase + resource locations. Instead, consult product documentation to determine + valid locations for each resource used in your Project._ A ["location + for default Google Cloud + resources"](https://firebase.google.com/docs/projects/locations#default-cloud-location) + that can be selected for a FirebaseProject. These are resources + associated with Google App Engine. + type: object + properties: + locationId: + description: >- + The ID of the Project's location for default Google Cloud resources. + It will be one of the available [Google App Engine + locations](https://cloud.google.com/about/locations#region). type: string - description: The certificate hash for the `AndroidApp`. - certType: + type: + description: >- + Indicates whether the location for default Google Cloud resources is + a [regional or multi-regional + location](https://firebase.google.com/docs/projects/locations#types) + for data replication. type: string - description: The type of SHA certificate encoded in the hash. enumDescriptions: - - Unknown state. This is only used for distinguishing unset values. - - Certificate is a SHA-1 type certificate. - - Certificate is a SHA-256 type certificate. + - >- + Used internally for distinguishing unset values and is not + intended for external use. + - >- + The location is a regional location. Data in a regional location + is replicated in multiple zones within a region. + - >- + The location is a multi-regional location. Data in a multi-region + location is replicated in multiple regions. Within each region, + data is replicated in multiple zones. enum: - - SHA_CERTIFICATE_TYPE_UNSPECIFIED - - SHA_1 - - SHA_256 - AdminSdkConfig: + - LOCATION_TYPE_UNSPECIFIED + - REGIONAL + - MULTI_REGIONAL + features: + description: >- + Products and services that are available in the location for default + Google Cloud resources. + type: array + items: + type: string + enumDescriptions: + - >- + Used internally for distinguishing unset values and is not + intended for external use. + - >- + This location supports Cloud Firestore database instances. + Google App Engine is available in this location, so it can be a + Project's location for default Google Cloud resources. + - >- + This location supports default Cloud Storage buckets. Google App + Engine is available in this location, so it can be a Project's + location for default Google Cloud resources. + - Cloud Functions for Firebase is available in this location. + enum: + - LOCATION_FEATURE_UNSPECIFIED + - FIRESTORE + - DEFAULT_STORAGE + - FUNCTIONS + FinalizeDefaultLocationRequest: + id: FinalizeDefaultLocationRequest + deprecated: true + type: object properties: locationId: + description: >- + **DEPRECATED** The ID of the Project's ["location for default Google + Cloud + resources"](https://firebase.google.com/docs/projects/locations#default-cloud-location), + which are resources associated with Google App Engine. The location + must be one of the available [Google App Engine + locations](https://cloud.google.com/about/locations#region). type: string - description: The ID of the Project's default GCP resource location. The location is one of the available [GCP resource locations](https://firebase.google.com/docs/projects/locations). This field is omitted if the default GCP resource location has not been finalized yet. To set a Project's default GCP resource location, call [`FinalizeDefaultLocation`](../projects.defaultLocation/finalize) after you add Firebase resources to the Project. - storageBucket: - description: The default Cloud Storage for Firebase storage bucket name. + AdminSdkConfig: + id: AdminSdkConfig + type: object + properties: + projectId: + description: >- + Immutable. A user-assigned unique identifier for the + `FirebaseProject`. This identifier may appear in URLs or names for + some Firebase resources associated with the Project, but it should + generally be treated as a convenience alias to reference the + Project. type: string databaseURL: - description: The default Firebase Realtime Database URL. + description: >- + **DEPRECATED.** _Instead, find the URL of the default Realtime + Database instance using the [list + endpoint](https://firebase.google.com/docs/reference/rest/database/database-management/rest/v1beta/projects.locations.instances/list) + within the Firebase Realtime Database REST API. If the default + instance for the Project has not yet been provisioned, the return + might not contain a default instance. Note that the config that's + generated for the Firebase console or the Firebase CLI uses the + Realtime Database endpoint to populate this value for that config._ + The URL of the default Firebase Realtime Database instance. + deprecated: true type: string - projectId: + storageBucket: + description: >- + **DEPRECATED.** _Instead, find the name of the default Cloud Storage + for Firebase bucket using the [list + endpoint](https://firebase.google.com/docs/reference/rest/storage/rest/v1beta/projects.buckets/list) + within the Cloud Storage for Firebase REST API. If the default + bucket for the Project has not yet been provisioned, the return + might not contain a default bucket. Note that the config that's + generated for the Firebase console or the Firebase CLI uses the + Cloud Storage for Firebase endpoint to populate this value for that + config._ The name of the default Cloud Storage for Firebase bucket. + deprecated: true type: string - description: Immutable. A user-assigned unique identifier for the `FirebaseProject`. This identifier may appear in URLs or names for some Firebase resources associated with the Project, but it should generally be treated as a convenience alias to reference the Project. - id: AdminSdkConfig + locationId: + description: >- + **DEPRECATED.** _Instead, use product-specific REST APIs to find the + location of each resource in a Project. This field may not be + populated, especially for newly provisioned projects after October + 30, 2024._ The ID of the Project's ["location for default Google + Cloud + resources"](https://firebase.google.com/docs/projects/locations#default-cloud-location), + which are resources associated with Google App Engine. The location + is one of the available [App Engine + locations](https://cloud.google.com/about/locations#region). This + field is omitted if the location for default Google Cloud resources + has not been set. + deprecated: true + type: string + SearchFirebaseAppsResponse: + id: SearchFirebaseAppsResponse type: object - UndeleteIosAppRequest: properties: - validateOnly: - type: boolean - description: If set to true, the request is only validated. The App will _not_ be undeleted. - etag: + apps: + description: One page of results from a call to `SearchFirebaseApps`. + type: array + items: + $ref: '#/components/schemas/FirebaseAppInfo' + nextPageToken: + description: >- + If the result list is too large to fit in a single response, then a + token is returned. This token can be used in a subsequent calls to + `SearchFirebaseApps` to find the next group of Apps. Page tokens are + short-lived and should not be persisted. type: string - description: Checksum provided in the IosApp resource. If provided, this checksum ensures that the client has an up-to-date value before proceeding. - id: UndeleteIosAppRequest - type: object - AndroidAppConfig: - description: Configuration metadata of a single Firebase App for Android. + FirebaseAppInfo: + id: FirebaseAppInfo + description: A high-level summary of an App. type: object properties: - configFilename: + name: + description: >- + The resource name of the Firebase App, in the format: + projects/PROJECT_ID /iosApps/APP_ID or + projects/PROJECT_ID/androidApps/APP_ID or projects/ + PROJECT_ID/webApps/APP_ID type: string - description: 'The filename that the configuration artifact for the `AndroidApp` is typically saved as. For example: `google-services.json`' - configFileContents: - description: The contents of the JSON configuration file. - format: byte + displayName: + description: The user-assigned display name of the Firebase App. type: string - id: AndroidAppConfig - WebAppConfig: - description: Configuration metadata of a single Firebase App for the web. + platform: + description: The platform of the Firebase App. + type: string + enumDescriptions: + - Unknown state. This is only used for distinguishing unset values. + - The Firebase App is associated with iOS. + - The Firebase App is associated with Android. + - The Firebase App is associated with web. + enum: + - PLATFORM_UNSPECIFIED + - IOS + - ANDROID + - WEB + appId: + description: >- + Output only. Immutable. The globally unique, Firebase-assigned + identifier for the `WebApp`. This identifier should be treated as an + opaque token, as the data format is not specified. + readOnly: true + type: string + namespace: + description: >- + Output only. Immutable. The platform-specific identifier of the App. + *Note:* For most use cases, use `appId`, which is the canonical, + globally unique identifier for referencing an App. This string is + derived from a native identifier for each platform: `packageName` + for an `AndroidApp`, `bundleId` for an `IosApp`, and `webId` for a + `WebApp`. Its contents should be treated as opaque, as the native + identifier format may change as platforms evolve. This string is + only unique within a `FirebaseProject` and its associated Apps. + readOnly: true + type: string + apiKeyId: + description: >- + The globally unique, Google-assigned identifier (UID) for the + Firebase API key associated with the App. Be aware that this value + is the UID of the API key, _not_ the + [`keyString`](https://cloud.google.com/api-keys/docs/reference/rest/v2/projects.locations.keys#Key.FIELDS.key_string) + of the API key. The `keyString` is the value that can be found in + the App's configuration artifact + ([`AndroidApp`](../../rest/v1beta1/projects.androidApps/getConfig) | + [`IosApp`](../../rest/v1beta1/projects.iosApps/getConfig) | + [`WebApp`](../../rest/v1beta1/projects.webApps/getConfig)). If + `api_key_id` is not set in requests to create the App + ([`AndroidApp`](../../rest/v1beta1/projects.androidApps/create) | + [`IosApp`](../../rest/v1beta1/projects.iosApps/create) | + [`WebApp`](../../rest/v1beta1/projects.webApps/create)), then + Firebase automatically associates an `api_key_id` with the App. This + auto-associated key may be an existing valid key or, if no valid key + exists, a new one will be provisioned. + type: string + state: + description: Output only. The lifecycle state of the App. + readOnly: true + type: string + enumDescriptions: + - Unspecified state. + - The App is active. + - >- + The App has been soft-deleted. After an App has been in the + `DELETED` state for more than 30 days, it is considered expired + and will be permanently deleted. Up until this time, you can + restore the App by calling `Undelete` + ([Android](projects.androidApps/undelete) | + [iOS](projects.iosApps/undelete) | + [web](projects.webApps/undelete)). + enum: + - STATE_UNSPECIFIED + - ACTIVE + - DELETED + expireTime: + description: >- + Output only. If the App has been removed from the Project, this is + the timestamp of when the App is considered expired and will be + permanently deleted. After this time, the App cannot be undeleted + (that is, restored to the Project). This value is only provided if + the App is in the `DELETED` state. + readOnly: true + type: string + format: google-datetime + WebApp: + id: WebApp + description: Details of a Firebase App for the web. + type: object properties: - databaseURL: - description: The default Firebase Realtime Database URL. - type: string - authDomain: - type: string - description: 'The domain Firebase Auth configures for OAuth redirects, in the format: PROJECT_ID.firebaseapp.com' - projectId: - description: Immutable. A user-assigned unique identifier for the `FirebaseProject`. + name: + description: >- + The resource name of the WebApp, in the format: + projects/PROJECT_IDENTIFIER /webApps/APP_ID * PROJECT_IDENTIFIER: + the parent Project's + [`ProjectNumber`](../projects#FirebaseProject.FIELDS.project_number) + ***(recommended)*** or its + [`ProjectId`](../projects#FirebaseProject.FIELDS.project_id). Learn + more about using project identifiers in Google's [AIP 2510 + standard](https://google.aip.dev/cloud/2510). Note that the value + for PROJECT_IDENTIFIER in any response body will be the `ProjectId`. + * APP_ID: the globally unique, Firebase-assigned identifier for the + App (see [`appId`](../projects.webApps#WebApp.FIELDS.app_id)). type: string appId: + description: >- + Output only. Immutable. The globally unique, Firebase-assigned + identifier for the `WebApp`. This identifier should be treated as an + opaque token, as the data format is not specified. + readOnly: true type: string - description: Immutable. The globally unique, Firebase-assigned identifier for the `WebApp`. - messagingSenderId: + displayName: + description: The user-assigned display name for the `WebApp`. type: string - description: The sender ID for use with Firebase Cloud Messaging. - storageBucket: + projectId: + description: >- + Output only. Immutable. A user-assigned unique identifier of the + parent FirebaseProject for the `WebApp`. + readOnly: true type: string - description: The default Cloud Storage for Firebase storage bucket name. - locationId: - description: The ID of the Project's default GCP resource location. The location is one of the available [GCP resource locations](https://firebase.google.com/docs/projects/locations). This field is omitted if the default GCP resource location has not been finalized yet. To set a Project's default GCP resource location, call [`FinalizeDefaultLocation`](../projects.defaultLocation/finalize) after you add Firebase resources to the Project. + appUrls: + description: The URLs where the `WebApp` is hosted. + type: array + items: + type: string + webId: + description: >- + Output only. Immutable. A unique, Firebase-assigned identifier for + the `WebApp`. This identifier is only used to populate the + `namespace` value for the `WebApp`. For most use cases, use `appId` + to identify or reference the App. The `webId` value is only unique + within a `FirebaseProject` and its associated Apps. + readOnly: true + deprecated: true type: string - measurementId: - description: The unique Google-assigned identifier of the Google Analytics web stream associated with the `WebApp`. Firebase SDKs use this ID to interact with Google Analytics APIs. This field is only present if the `WebApp` is linked to a web stream in a Google Analytics App + Web property. Learn more about this ID and Google Analytics web streams in the [Analytics documentation](https://support.google.com/analytics/answer/9304153). To generate a `measurementId` and link the `WebApp` with a Google Analytics web stream, call [`AddGoogleAnalytics`](../../v1beta1/projects/addGoogleAnalytics). For apps using the Firebase JavaScript SDK v7.20.0 and later, Firebase dynamically fetches the `measurementId` when your app initializes Analytics. Having this ID in your config object is optional, but it does serve as a fallback in the rare case that the dynamic fetch fails. + apiKeyId: + description: >- + The globally unique, Google-assigned identifier (UID) for the + Firebase API key associated with the `WebApp`. Be aware that this + value is the UID of the API key, _not_ the + [`keyString`](https://cloud.google.com/api-keys/docs/reference/rest/v2/projects.locations.keys#Key.FIELDS.key_string) + of the API key. The `keyString` is the value that can be found in + the App's [configuration + artifact](../../rest/v1beta1/projects.webApps/getConfig). If + `api_key_id` is not set in requests to + [`webApps.Create`](../../rest/v1beta1/projects.webApps/create), then + Firebase automatically associates an `api_key_id` with the `WebApp`. + This auto-associated key may be an existing valid key or, if no + valid key exists, a new one will be provisioned. In patch requests, + `api_key_id` cannot be set to an empty value, and the new UID must + have no restrictions or only have restrictions that are valid for + the associated `WebApp`. We recommend using the [Google Cloud + Console](https://console.cloud.google.com/apis/credentials) to + manage API keys. type: string - apiKey: + state: + description: Output only. The lifecycle state of the App. + readOnly: true type: string - description: The [`keyString`](https://cloud.google.com/api-keys/docs/reference/rest/v2/projects.locations.keys#Key.FIELDS.key_string) of the API key associated with the `WebApp`. Note that this value is _not_ the [`apiKeyId`](../projects.webApps#WebApp.FIELDS.api_key_id) (the UID) of the API key associated with the `WebApp`. - type: object - id: WebAppConfig - ListAvailableProjectsResponse: - properties: - nextPageToken: - description: If the result list is too large to fit in a single response, then a token is returned. If the string is empty, then this response is the last page of results. This token can be used in a subsequent calls to `ListAvailableProjects` to find the next group of Projects. Page tokens are short-lived and should not be persisted. + enumDescriptions: + - Unspecified state. + - The App is active. + - >- + The App has been soft-deleted. After an App has been in the + `DELETED` state for more than 30 days, it is considered expired + and will be permanently deleted. Up until this time, you can + restore the App by calling `Undelete` + ([Android](projects.androidApps/undelete) | + [iOS](projects.iosApps/undelete) | + [web](projects.webApps/undelete)). + enum: + - STATE_UNSPECIFIED + - ACTIVE + - DELETED + expireTime: + description: >- + Output only. If the App has been removed from the Project, this is + the timestamp of when the App is considered expired and will be + permanently deleted. After this time, the App cannot be undeleted + (that is, restored to the Project). This value is only provided if + the App is in the `DELETED` state. + readOnly: true type: string - projectInfo: - description: The list of GCP `Projects` which can have Firebase resources added to them. - items: - $ref: '#/components/schemas/ProjectInfo' - type: array - type: object - id: ListAvailableProjectsResponse - RemoveAndroidAppRequest: - id: RemoveAndroidAppRequest - type: object - properties: - immediate: - type: boolean - description: Determines whether to _immediately_ delete the App. If set to true, the App is immediately deleted from the Project and cannot be restored to the Project. If not set, defaults to false, which means that the App may be restored to the Project within 30 days using UndeleteAndroidApp. + format: google-datetime etag: - description: Checksum provided in the AndroidApp resource. If provided, this checksum ensures that the client has an up-to-date value before proceeding. + description: >- + This checksum is computed by the server based on the value of other + fields, and it may be sent with update requests to ensure the client + has an up-to-date value before proceeding. Learn more about `etag` + in Google's [AIP-154 + standard](https://google.aip.dev/154#declarative-friendly-resources). + This etag is strongly validated. type: string - validateOnly: - description: If set to true, the request is only validated. The App will _not_ be removed. - type: boolean - allowMissing: - description: If set to true, and the App is not found, the request will succeed but no action will be taken on the server. - type: boolean ListWebAppsResponse: id: ListWebAppsResponse type: object properties: - nextPageToken: - type: string - description: If the result list is too large to fit in a single response, then a token is returned. If the string is empty, then this response is the last page of results. This token can be used in a subsequent call to `ListWebApps` to find the next group of Apps. Page tokens are short-lived and should not be persisted. apps: - description: List of each `WebApp` associated with the specified `FirebaseProject`. + description: >- + List of each `WebApp` associated with the specified + `FirebaseProject`. + type: array items: $ref: '#/components/schemas/WebApp' - type: array - UndeleteWebAppRequest: + nextPageToken: + description: >- + If the result list is too large to fit in a single response, then a + token is returned. If the string is empty, then this response is the + last page of results. This token can be used in a subsequent call to + `ListWebApps` to find the next group of Apps. Page tokens are + short-lived and should not be persisted. + type: string + RemoveWebAppRequest: + id: RemoveWebAppRequest type: object - id: UndeleteWebAppRequest properties: + allowMissing: + description: >- + If set to true, and the App is not found, the request will succeed + but no action will be taken on the server. + type: boolean + validateOnly: + description: >- + If set to true, the request is only validated. The App will _not_ be + removed. + type: boolean etag: + description: >- + Checksum provided in the WebApp resource. If provided, this checksum + ensures that the client has an up-to-date value before proceeding. type: string - description: Checksum provided in the WebApp resource. If provided, this checksum ensures that the client has an up-to-date value before proceeding. - validateOnly: - description: If set to true, the request is only validated. The App will _not_ be undeleted. + immediate: + description: >- + Determines whether to _immediately_ delete the WebApp. If set to + true, the App is immediately deleted from the Project and cannot be + undeleted (that is, restored to the Project). If not set, defaults + to false, which means the App will be set to expire in 30 days. + Within the 30 days, the App may be restored to the Project using + UndeleteWebApp type: boolean - MessageSet: - description: This is proto2's version of MessageSet. - properties: {} - id: MessageSet + UndeleteWebAppRequest: + id: UndeleteWebAppRequest type: object - FirebaseProject: + properties: + validateOnly: + description: >- + If set to true, the request is only validated. The App will _not_ be + undeleted. + type: boolean + etag: + description: >- + Checksum provided in the WebApp resource. If provided, this checksum + ensures that the client has an up-to-date value before proceeding. + type: string + WebAppConfig: + id: WebAppConfig + description: Configuration metadata of a single Firebase App for the web. type: object - id: FirebaseProject - description: A `FirebaseProject` is the top-level Firebase entity. It is the container for Firebase Apps, Firebase Hosting sites, storage systems (Firebase Realtime Database, Cloud Firestore, Cloud Storage buckets), and other Firebase and Google Cloud Platform (GCP) resources. You create a `FirebaseProject` by calling AddFirebase and specifying an *existing* [GCP `Project`](https://cloud.google.com/resource-manager/reference/rest/v1/projects). This adds Firebase resources to the existing GCP `Project`. Since a FirebaseProject is actually also a GCP `Project`, a `FirebaseProject` has the same underlying GCP identifiers (`projectNumber` and `projectId`). This allows for easy interop with Google APIs. properties: - projectNumber: - readOnly: true + projectId: + description: >- + Immutable. A user-assigned unique identifier for the + `FirebaseProject`. type: string - description: Output only. Immutable. The globally unique, Google-assigned canonical identifier for the Project. Use this identifier when configuring integrations and/or making API calls to Firebase or third-party services. - format: int64 - annotations: - additionalProperties: - type: string - type: object - description: A set of user-defined annotations for the FirebaseProject. Learn more about annotations in Google's [AIP-128 standard](https://google.aip.dev/128#annotations). These annotations are intended solely for developers and client-side tools. Firebase services will not mutate this annotations set. - resources: - readOnly: true - $ref: '#/components/schemas/DefaultResources' - description: Output only. The default Firebase resources associated with the Project. - state: - enum: - - STATE_UNSPECIFIED - - ACTIVE - - DELETED - enumDescriptions: - - Unspecified state. - - The Project is active. - - The Project has been soft-deleted. - description: Output only. The lifecycle state of the Project. - readOnly: true + appId: + description: >- + Immutable. The globally unique, Firebase-assigned identifier for the + `WebApp`. type: string - projectId: + databaseURL: + description: >- + **DEPRECATED.** _Instead, find the URL of the default Realtime + Database instance using the [list + endpoint](https://firebase.google.com/docs/reference/rest/database/database-management/rest/v1beta/projects.locations.instances/list) + within the Firebase Realtime Database REST API. If the default + instance for the Project has not yet been provisioned, the return + might not contain a default instance. Note that the config that's + generated for the Firebase console or the Firebase CLI uses the + Realtime Database endpoint to populate this value for that config._ + The URL of the default Firebase Realtime Database instance. + deprecated: true type: string - description: Output only. Immutable. A user-assigned unique identifier for the Project. This identifier may appear in URLs or names for some Firebase resources associated with the Project, but it should generally be treated as a convenience alias to reference the Project. - readOnly: true - displayName: + storageBucket: + description: >- + **DEPRECATED.** _Instead, find the name of the default Cloud Storage + for Firebase bucket using the [list + endpoint](https://firebase.google.com/docs/reference/rest/storage/rest/v1beta/projects.buckets/list) + within the Cloud Storage for Firebase REST API. If the default + bucket for the Project has not yet been provisioned, the return + might not contain a default bucket. Note that the config that's + generated for the Firebase console or the Firebase CLI uses the + Cloud Storage for Firebase endpoint to populate this value for that + config._ The name of the default Cloud Storage for Firebase bucket. + deprecated: true type: string - description: The user-assigned display name of the Project. - name: - description: 'The resource name of the Project, in the format: projects/PROJECT_IDENTIFIER PROJECT_IDENTIFIER: the Project''s [`ProjectNumber`](../projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its [`ProjectId`](../projects#FirebaseProject.FIELDS.project_id). Learn more about using project identifiers in Google''s [AIP 2510 standard](https://google.aip.dev/cloud/2510). Note that the value for PROJECT_IDENTIFIER in any response body will be the `ProjectId`.' + locationId: + description: >- + **DEPRECATED.** _Instead, use product-specific REST APIs to find the + location of each resource in a Project. This field may not be + populated, especially for newly provisioned projects after October + 30, 2024._ The ID of the Project's ["location for default Google + Cloud + resources"](https://firebase.google.com/docs/projects/locations#default-cloud-location), + which are resources associated with Google App Engine. The location + is one of the available [App Engine + locations](https://cloud.google.com/about/locations#region). This + field is omitted if the location for default Google Cloud resources + has not been set. + deprecated: true type: string - etag: - description: This checksum is computed by the server based on the value of other fields, and it may be sent with update requests to ensure the client has an up-to-date value before proceeding. Learn more about `etag` in Google's [AIP-154 standard](https://google.aip.dev/154#declarative-friendly-resources). This etag is strongly validated. + apiKey: + description: >- + The + [`keyString`](https://cloud.google.com/api-keys/docs/reference/rest/v2/projects.locations.keys#Key.FIELDS.key_string) + of the API key associated with the `WebApp`. Note that this value is + _not_ the [`apiKeyId`](../projects.webApps#WebApp.FIELDS.api_key_id) + (the UID) of the API key associated with the `WebApp`. type: string - IosAppConfig: - properties: - configFilename: + authDomain: + description: >- + The domain Firebase Auth configures for OAuth redirects, in the + format: PROJECT_ID.firebaseapp.com type: string - description: 'The filename that the configuration artifact for the `IosApp` is typically saved as. For example: `GoogleService-Info.plist`' - configFileContents: - description: The content of the XML configuration file. + messagingSenderId: + description: The sender ID for use with Firebase Cloud Messaging. type: string - format: byte - type: object - id: IosAppConfig - description: Configuration metadata of a single Firebase App for iOS. - ListFirebaseProjectsResponse: - properties: - results: - description: One page of the list of Projects that are accessible to the caller. - items: - $ref: '#/components/schemas/FirebaseProject' - type: array - nextPageToken: + measurementId: + description: >- + The unique Google-assigned identifier of the Google Analytics web + stream associated with the `WebApp`. Firebase SDKs use this ID to + interact with Google Analytics APIs. This field is only present if + the `WebApp` is linked to a web stream in a Google Analytics App + + Web property. Learn more about this ID and Google Analytics web + streams in the [Analytics + documentation](https://support.google.com/analytics/answer/9304153). + To generate a `measurementId` and link the `WebApp` with a Google + Analytics web stream, call + [`AddGoogleAnalytics`](../../v1beta1/projects/addGoogleAnalytics). + For apps using the Firebase JavaScript SDK v7.20.0 and later, + Firebase dynamically fetches the `measurementId` when your app + initializes Analytics. Having this ID in your config object is + optional, but it does serve as a fallback in the rare case that the + dynamic fetch fails. type: string - description: If the result list is too large to fit in a single response, then a token is returned. If the string is empty, then this response is the last page of results. This token can be used in a subsequent calls to `ListFirebaseProjects` to find the next group of Projects. Page tokens are short-lived and should not be persisted. - type: object - id: ListFirebaseProjectsResponse - ListAvailableLocationsResponse: - id: ListAvailableLocationsResponse - properties: - locations: - items: - $ref: '#/components/schemas/Location' - description: One page of results from a call to `ListAvailableLocations`. - type: array - nextPageToken: - description: If the result list is too large to fit in a single response, then a token is returned. If the string is empty, then this response is the last page of results and all available locations have been listed. This token can be used in a subsequent call to `ListAvailableLocations` to find more locations. Page tokens are short-lived and should not be persisted. + projectNumber: + description: >- + Output only. Immutable. The globally unique, Google-assigned + canonical identifier for the Project. Use this identifier when + configuring integrations and/or making API calls to Google Cloud or + third-party services. + readOnly: true type: string - type: object - AddGoogleAnalyticsRequest: - id: AddGoogleAnalyticsRequest - type: object - properties: - analyticsPropertyId: + realtimeDatabaseUrl: + description: >- + Optional. Duplicate field for the URL of the default Realtime + Database instances (if the default instance has been provisioned). + If the request asks for the V2 config format, this field will be + populated instead of `realtime_database_instance_uri`. type: string - description: The ID for the existing Google Analytics property that you want to associate with the `FirebaseProject`. - analyticsAccountId: - description: The ID for the existing [Google Analytics account](http://www.google.com/analytics/) that you want to link with the `FirebaseProject`. Specifying this field will provision a new Google Analytics property in your Google Analytics account and associate the new property with the `FirebaseProject`. + version: + description: Version of the config specification. type: string - SearchFirebaseAppsResponse: + StatusProto: + id: StatusProto + description: Wire-format for a Status object type: object properties: - apps: - type: array - items: - $ref: '#/components/schemas/FirebaseAppInfo' - description: One page of results from a call to `SearchFirebaseApps`. - nextPageToken: - description: If the result list is too large to fit in a single response, then a token is returned. This token can be used in a subsequent calls to `SearchFirebaseApps` to find the next group of Apps. Page tokens are short-lived and should not be persisted. - type: string - id: SearchFirebaseAppsResponse - AnalyticsProperty: - id: AnalyticsProperty - description: Details of a Google Analytics property - properties: - displayName: - description: The display name of the Google Analytics property associated with the specified `FirebaseProject`. - type: string - analyticsAccountId: + code: + description: >- + Numeric code drawn from the space specified below. Often, this is + the canonical error space, and code is drawn from + google3/util/task/codes.proto copybara:strip_begin(b/383363683) + copybara:strip_end_and_replace optional int32 code = 1; + type: integer + format: int32 + space: + description: >- + copybara:strip_begin(b/383363683) Space to which this status belongs + copybara:strip_end_and_replace optional string space = 2; // Space + to which this status belongs type: string - readOnly: true - description: Output only. The ID of the [Google Analytics account](https://www.google.com/analytics/) for the Google Analytics property associated with the specified FirebaseProject. - id: + message: + description: >- + Detail message copybara:strip_begin(b/383363683) + copybara:strip_end_and_replace optional string message = 3; type: string - description: The globally unique, Google-assigned identifier of the Google Analytics property associated with the specified `FirebaseProject`. If you called [`AddGoogleAnalytics`](../../v1beta1/projects/addGoogleAnalytics) to link the `FirebaseProject` with a Google Analytics account, the value in this `id` field is the same as the ID of the property either specified or provisioned with that call to `AddGoogleAnalytics`. + canonicalCode: + description: >- + copybara:strip_begin(b/383363683) copybara:strip_end_and_replace + optional int32 canonical_code = 6; + type: integer + format: int32 + messageSet: + description: >- + message_set associates an arbitrary proto message with the status. + copybara:strip_begin(b/383363683) copybara:strip_end_and_replace + optional proto2.bridge.MessageSet message_set = 5; + $ref: '#/components/schemas/MessageSet' + MessageSet: + id: MessageSet + deprecated: true + description: >- + This is proto2's version of MessageSet. DEPRECATED: DO NOT USE FOR NEW + FIELDS. If you are using editions or proto2, please make your own + extendable messages for your use case. If you are using proto3, please + use `Any` instead. MessageSet was the implementation of extensions for + proto1. When proto2 was introduced, extensions were implemented as a + first-class feature. This schema for MessageSet was meant to be a + "bridge" solution to migrate MessageSet-bearing messages from proto1 to + proto2. This schema has been open-sourced only to facilitate the + migration of Google products with MessageSet-bearing messages to + open-source environments. type: object - Empty: properties: {} - id: Empty - type: object - description: 'A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }' - ListAndroidAppsResponse: + ProductMetadata: + id: ProductMetadata + description: Metadata about a long-running Product operation. type: object - id: ListAndroidAppsResponse properties: - apps: - items: - $ref: '#/components/schemas/AndroidApp' - description: List of each `AndroidApp` associated with the specified `FirebaseProject`. + warningMessages: + description: List of warnings related to the associated operation. type: array - nextPageToken: - type: string - description: If the result list is too large to fit in a single response, then a token is returned. If the string is empty, then this response is the last page of results. This token can be used in a subsequent call to `ListAndroidApps` to find the next group of Apps. Page tokens are short-lived and should not be persisted. + items: + type: string + OperationMetadata: + id: OperationMetadata + description: >- + Describes the progress of an LRO. It is included in the `metadata` field + of the `Operation`. + type: object + properties: {} parameters: - key: - description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token. + access_token: + description: OAuth access token. in: query - name: key + name: access_token schema: type: string alt: @@ -751,24 +1535,6 @@ components: - json - media - proto - access_token: - description: OAuth access token. - in: query - name: access_token - schema: - type: string - oauth_token: - description: OAuth 2.0 token for the current user. - in: query - name: oauth_token - schema: - type: string - prettyPrint: - description: Returns response with indentations and line breaks. - in: query - name: prettyPrint - schema: - type: boolean callback: description: JSONP in: query @@ -781,25 +1547,40 @@ components: name: fields schema: type: string - _.xgafv: - description: V1 error format. + key: + description: >- + API key. Your API key identifies your project and provides you with API + access, quota, and reports. Required unless you provide an OAuth 2.0 + token. in: query - name: _.xgafv + name: key schema: type: string - enum: - - '1' - - '2' - upload_protocol: - description: Upload protocol for media (e.g. "raw", "multipart"). + oauth_token: + description: OAuth 2.0 token for the current user. in: query - name: upload_protocol + name: oauth_token schema: type: string + prettyPrint: + description: Returns response with indentations and line breaks. + in: query + name: prettyPrint + schema: + type: boolean quotaUser: - description: Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. + description: >- + Available to use for quota purposes for server-side applications. Can be + any arbitrary string assigned to a user, but should not exceed 40 + characters. + in: query + name: quotaUser + schema: + type: string + upload_protocol: + description: Upload protocol for media (e.g. "raw", "multipart"). in: query - name: quotaUser + name: upload_protocol schema: type: string uploadType: @@ -808,26 +1589,15 @@ components: name: uploadType schema: type: string - securitySchemes: - Oauth2: - type: oauth2 - description: Oauth 2.0 implicit authentication - flows: - implicit: - authorizationUrl: https://accounts.google.com/o/oauth2/auth - scopes: &ref_0 - https://www.googleapis.com/auth/cloud-platform.read-only: View your data across Google Cloud services and see the email address of your Google Account - https://www.googleapis.com/auth/firebase.readonly: View all your Firebase data and settings - https://www.googleapis.com/auth/firebase: View and administer all your Firebase data and settings - https://www.googleapis.com/auth/cloud-platform: See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account. - Oauth2c: - type: oauth2 - description: Oauth 2.0 authorization code authentication - flows: - authorizationCode: - authorizationUrl: https://accounts.google.com/o/oauth2/auth - tokenUrl: https://accounts.google.com/o/oauth2/token - scopes: *ref_0 + _.xgafv: + description: V1 error format. + in: query + name: $.xgafv + schema: + type: string + enum: + - '1' + - '2' x-stackQL-resources: operations: id: firebase.firebase.operations @@ -845,420 +1615,482 @@ components: - $ref: '#/components/x-stackQL-resources/operations/methods/get' insert: [] update: [] + replace: [] delete: [] - available_projects: - id: firebase.firebase.available_projects - name: available_projects - title: Available_projects + google_analytics: + id: firebase.firebase.google_analytics + name: google_analytics + title: Google_analytics methods: - availableProjects_list: + add_google_analytics: operation: - $ref: '#/paths/~1v1beta1~1availableProjects/get' + $ref: '#/paths/~1v1beta1~1projects~1{projectsId}:addGoogleAnalytics/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: [] + insert: + - $ref: >- + #/components/x-stackQL-resources/google_analytics/methods/add_google_analytics + update: [] + replace: [] + delete: [] + analytics_details: + id: firebase.firebase.analytics_details + name: analytics_details + title: Analytics_details + methods: + get_analytics_details: + operation: + $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1analyticsDetails/get' response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/available_projects/methods/availableProjects_list' + - $ref: >- + #/components/x-stackQL-resources/analytics_details/methods/get_analytics_details insert: [] update: [] + replace: [] delete: [] - sha: - id: firebase.firebase.sha - name: sha - title: Sha + analytics: + id: firebase.firebase.analytics + name: analytics + title: Analytics + methods: + remove_analytics: + operation: + $ref: '#/paths/~1v1beta1~1projects~1{projectsId}:removeAnalytics/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: [] + insert: [] + update: [] + replace: [] + delete: + - $ref: >- + #/components/x-stackQL-resources/analytics/methods/remove_analytics + projects: + id: firebase.firebase.projects + name: projects + title: Projects methods: - projects_androidApps_sha_list: + get: + operation: + $ref: '#/paths/~1v1beta1~1projects~1{projectsId}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + patch: operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1androidApps~1{androidAppsId}~1sha/get' + $ref: '#/paths/~1v1beta1~1projects~1{projectsId}/patch' response: mediaType: application/json openAPIDocKey: '200' - projects_androidApps_sha_create: + list: operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1androidApps~1{androidAppsId}~1sha/post' + $ref: '#/paths/~1v1beta1~1projects/get' response: mediaType: application/json openAPIDocKey: '200' - projects_androidApps_sha_delete: + objectKey: $.results + search_apps: operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1androidApps~1{androidAppsId}~1sha~1{shaId}/delete' + $ref: '#/paths/~1v1beta1~1projects~1{projectsId}:searchApps/get' response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/sha/methods/projects_androidApps_sha_list' + - $ref: '#/components/x-stackQL-resources/projects/methods/get' + - $ref: '#/components/x-stackQL-resources/projects/methods/list' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/projects/methods/patch' + replace: [] + delete: [] + firebase: + id: firebase.firebase.firebase + name: firebase + title: Firebase + methods: + add_firebase: + operation: + $ref: '#/paths/~1v1beta1~1projects~1{projectsId}:addFirebase/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: [] insert: - - $ref: '#/components/x-stackQL-resources/sha/methods/projects_androidApps_sha_create' + - $ref: '#/components/x-stackQL-resources/firebase/methods/add_firebase' update: [] - delete: - - $ref: '#/components/x-stackQL-resources/sha/methods/projects_androidApps_sha_delete' + replace: [] + delete: [] + admin_sdk_config: + id: firebase.firebase.admin_sdk_config + name: admin_sdk_config + title: Admin_sdk_config + methods: + get_admin_sdk_config: + operation: + $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1adminSdkConfig/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: >- + #/components/x-stackQL-resources/admin_sdk_config/methods/get_admin_sdk_config + insert: [] + update: [] + replace: [] + delete: [] android_apps: id: firebase.firebase.android_apps name: android_apps title: Android_apps methods: - projects_androidApps_remove: + get: operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1androidApps~1{androidAppsId}:remove/post' + $ref: >- + #/paths/~1v1beta1~1projects~1{projectsId}~1androidApps~1{androidAppsId}/get response: mediaType: application/json openAPIDocKey: '200' - projects_androidApps_get: + patch: operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1androidApps~1{androidAppsId}/get' + $ref: >- + #/paths/~1v1beta1~1projects~1{projectsId}~1androidApps~1{androidAppsId}/patch response: mediaType: application/json openAPIDocKey: '200' - projects_androidApps_patch: + list: operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1androidApps~1{androidAppsId}/patch' + $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1androidApps/get' response: mediaType: application/json openAPIDocKey: '200' - projects_androidApps_list: + objectKey: $.apps + create: operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1androidApps/get' + $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1androidApps/post' response: mediaType: application/json openAPIDocKey: '200' - projects_androidApps_create: + remove: operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1androidApps/post' + $ref: >- + #/paths/~1v1beta1~1projects~1{projectsId}~1androidApps~1{androidAppsId}:remove/post response: mediaType: application/json openAPIDocKey: '200' - projects_androidApps_undelete: + undelete: operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1androidApps~1{androidAppsId}:undelete/post' + $ref: >- + #/paths/~1v1beta1~1projects~1{projectsId}~1androidApps~1{androidAppsId}:undelete/post response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/android_apps/methods/projects_androidApps_get' - - $ref: '#/components/x-stackQL-resources/android_apps/methods/projects_androidApps_list' + - $ref: '#/components/x-stackQL-resources/android_apps/methods/get' + - $ref: '#/components/x-stackQL-resources/android_apps/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/android_apps/methods/projects_androidApps_create' - update: [] - delete: [] - android_apps__config: - id: firebase.firebase.android_apps__config - name: android_apps__config - title: Android_apps__config + - $ref: '#/components/x-stackQL-resources/android_apps/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/android_apps/methods/patch' + replace: [] + delete: + - $ref: '#/components/x-stackQL-resources/android_apps/methods/remove' + android_apps_config: + id: firebase.firebase.android_apps_config + name: android_apps_config + title: Android_apps_config methods: - projects_androidApps_getConfig: + get_config: operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1androidApps~1{androidAppsId}~1config/get' + $ref: >- + #/paths/~1v1beta1~1projects~1{projectsId}~1androidApps~1{androidAppsId}~1config/get response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/android_apps__config/methods/projects_androidApps_getConfig' + - $ref: >- + #/components/x-stackQL-resources/android_apps_config/methods/get_config insert: [] update: [] + replace: [] delete: [] - default_location: - id: firebase.firebase.default_location - name: default_location - title: Default_location + sha: + id: firebase.firebase.sha + name: sha + title: Sha methods: - projects_defaultLocation_finalize: + list: operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1defaultLocation:finalize/post' + $ref: >- + #/paths/~1v1beta1~1projects~1{projectsId}~1androidApps~1{androidAppsId}~1sha/get response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - available_locations: - id: firebase.firebase.available_locations - name: available_locations - title: Available_locations - methods: - projects_availableLocations_list: + create: operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1availableLocations/get' + $ref: >- + #/paths/~1v1beta1~1projects~1{projectsId}~1androidApps~1{androidAppsId}~1sha/post + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: >- + #/paths/~1v1beta1~1projects~1{projectsId}~1androidApps~1{androidAppsId}~1sha~1{shaId}/delete response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/available_locations/methods/projects_availableLocations_list' - insert: [] + - $ref: '#/components/x-stackQL-resources/sha/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/sha/methods/create' update: [] - delete: [] + replace: [] + delete: + - $ref: '#/components/x-stackQL-resources/sha/methods/delete' ios_apps: id: firebase.firebase.ios_apps name: ios_apps title: Ios_apps methods: - projects_iosApps_undelete: + get: operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1iosApps~1{iosAppsId}:undelete/post' + $ref: >- + #/paths/~1v1beta1~1projects~1{projectsId}~1iosApps~1{iosAppsId}/get response: mediaType: application/json openAPIDocKey: '200' - projects_iosApps_patch: + patch: operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1iosApps~1{iosAppsId}/patch' + $ref: >- + #/paths/~1v1beta1~1projects~1{projectsId}~1iosApps~1{iosAppsId}/patch response: mediaType: application/json openAPIDocKey: '200' - projects_iosApps_get: + list: operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1iosApps~1{iosAppsId}/get' + $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1iosApps/get' response: mediaType: application/json openAPIDocKey: '200' - projects_iosApps_remove: + objectKey: $.apps + create: operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1iosApps~1{iosAppsId}:remove/post' + $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1iosApps/post' response: mediaType: application/json openAPIDocKey: '200' - projects_iosApps_create: + remove: operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1iosApps/post' + $ref: >- + #/paths/~1v1beta1~1projects~1{projectsId}~1iosApps~1{iosAppsId}:remove/post response: mediaType: application/json openAPIDocKey: '200' - projects_iosApps_list: + undelete: operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1iosApps/get' + $ref: >- + #/paths/~1v1beta1~1projects~1{projectsId}~1iosApps~1{iosAppsId}:undelete/post response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/ios_apps/methods/projects_iosApps_get' - - $ref: '#/components/x-stackQL-resources/ios_apps/methods/projects_iosApps_list' + - $ref: '#/components/x-stackQL-resources/ios_apps/methods/get' + - $ref: '#/components/x-stackQL-resources/ios_apps/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/ios_apps/methods/projects_iosApps_create' - update: [] - delete: [] - ios_apps__config: - id: firebase.firebase.ios_apps__config - name: ios_apps__config - title: Ios_apps__config + - $ref: '#/components/x-stackQL-resources/ios_apps/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/ios_apps/methods/patch' + replace: [] + delete: + - $ref: '#/components/x-stackQL-resources/ios_apps/methods/remove' + ios_apps_config: + id: firebase.firebase.ios_apps_config + name: ios_apps_config + title: Ios_apps_config methods: - projects_iosApps_getConfig: + get_config: operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1iosApps~1{iosAppsId}~1config/get' + $ref: >- + #/paths/~1v1beta1~1projects~1{projectsId}~1iosApps~1{iosAppsId}~1config/get response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/ios_apps__config/methods/projects_iosApps_getConfig' + - $ref: >- + #/components/x-stackQL-resources/ios_apps_config/methods/get_config insert: [] update: [] + replace: [] delete: [] - web_apps: - id: firebase.firebase.web_apps - name: web_apps - title: Web_apps + available_locations: + id: firebase.firebase.available_locations + name: available_locations + title: Available_locations methods: - projects_webApps_get: - operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1webApps~1{webAppsId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_webApps_patch: - operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1webApps~1{webAppsId}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_webApps_remove: - operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1webApps~1{webAppsId}:remove/post' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_webApps_list: - operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1webApps/get' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_webApps_create: - operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1webApps/post' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_webApps_undelete: + list: operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1webApps~1{webAppsId}:undelete/post' + $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1availableLocations/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.locations sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/web_apps/methods/projects_webApps_get' - - $ref: '#/components/x-stackQL-resources/web_apps/methods/projects_webApps_list' - insert: - - $ref: '#/components/x-stackQL-resources/web_apps/methods/projects_webApps_create' + - $ref: '#/components/x-stackQL-resources/available_locations/methods/list' + insert: [] update: [] + replace: [] delete: [] - web_apps__config: - id: firebase.firebase.web_apps__config - name: web_apps__config - title: Web_apps__config + default_location: + id: firebase.firebase.default_location + name: default_location + title: Default_location methods: - projects_webApps_getConfig: + finalize: operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1webApps~1{webAppsId}~1config/get' + $ref: >- + #/paths/~1v1beta1~1projects~1{projectsId}~1defaultLocation:finalize/post response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/web_apps__config/methods/projects_webApps_getConfig' + select: [] insert: [] update: [] + replace: [] delete: [] - projects: - id: firebase.firebase.projects - name: projects - title: Projects + web_apps: + id: firebase.firebase.web_apps + name: web_apps + title: Web_apps methods: - list: + get: operation: - $ref: '#/paths/~1v1beta1~1projects/get' + $ref: >- + #/paths/~1v1beta1~1projects~1{projectsId}~1webApps~1{webAppsId}/get response: mediaType: application/json openAPIDocKey: '200' patch: operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}/patch' + $ref: >- + #/paths/~1v1beta1~1projects~1{projectsId}~1webApps~1{webAppsId}/patch response: mediaType: application/json openAPIDocKey: '200' - get: + list: operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}/get' + $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1webApps/get' response: mediaType: application/json openAPIDocKey: '200' - searchApps: + objectKey: $.apps + create: operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}:searchApps/get' + $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1webApps/post' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/projects/methods/get' - - $ref: '#/components/x-stackQL-resources/projects/methods/list' - insert: [] - update: [] - delete: [] - projects__google_analytics: - id: firebase.firebase.projects__google_analytics - name: projects__google_analytics - title: Projects__google_analytics - methods: - projects_addGoogleAnalytics: + remove: operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}:addGoogleAnalytics/post' + $ref: >- + #/paths/~1v1beta1~1projects~1{projectsId}~1webApps~1{webAppsId}:remove/post response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - projects__analytics_details: - id: firebase.firebase.projects__analytics_details - name: projects__analytics_details - title: Projects__analytics_details - methods: - projects_getAnalyticsDetails: + undelete: operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1analyticsDetails/get' + $ref: >- + #/paths/~1v1beta1~1projects~1{projectsId}~1webApps~1{webAppsId}:undelete/post response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/projects__analytics_details/methods/projects_getAnalyticsDetails' - insert: [] - update: [] - delete: [] - projects__admin_sdk_config: - id: firebase.firebase.projects__admin_sdk_config - name: projects__admin_sdk_config - title: Projects__admin_sdk_config + - $ref: '#/components/x-stackQL-resources/web_apps/methods/get' + - $ref: '#/components/x-stackQL-resources/web_apps/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/web_apps/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/web_apps/methods/patch' + replace: [] + delete: + - $ref: '#/components/x-stackQL-resources/web_apps/methods/remove' + web_apps_config: + id: firebase.firebase.web_apps_config + name: web_apps_config + title: Web_apps_config methods: - projects_getAdminSdkConfig: + get_config: operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}~1adminSdkConfig/get' + $ref: >- + #/paths/~1v1beta1~1projects~1{projectsId}~1webApps~1{webAppsId}~1config/get response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/projects__admin_sdk_config/methods/projects_getAdminSdkConfig' - insert: [] - update: [] - delete: [] - projects__analytics: - id: firebase.firebase.projects__analytics - name: projects__analytics - title: Projects__analytics - methods: - projects_removeAnalytics: - operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}:removeAnalytics/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] + - $ref: >- + #/components/x-stackQL-resources/web_apps_config/methods/get_config insert: [] update: [] + replace: [] delete: [] - projects__firebase: - id: firebase.firebase.projects__firebase - name: projects__firebase - title: Projects__firebase + available_projects: + id: firebase.firebase.available_projects + name: available_projects + title: Available_projects methods: - projects_addFirebase: + list: operation: - $ref: '#/paths/~1v1beta1~1projects~1{projectsId}:addFirebase/post' + $ref: '#/paths/~1v1beta1~1availableProjects/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.projectInfo sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/available_projects/methods/list' insert: [] update: [] + replace: [] delete: [] paths: /v1beta1/operations/{operationsId}: parameters: &ref_1 - - $ref: '#/components/parameters/key' - - $ref: '#/components/parameters/alt' - $ref: '#/components/parameters/access_token' + - $ref: '#/components/parameters/alt' + - $ref: '#/components/parameters/callback' + - $ref: '#/components/parameters/fields' + - $ref: '#/components/parameters/key' - $ref: '#/components/parameters/oauth_token' - $ref: '#/components/parameters/prettyPrint' - - $ref: '#/components/parameters/callback' - - $ref: '#/components/parameters/fields' - - $ref: '#/components/parameters/_.xgafv' - - $ref: '#/components/parameters/upload_protocol' - $ref: '#/components/parameters/quotaUser' + - $ref: '#/components/parameters/upload_protocol' - $ref: '#/components/parameters/uploadType' + - $ref: '#/components/parameters/_.xgafv' get: - description: Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service. + description: >- + Gets the latest state of a long-running operation. Clients can use this + method to poll the operation result at intervals as recommended by the + API service. operationId: firebase.operations.get security: - Oauth2: @@ -1290,13 +2122,85 @@ paths: required: true schema: type: string - x-stackQL-resource: operations - x-stackQL-verb: select - /v1beta1/availableProjects: + /v1beta1/projects/{projectsId}:addGoogleAnalytics: + parameters: *ref_1 + post: + description: >- + Links the specified FirebaseProject with an existing [Google Analytics + account](http://www.google.com/analytics/). Using this call, you can + either: - Specify an `analyticsAccountId` to provision a new Google + Analytics property within the specified account and associate the new + property with the `FirebaseProject`. - Specify an existing + `analyticsPropertyId` to associate the property with the + `FirebaseProject`. Note that when you call `AddGoogleAnalytics`: 1. The + first check determines if any existing data streams in the Google + Analytics property correspond to any existing Firebase Apps in the + `FirebaseProject` (based on the `packageName` or `bundleId` associated + with the data stream). Then, as applicable, the data streams and apps + are linked. Note that this auto-linking only applies to `AndroidApps` + and `IosApps`. 2. If no corresponding data streams are found for the + Firebase Apps, new data streams are provisioned in the Google Analytics + property for each of the Firebase Apps. Note that a new data stream is + always provisioned for a Web App even if it was previously associated + with a data stream in the Analytics property. Learn more about the + hierarchy and structure of Google Analytics accounts in the [Analytics + documentation](https://support.google.com/analytics/answer/9303323). The + result of this call is an [`Operation`](../../v1beta1/operations). Poll + the `Operation` to track the provisioning process by calling + GetOperation until + [`done`](../../v1beta1/operations#Operation.FIELDS.done) is `true`. When + `done` is `true`, the `Operation` has either succeeded or failed. If the + `Operation` succeeded, its + [`response`](../../v1beta1/operations#Operation.FIELDS.response) is set + to an AnalyticsDetails; if the `Operation` failed, its + [`error`](../../v1beta1/operations#Operation.FIELDS.error) is set to a + google.rpc.Status. To call `AddGoogleAnalytics`, a project member must + be an Owner for the existing `FirebaseProject` and have the [`Edit` + permission](https://support.google.com/analytics/answer/2884495) for the + Google Analytics account. If the `FirebaseProject` already has Google + Analytics enabled, and you call `AddGoogleAnalytics` using an + `analyticsPropertyId` that's different from the currently associated + property, then the call will fail. Analytics may have already been + enabled in the Firebase console or by specifying `timeZone` and + `regionCode` in the call to + [`AddFirebase`](../../v1beta1/projects/addFirebase). + operationId: firebase.projects.addGoogleAnalytics + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AddGoogleAnalyticsRequest' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + /v1beta1/projects/{projectsId}/analyticsDetails: parameters: *ref_1 get: - description: 'Lists each [Google Cloud Platform (GCP) `Project`] (https://cloud.google.com/resource-manager/reference/rest/v1/projects) that can have Firebase resources added to it. A Project will only be listed if: - The caller has sufficient [Google IAM](https://cloud.google.com/iam) permissions to call AddFirebase. - The Project is not already a FirebaseProject. - The Project is not in an Organization which has policies that prevent Firebase resources from being added. ' - operationId: firebase.availableProjects.list + description: >- + Gets the Google Analytics details currently associated with the + specified FirebaseProject. If the `FirebaseProject` is not yet linked to + Google Analytics, then the response to `GetAnalyticsDetails` is + `NOT_FOUND`. + operationId: firebase.projects.getAnalyticsDetails security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -1320,23 +2224,62 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ListAvailableProjectsResponse' + $ref: '#/components/schemas/AnalyticsDetails' parameters: - - in: query - name: pageSize + - in: path + name: projectsId + required: true schema: - type: integer - - in: query - name: pageToken + type: string + /v1beta1/projects/{projectsId}:removeAnalytics: + parameters: *ref_1 + post: + description: >- + Unlinks the specified FirebaseProject from its Google Analytics account. + This call removes the association of the specified `FirebaseProject` + with its current Google Analytics property. However, this call does not + delete the Google Analytics resources, such as the Google Analytics + property or any data streams. These resources may be re-associated later + to the `FirebaseProject` by calling + [`AddGoogleAnalytics`](../../v1beta1/projects/addGoogleAnalytics) and + specifying the same `analyticsPropertyId`. For Android Apps and iOS + Apps, this call re-links data streams with their corresponding apps. + However, for Web Apps, this call provisions a *new* data stream for each + Web App. To call `RemoveAnalytics`, a project member must be an Owner + for the `FirebaseProject`. + operationId: firebase.projects.removeAnalytics + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RemoveAnalyticsRequest' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Empty' + parameters: + - in: path + name: projectsId + required: true schema: type: string - x-stackQL-resource: available_projects - x-stackQL-verb: select - /v1beta1/projects/{projectsId}/androidApps/{androidAppsId}/sha: + /v1beta1/projects/{projectsId}: parameters: *ref_1 get: - description: Lists the SHA-1 and SHA-256 certificates for the specified AndroidApp. - operationId: firebase.projects.androidApps.sha.list + description: Gets the specified FirebaseProject. + operationId: firebase.projects.get security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -1360,28 +2303,23 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ListShaCertificatesResponse' + $ref: '#/components/schemas/FirebaseProject' parameters: - in: path name: projectsId required: true schema: type: string - - in: path - name: androidAppsId - required: true - schema: - type: string - x-stackQL-resource: sha - x-stackQL-verb: select - post: - description: Adds a ShaCertificate to the specified AndroidApp. - operationId: firebase.projects.androidApps.sha.create + patch: + description: >- + Updates the attributes of the specified FirebaseProject. All [query + parameters](#query-parameters) are required. + operationId: firebase.projects.patch requestBody: content: application/json: schema: - $ref: '#/components/schemas/ShaCertificate' + $ref: '#/components/schemas/FirebaseProject' security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -1397,69 +2335,102 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ShaCertificate' + $ref: '#/components/schemas/FirebaseProject' parameters: - in: path name: projectsId required: true schema: type: string - - in: path - name: androidAppsId - required: true + - in: query + name: updateMask schema: type: string - x-stackQL-resource: sha - x-stackQL-verb: insert - /v1beta1/projects/{projectsId}/androidApps/{androidAppsId}/sha/{shaId}: + format: google-fieldmask + /v1beta1/projects: parameters: *ref_1 - delete: - description: Removes a ShaCertificate from the specified AndroidApp. - operationId: firebase.projects.androidApps.sha.delete + get: + description: >- + Lists each FirebaseProject accessible to the caller. The elements are + returned in no particular order, but they will be a consistent view of + the Projects when additional requests are made with a `pageToken`. This + method is eventually consistent with Project mutations, which means + newly provisioned Projects and recent modifications to existing Projects + might not be reflected in the set of Projects. The list will include + only ACTIVE Projects. Use GetFirebaseProject for consistent reads as + well as for additional Project details. + operationId: firebase.projects.list security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform Oauth2c: - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform.read-only + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform.read-only - Oauth2: - https://www.googleapis.com/auth/firebase Oauth2c: - https://www.googleapis.com/auth/firebase + - Oauth2: + - https://www.googleapis.com/auth/firebase.readonly + Oauth2c: + - https://www.googleapis.com/auth/firebase.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Empty' + $ref: '#/components/schemas/ListFirebaseProjectsResponse' parameters: - - in: path - name: projectsId - required: true + - in: query + name: pageToken schema: type: string - - in: path - name: androidAppsId - required: true + - in: query + name: pageSize schema: - type: string - - in: path - name: shaId - required: true + type: integer + format: int32 + - in: query + name: showDeleted schema: - type: string - x-stackQL-resource: sha - x-stackQL-verb: delete - /v1beta1/projects/{projectsId}/androidApps/{androidAppsId}:remove: + type: boolean + /v1beta1/projects/{projectsId}:addFirebase: parameters: *ref_1 post: - description: Removes the specified AndroidApp from the FirebaseProject. - operationId: firebase.projects.androidApps.remove + description: >- + Adds Firebase resources and enables Firebase services in the specified + existing [Google Cloud + `Project`](https://cloud.google.com/resource-manager/reference/rest/v1/projects). + Since a FirebaseProject is actually also a Google Cloud `Project`, a + `FirebaseProject` has the same underlying Google Cloud identifiers + (`projectNumber` and `projectId`). This allows for easy interop with + Google APIs. The result of this call is an + [`Operation`](../../v1beta1/operations). Poll the `Operation` to track + the provisioning process by calling GetOperation until + [`done`](../../v1beta1/operations#Operation.FIELDS.done) is `true`. When + `done` is `true`, the `Operation` has either succeeded or failed. If the + `Operation` succeeded, its + [`response`](../../v1beta1/operations#Operation.FIELDS.response) is set + to a FirebaseProject; if the `Operation` failed, its + [`error`](../../v1beta1/operations#Operation.FIELDS.error) is set to a + google.rpc.Status. The `Operation` is automatically deleted after + completion, so there is no need to call DeleteOperation. This method + does not modify any billing account information on the underlying Google + Cloud `Project`. To call `AddFirebase`, a project member or service + account must have the following permissions (the IAM roles of Editor and + Owner contain these permissions): `firebase.projects.update`, + `resourcemanager.projects.get`, `serviceusage.services.enable`, and + `serviceusage.services.get`. + operationId: firebase.projects.addFirebase requestBody: content: application/json: schema: - $ref: '#/components/schemas/RemoveAndroidAppRequest' + $ref: '#/components/schemas/AddFirebaseRequest' security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -1482,13 +2453,103 @@ paths: required: true schema: type: string + /v1beta1/projects/{projectsId}/adminSdkConfig: + parameters: *ref_1 + get: + description: >- + Gets the configuration artifact associated with the specified + FirebaseProject, which can be used by servers to simplify + initialization. Typically, this configuration is used with the Firebase + Admin SDK + [initializeApp](https://firebase.google.com/docs/admin/setup#initialize_the_sdk) + command. + operationId: firebase.projects.getAdminSdkConfig + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform.read-only + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform.read-only + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + - Oauth2: + - https://www.googleapis.com/auth/firebase.readonly + Oauth2c: + - https://www.googleapis.com/auth/firebase.readonly + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/AdminSdkConfig' + parameters: - in: path - name: androidAppsId + name: projectsId + required: true + schema: + type: string + /v1beta1/projects/{projectsId}:searchApps: + parameters: *ref_1 + get: + description: >- + Lists all available Apps for the specified FirebaseProject. This is a + convenience method. Typically, interaction with an App should be done + using the platform-specific service, but some tool use-cases require a + summary of all known Apps (such as for App selector interfaces). + operationId: firebase.projects.searchApps + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform.read-only + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform.read-only + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + - Oauth2: + - https://www.googleapis.com/auth/firebase.readonly + Oauth2c: + - https://www.googleapis.com/auth/firebase.readonly + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/SearchFirebaseAppsResponse' + parameters: + - in: path + name: projectsId required: true schema: type: string - x-stackQL-resource: android_apps - x-stackQL-verb: delete + - in: query + name: pageToken + schema: + type: string + - in: query + name: pageSize + schema: + type: integer + format: int32 + - in: query + name: filter + schema: + type: string + - in: query + name: showDeleted + schema: + type: boolean /v1beta1/projects/{projectsId}/androidApps/{androidAppsId}: parameters: *ref_1 get: @@ -1529,8 +2590,6 @@ paths: required: true schema: type: string - x-stackQL-resource: android_apps - x-stackQL-verb: select patch: description: Updates the attributes of the specified AndroidApp. operationId: firebase.projects.androidApps.patch @@ -1570,12 +2629,14 @@ paths: name: updateMask schema: type: string - x-stackQL-resource: android_apps - x-stackQL-verb: exec + format: google-fieldmask /v1beta1/projects/{projectsId}/androidApps: parameters: *ref_1 get: - description: Lists each AndroidApp associated with the specified FirebaseProject. The elements are returned in no particular order, but will be a consistent view of the Apps when additional requests are made with a `pageToken`. + description: >- + Lists each AndroidApp associated with the specified FirebaseProject. The + elements are returned in no particular order, but will be a consistent + view of the Apps when additional requests are made with a `pageToken`. operationId: firebase.projects.androidApps.list security: - Oauth2: @@ -1615,20 +2676,55 @@ paths: name: pageSize schema: type: integer + format: int32 - in: query name: showDeleted schema: - type: boolean - x-stackQL-resource: android_apps - x-stackQL-verb: select + type: boolean + post: + description: >- + Requests the creation of a new AndroidApp in the specified + FirebaseProject. The result of this call is an `Operation` which can be + used to track the provisioning process. The `Operation` is automatically + deleted after completion, so there is no need to call `DeleteOperation`. + operationId: firebase.projects.androidApps.create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AndroidApp' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + /v1beta1/projects/{projectsId}/androidApps/{androidAppsId}:remove: + parameters: *ref_1 post: - description: Requests the creation of a new AndroidApp in the specified FirebaseProject. The result of this call is an `Operation` which can be used to track the provisioning process. The `Operation` is automatically deleted after completion, so there is no need to call `DeleteOperation`. - operationId: firebase.projects.androidApps.create + description: Removes the specified AndroidApp from the FirebaseProject. + operationId: firebase.projects.androidApps.remove requestBody: content: application/json: schema: - $ref: '#/components/schemas/AndroidApp' + $ref: '#/components/schemas/RemoveAndroidAppRequest' security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -1651,8 +2747,11 @@ paths: required: true schema: type: string - x-stackQL-resource: android_apps - x-stackQL-verb: insert + - in: path + name: androidAppsId + required: true + schema: + type: string /v1beta1/projects/{projectsId}/androidApps/{androidAppsId}:undelete: parameters: *ref_1 post: @@ -1690,12 +2789,12 @@ paths: required: true schema: type: string - x-stackQL-resource: android_apps - x-stackQL-verb: exec /v1beta1/projects/{projectsId}/androidApps/{androidAppsId}/config: parameters: *ref_1 get: - description: Gets the configuration artifact associated with the specified AndroidApp. + description: >- + Gets the configuration artifact associated with the specified + AndroidApp. operationId: firebase.projects.androidApps.getConfig security: - Oauth2: @@ -1732,47 +2831,11 @@ paths: required: true schema: type: string - x-stackQL-resource: android_apps__config - x-stackQL-verb: select - /v1beta1/projects/{projectsId}/defaultLocation:finalize: - parameters: *ref_1 - post: - description: Sets the default Google Cloud Platform (GCP) resource location for the specified FirebaseProject. This method creates an App Engine application with a [default Cloud Storage bucket](https://cloud.google.com/appengine/docs/standard/python/googlecloudstorageclient/setting-up-cloud-storage#activating_a_cloud_storage_bucket), located in the specified [`locationId`](#body.request_body.FIELDS.location_id). This location must be one of the available [GCP resource locations](https://firebase.google.com/docs/projects/locations). After the default GCP resource location is finalized, or if it was already set, it cannot be changed. The default GCP resource location for the specified `FirebaseProject` might already be set because either the underlying GCP `Project` already has an App Engine application or `FinalizeDefaultLocation` was previously called with a specified `locationId`. Any new calls to `FinalizeDefaultLocation` with a *different* specified `locationId` will return a 409 error. The result of this call is an [`Operation`](../../v1beta1/operations), which can be used to track the provisioning process. The [`response`](../../v1beta1/operations#Operation.FIELDS.response) type of the `Operation` is google.protobuf.Empty. The `Operation` can be polled by its `name` using GetOperation until `done` is true. When `done` is true, the `Operation` has either succeeded or failed. If the `Operation` has succeeded, its [`response`](../../v1beta1/operations#Operation.FIELDS.response) will be set to a google.protobuf.Empty; if the `Operation` has failed, its `error` will be set to a google.rpc.Status. The `Operation` is automatically deleted after completion, so there is no need to call DeleteOperation. All fields listed in the [request body](#request-body) are required. To call `FinalizeDefaultLocation`, a member must be an Owner of the Project. - operationId: firebase.projects.defaultLocation.finalize - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/FinalizeDefaultLocationRequest' - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/Operation' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - x-stackQL-resource: default_location - x-stackQL-verb: exec - /v1beta1/projects/{projectsId}/availableLocations: + /v1beta1/projects/{projectsId}/androidApps/{androidAppsId}/sha: parameters: *ref_1 get: - description: Lists the valid Google Cloud Platform (GCP) resource locations for the specified Project (including a FirebaseProject). One of these locations can be selected as the Project's [_default_ GCP resource location](https://firebase.google.com/docs/projects/locations), which is the geographical location where the Project's resources, such as Cloud Firestore, will be provisioned by default. However, if the default GCP resource location has already been set for the Project, then this setting cannot be changed. This call checks for any possible [location restrictions](https://cloud.google.com/resource-manager/docs/organization-policy/defining-locations) for the specified Project and, thus, might return a subset of all possible GCP resource locations. To list all GCP resource locations (regardless of any restrictions), call the endpoint without specifying a unique project identifier (that is, `/v1beta1/{parent=projects/-}/listAvailableLocations`). To call `ListAvailableLocations` with a specified project, a member must be at minimum a Viewer of the Project. Calls without a specified project do not require any specific project permissions. - operationId: firebase.projects.availableLocations.list + description: Lists the SHA-1 and SHA-256 certificates for the specified AndroidApp. + operationId: firebase.projects.androidApps.sha.list security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -1796,33 +2859,26 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ListAvailableLocationsResponse' + $ref: '#/components/schemas/ListShaCertificatesResponse' parameters: - in: path name: projectsId required: true schema: type: string - - in: query - name: pageToken + - in: path + name: androidAppsId + required: true schema: type: string - - in: query - name: pageSize - schema: - type: integer - x-stackQL-resource: available_locations - x-stackQL-verb: select - /v1beta1/projects/{projectsId}/iosApps/{iosAppsId}:undelete: - parameters: *ref_1 post: - description: Restores the specified IosApp to the FirebaseProject. - operationId: firebase.projects.iosApps.undelete + description: Adds a ShaCertificate to the specified AndroidApp. + operationId: firebase.projects.androidApps.sha.create requestBody: content: application/json: schema: - $ref: '#/components/schemas/UndeleteIosAppRequest' + $ref: '#/components/schemas/ShaCertificate' security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -1838,7 +2894,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Operation' + $ref: '#/components/schemas/ShaCertificate' parameters: - in: path name: projectsId @@ -1846,22 +2902,15 @@ paths: schema: type: string - in: path - name: iosAppsId + name: androidAppsId required: true schema: type: string - x-stackQL-resource: ios_apps - x-stackQL-verb: exec - /v1beta1/projects/{projectsId}/iosApps/{iosAppsId}: + /v1beta1/projects/{projectsId}/androidApps/{androidAppsId}/sha/{shaId}: parameters: *ref_1 - patch: - description: Updates the attributes of the specified IosApp. - operationId: firebase.projects.iosApps.patch - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/IosApp' + delete: + description: Removes a ShaCertificate from the specified AndroidApp. + operationId: firebase.projects.androidApps.sha.delete security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -1877,7 +2926,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/IosApp' + $ref: '#/components/schemas/Empty' parameters: - in: path name: projectsId @@ -1885,61 +2934,20 @@ paths: schema: type: string - in: path - name: iosAppsId - required: true - schema: - type: string - - in: query - name: updateMask - schema: - type: string - x-stackQL-resource: ios_apps - x-stackQL-verb: exec - get: - description: Gets the specified IosApp. - operationId: firebase.projects.iosApps.get - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform.read-only - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform.read-only - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - - Oauth2: - - https://www.googleapis.com/auth/firebase.readonly - Oauth2c: - - https://www.googleapis.com/auth/firebase.readonly - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/IosApp' - parameters: - - in: path - name: projectsId + name: androidAppsId required: true schema: type: string - in: path - name: iosAppsId + name: shaId required: true schema: type: string - x-stackQL-resource: ios_apps - x-stackQL-verb: select - /v1beta1/projects/{projectsId}/iosApps/{iosAppsId}/config: + /v1beta1/projects/{projectsId}/iosApps/{iosAppsId}: parameters: *ref_1 get: - description: Gets the configuration artifact associated with the specified IosApp. - operationId: firebase.projects.iosApps.getConfig + description: Gets the specified IosApp. + operationId: firebase.projects.iosApps.get security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -1963,7 +2971,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/IosAppConfig' + $ref: '#/components/schemas/IosApp' parameters: - in: path name: projectsId @@ -1975,18 +2983,14 @@ paths: required: true schema: type: string - x-stackQL-resource: ios_apps__config - x-stackQL-verb: select - /v1beta1/projects/{projectsId}/iosApps/{iosAppsId}:remove: - parameters: *ref_1 - post: - description: Removes the specified IosApp from the FirebaseProject. - operationId: firebase.projects.iosApps.remove + patch: + description: Updates the attributes of the specified IosApp. + operationId: firebase.projects.iosApps.patch requestBody: content: application/json: schema: - $ref: '#/components/schemas/RemoveIosAppRequest' + $ref: '#/components/schemas/IosApp' security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -2002,7 +3006,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Operation' + $ref: '#/components/schemas/IosApp' parameters: - in: path name: projectsId @@ -2014,44 +3018,18 @@ paths: required: true schema: type: string - x-stackQL-resource: ios_apps - x-stackQL-verb: delete - /v1beta1/projects/{projectsId}/iosApps: - parameters: *ref_1 - post: - description: Requests the creation of a new IosApp in the specified FirebaseProject. The result of this call is an `Operation` which can be used to track the provisioning process. The `Operation` is automatically deleted after completion, so there is no need to call `DeleteOperation`. - operationId: firebase.projects.iosApps.create - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/IosApp' - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/Operation' - parameters: - - in: path - name: projectsId - required: true + - in: query + name: updateMask schema: type: string - x-stackQL-resource: ios_apps - x-stackQL-verb: insert + format: google-fieldmask + /v1beta1/projects/{projectsId}/iosApps: + parameters: *ref_1 get: - description: Lists each IosApp associated with the specified FirebaseProject. The elements are returned in no particular order, but will be a consistent view of the Apps when additional requests are made with a `pageToken`. + description: >- + Lists each IosApp associated with the specified FirebaseProject. The + elements are returned in no particular order, but will be a consistent + view of the Apps when additional requests are made with a `pageToken`. operationId: firebase.projects.iosApps.list security: - Oauth2: @@ -2087,66 +3065,59 @@ paths: name: pageToken schema: type: string - - in: query - name: showDeleted - schema: - type: boolean - in: query name: pageSize schema: type: integer - x-stackQL-resource: ios_apps - x-stackQL-verb: select - /v1beta1/projects/{projectsId}/webApps/{webAppsId}: - parameters: *ref_1 - get: - description: Gets the specified WebApp. - operationId: firebase.projects.webApps.get + format: int32 + - in: query + name: showDeleted + schema: + type: boolean + post: + description: >- + Requests the creation of a new IosApp in the specified FirebaseProject. + The result of this call is an `Operation` which can be used to track the + provisioning process. The `Operation` is automatically deleted after + completion, so there is no need to call `DeleteOperation`. + operationId: firebase.projects.iosApps.create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/IosApp' security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform Oauth2c: - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform.read-only - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform.read-only - Oauth2: - https://www.googleapis.com/auth/firebase Oauth2c: - https://www.googleapis.com/auth/firebase - - Oauth2: - - https://www.googleapis.com/auth/firebase.readonly - Oauth2c: - - https://www.googleapis.com/auth/firebase.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/WebApp' + $ref: '#/components/schemas/Operation' parameters: - in: path name: projectsId required: true schema: type: string - - in: path - name: webAppsId - required: true - schema: - type: string - x-stackQL-resource: web_apps - x-stackQL-verb: select - patch: - description: Updates the attributes of the specified WebApp. - operationId: firebase.projects.webApps.patch + /v1beta1/projects/{projectsId}/iosApps/{iosAppsId}:remove: + parameters: *ref_1 + post: + description: Removes the specified IosApp from the FirebaseProject. + operationId: firebase.projects.iosApps.remove requestBody: content: application/json: schema: - $ref: '#/components/schemas/WebApp' + $ref: '#/components/schemas/RemoveIosAppRequest' security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -2162,7 +3133,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/WebApp' + $ref: '#/components/schemas/Operation' parameters: - in: path name: projectsId @@ -2170,26 +3141,20 @@ paths: schema: type: string - in: path - name: webAppsId + name: iosAppsId required: true schema: type: string - - in: query - name: updateMask - schema: - type: string - x-stackQL-resource: web_apps - x-stackQL-verb: exec - /v1beta1/projects/{projectsId}/webApps/{webAppsId}:remove: + /v1beta1/projects/{projectsId}/iosApps/{iosAppsId}:undelete: parameters: *ref_1 post: - description: Removes the specified WebApp from the FirebaseProject. - operationId: firebase.projects.webApps.remove + description: Restores the specified IosApp to the FirebaseProject. + operationId: firebase.projects.iosApps.undelete requestBody: content: application/json: schema: - $ref: '#/components/schemas/RemoveWebAppRequest' + $ref: '#/components/schemas/UndeleteIosAppRequest' security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -2213,17 +3178,15 @@ paths: schema: type: string - in: path - name: webAppsId + name: iosAppsId required: true schema: type: string - x-stackQL-resource: web_apps - x-stackQL-verb: delete - /v1beta1/projects/{projectsId}/webApps/{webAppsId}/config: + /v1beta1/projects/{projectsId}/iosApps/{iosAppsId}/config: parameters: *ref_1 get: - description: Gets the configuration artifact associated with the specified WebApp. - operationId: firebase.projects.webApps.getConfig + description: Gets the configuration artifact associated with the specified IosApp. + operationId: firebase.projects.iosApps.getConfig security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -2247,7 +3210,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/WebAppConfig' + $ref: '#/components/schemas/IosAppConfig' parameters: - in: path name: projectsId @@ -2255,17 +3218,38 @@ paths: schema: type: string - in: path - name: webAppsId + name: iosAppsId required: true schema: type: string - x-stackQL-resource: web_apps__config - x-stackQL-verb: select - /v1beta1/projects/{projectsId}/webApps: + /v1beta1/projects/{projectsId}/availableLocations: parameters: *ref_1 get: - description: Lists each WebApp associated with the specified FirebaseProject. The elements are returned in no particular order, but will be a consistent view of the Apps when additional requests are made with a `pageToken`. - operationId: firebase.projects.webApps.list + description: >- + **DECOMMISSIONED.** **If called, this endpoint will return a 404 + error.** _Instead, use the applicable resource-specific REST API (or + associated documentation, as needed) to determine valid locations for + each resource used in your Project._ Lists the valid ["locations for + default Google Cloud + resources"](https://firebase.google.com/docs/projects/locations#default-cloud-location) + for the specified Project (including a FirebaseProject). One of these + locations can be selected as the Project's location for default Google + Cloud resources, which is the geographical location where the Project's + resources associated with Google App Engine (such as the default Cloud + Firestore instance) will be provisioned by default. However, if the + location for default Google Cloud resources has already been set for the + Project, then this setting cannot be changed. This call checks for any + possible [location + restrictions](https://cloud.google.com/resource-manager/docs/organization-policy/defining-locations) + for the specified Project and, thus, might return a subset of all + possible locations. To list all locations (regardless of any + restrictions), call the endpoint without specifying a unique project + identifier (that is, + `/v1beta1/{parent=projects/-}/listAvailableLocations`). To call + `ListAvailableLocations` with a specified project, a member must be at + minimum a Viewer of the Project. Calls without a specified project do + not require any specific project permissions. + operationId: firebase.projects.availableLocations.list security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -2289,7 +3273,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ListWebAppsResponse' + $ref: '#/components/schemas/ListAvailableLocationsResponse' parameters: - in: path name: projectsId @@ -2297,61 +3281,56 @@ paths: schema: type: string - in: query - name: showDeleted + name: pageToken schema: - type: boolean + type: string - in: query name: pageSize schema: type: integer - - in: query - name: pageToken - schema: - type: string - x-stackQL-resource: web_apps - x-stackQL-verb: select - post: - description: Requests the creation of a new WebApp in the specified FirebaseProject. The result of this call is an `Operation` which can be used to track the provisioning process. The `Operation` is automatically deleted after completion, so there is no need to call `DeleteOperation`. - operationId: firebase.projects.webApps.create - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/WebApp' - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/Operation' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - x-stackQL-resource: web_apps - x-stackQL-verb: insert - /v1beta1/projects/{projectsId}/webApps/{webAppsId}:undelete: + format: int32 + /v1beta1/projects/{projectsId}/defaultLocation:finalize: parameters: *ref_1 post: - description: Restores the specified WebApp to the FirebaseProject. - operationId: firebase.projects.webApps.undelete + description: >- + **DECOMMISSIONED.** **If called, this endpoint will return a 404 + error.** _Instead, use the applicable resource-specific REST API to set + the location for each resource used in your Project._ Sets the + ["location for default Google Cloud + resources"](https://firebase.google.com/docs/projects/locations#default-cloud-location) + for the specified FirebaseProject. This method creates a Google App + Engine application with a [default Cloud Storage + bucket](https://cloud.google.com/appengine/docs/standard/python/googlecloudstorageclient/setting-up-cloud-storage#activating_a_cloud_storage_bucket), + located in the specified + [`locationId`](#body.request_body.FIELDS.location_id). This location + must be one of the available [App Engine + locations](https://cloud.google.com/about/locations#region). After the + location for default Google Cloud resources is finalized, or if it was + already set, it cannot be changed. The location for default Google Cloud + resources for the specified `FirebaseProject` might already be set + because either the underlying Google Cloud `Project` already has an App + Engine application or `FinalizeDefaultLocation` was previously called + with a specified `locationId`. The result of this call is an + [`Operation`](../../v1beta1/operations), which can be used to track the + provisioning process. The + [`response`](../../v1beta1/operations#Operation.FIELDS.response) type of + the `Operation` is google.protobuf.Empty. The `Operation` can be polled + by its `name` using GetOperation until `done` is true. When `done` is + true, the `Operation` has either succeeded or failed. If the `Operation` + has succeeded, its + [`response`](../../v1beta1/operations#Operation.FIELDS.response) will be + set to a google.protobuf.Empty; if the `Operation` has failed, its + `error` will be set to a google.rpc.Status. The `Operation` is + automatically deleted after completion, so there is no need to call + DeleteOperation. All fields listed in the [request body](#request-body) + are required. To call `FinalizeDefaultLocation`, a member must be an + Owner of the Project. + operationId: firebase.projects.defaultLocation.finalize requestBody: content: application/json: schema: - $ref: '#/components/schemas/UndeleteWebAppRequest' + $ref: '#/components/schemas/FinalizeDefaultLocationRequest' security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -2374,18 +3353,11 @@ paths: required: true schema: type: string - - in: path - name: webAppsId - required: true - schema: - type: string - x-stackQL-resource: web_apps - x-stackQL-verb: exec - /v1beta1/projects: + /v1beta1/projects/{projectsId}/webApps/{webAppsId}: parameters: *ref_1 get: - description: Lists each FirebaseProject accessible to the caller. The elements are returned in no particular order, but they will be a consistent view of the Projects when additional requests are made with a `pageToken`. This method is eventually consistent with Project mutations, which means newly provisioned Projects and recent modifications to existing Projects might not be reflected in the set of Projects. The list will include only ACTIVE Projects. Use GetFirebaseProject for consistent reads as well as for additional Project details. - operationId: firebase.projects.list + description: Gets the specified WebApp. + operationId: firebase.projects.webApps.get security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -2409,32 +3381,26 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ListFirebaseProjectsResponse' + $ref: '#/components/schemas/WebApp' parameters: - - in: query - name: showDeleted - schema: - type: boolean - - in: query - name: pageSize + - in: path + name: projectsId + required: true schema: - type: integer - - in: query - name: pageToken + type: string + - in: path + name: webAppsId + required: true schema: type: string - x-stackQL-resource: projects - x-stackQL-verb: select - /v1beta1/projects/{projectsId}: - parameters: *ref_1 patch: - description: Updates the attributes of the specified FirebaseProject. All [query parameters](#query-parameters) are required. - operationId: firebase.projects.patch + description: Updates the attributes of the specified WebApp. + operationId: firebase.projects.webApps.patch requestBody: content: application/json: schema: - $ref: '#/components/schemas/FirebaseProject' + $ref: '#/components/schemas/WebApp' security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -2450,59 +3416,31 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/FirebaseProject' + $ref: '#/components/schemas/WebApp' parameters: - in: path name: projectsId required: true schema: type: string - - in: query - name: updateMask - schema: - type: string - x-stackQL-resource: projects - x-stackQL-verb: exec - get: - description: Gets the specified FirebaseProject. - operationId: firebase.projects.get - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform.read-only - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform.read-only - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - - Oauth2: - - https://www.googleapis.com/auth/firebase.readonly - Oauth2c: - - https://www.googleapis.com/auth/firebase.readonly - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/FirebaseProject' - parameters: - in: path - name: projectsId + name: webAppsId required: true schema: type: string - x-stackQL-resource: projects - x-stackQL-verb: select - /v1beta1/projects/{projectsId}:searchApps: + - in: query + name: updateMask + schema: + type: string + format: google-fieldmask + /v1beta1/projects/{projectsId}/webApps: parameters: *ref_1 get: - description: Lists all available Apps for the specified FirebaseProject. This is a convenience method. Typically, interaction with an App should be done using the platform-specific service, but some tool use-cases require a summary of all known Apps (such as for App selector interfaces). - operationId: firebase.projects.searchApps + description: >- + Lists each WebApp associated with the specified FirebaseProject. The + elements are returned in no particular order, but will be a consistent + view of the Apps when additional requests are made with a `pageToken`. + operationId: firebase.projects.webApps.list security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -2526,17 +3464,13 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/SearchFirebaseAppsResponse' + $ref: '#/components/schemas/ListWebAppsResponse' parameters: - in: path name: projectsId required: true schema: type: string - - in: query - name: filter - schema: - type: string - in: query name: pageToken schema: @@ -2545,22 +3479,23 @@ paths: name: pageSize schema: type: integer + format: int32 - in: query name: showDeleted schema: type: boolean - x-stackQL-resource: projects - x-stackQL-verb: exec - /v1beta1/projects/{projectsId}:addGoogleAnalytics: - parameters: *ref_1 post: - description: 'Links the specified FirebaseProject with an existing [Google Analytics account](http://www.google.com/analytics/). Using this call, you can either: - Specify an `analyticsAccountId` to provision a new Google Analytics property within the specified account and associate the new property with the `FirebaseProject`. - Specify an existing `analyticsPropertyId` to associate the property with the `FirebaseProject`. Note that when you call `AddGoogleAnalytics`: 1. The first check determines if any existing data streams in the Google Analytics property correspond to any existing Firebase Apps in the `FirebaseProject` (based on the `packageName` or `bundleId` associated with the data stream). Then, as applicable, the data streams and apps are linked. Note that this auto-linking only applies to `AndroidApps` and `IosApps`. 2. If no corresponding data streams are found for the Firebase Apps, new data streams are provisioned in the Google Analytics property for each of the Firebase Apps. Note that a new data stream is always provisioned for a Web App even if it was previously associated with a data stream in the Analytics property. Learn more about the hierarchy and structure of Google Analytics accounts in the [Analytics documentation](https://support.google.com/analytics/answer/9303323). The result of this call is an [`Operation`](../../v1beta1/operations). Poll the `Operation` to track the provisioning process by calling GetOperation until [`done`](../../v1beta1/operations#Operation.FIELDS.done) is `true`. When `done` is `true`, the `Operation` has either succeeded or failed. If the `Operation` succeeded, its [`response`](../../v1beta1/operations#Operation.FIELDS.response) is set to an AnalyticsDetails; if the `Operation` failed, its [`error`](../../v1beta1/operations#Operation.FIELDS.error) is set to a google.rpc.Status. To call `AddGoogleAnalytics`, a project member must be an Owner for the existing `FirebaseProject` and have the [`Edit` permission](https://support.google.com/analytics/answer/2884495) for the Google Analytics account. If the `FirebaseProject` already has Google Analytics enabled, and you call `AddGoogleAnalytics` using an `analyticsPropertyId` that''s different from the currently associated property, then the call will fail. Analytics may have already been enabled in the Firebase console or by specifying `timeZone` and `regionCode` in the call to [`AddFirebase`](../../v1beta1/projects/addFirebase).' - operationId: firebase.projects.addGoogleAnalytics + description: >- + Requests the creation of a new WebApp in the specified FirebaseProject. + The result of this call is an `Operation` which can be used to track the + provisioning process. The `Operation` is automatically deleted after + completion, so there is no need to call `DeleteOperation`. + operationId: firebase.projects.webApps.create requestBody: content: application/json: schema: - $ref: '#/components/schemas/AddGoogleAnalyticsRequest' + $ref: '#/components/schemas/WebApp' security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -2583,147 +3518,164 @@ paths: required: true schema: type: string - x-stackQL-resource: projects__google_analytics - x-stackQL-verb: insert - /v1beta1/projects/{projectsId}/analyticsDetails: + /v1beta1/projects/{projectsId}/webApps/{webAppsId}:remove: parameters: *ref_1 - get: - description: Gets the Google Analytics details currently associated with the specified FirebaseProject. If the `FirebaseProject` is not yet linked to Google Analytics, then the response to `GetAnalyticsDetails` is `NOT_FOUND`. - operationId: firebase.projects.getAnalyticsDetails + post: + description: Removes the specified WebApp from the FirebaseProject. + operationId: firebase.projects.webApps.remove + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RemoveWebAppRequest' security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform Oauth2c: - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform.read-only - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform.read-only - Oauth2: - https://www.googleapis.com/auth/firebase Oauth2c: - https://www.googleapis.com/auth/firebase - - Oauth2: - - https://www.googleapis.com/auth/firebase.readonly - Oauth2c: - - https://www.googleapis.com/auth/firebase.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/AnalyticsDetails' + $ref: '#/components/schemas/Operation' parameters: - in: path name: projectsId required: true schema: type: string - x-stackQL-resource: projects__analytics_details - x-stackQL-verb: select - /v1beta1/projects/{projectsId}/adminSdkConfig: + - in: path + name: webAppsId + required: true + schema: + type: string + /v1beta1/projects/{projectsId}/webApps/{webAppsId}:undelete: parameters: *ref_1 - get: - description: Gets the configuration artifact associated with the specified FirebaseProject, which can be used by servers to simplify initialization. Typically, this configuration is used with the Firebase Admin SDK [initializeApp](https://firebase.google.com/docs/admin/setup#initialize_the_sdk) command. - operationId: firebase.projects.getAdminSdkConfig + post: + description: Restores the specified WebApp to the FirebaseProject. + operationId: firebase.projects.webApps.undelete + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UndeleteWebAppRequest' security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform Oauth2c: - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform.read-only - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform.read-only - Oauth2: - https://www.googleapis.com/auth/firebase Oauth2c: - https://www.googleapis.com/auth/firebase - - Oauth2: - - https://www.googleapis.com/auth/firebase.readonly - Oauth2c: - - https://www.googleapis.com/auth/firebase.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/AdminSdkConfig' + $ref: '#/components/schemas/Operation' parameters: - in: path name: projectsId required: true schema: type: string - x-stackQL-resource: projects__admin_sdk_config - x-stackQL-verb: select - /v1beta1/projects/{projectsId}:removeAnalytics: + - in: path + name: webAppsId + required: true + schema: + type: string + /v1beta1/projects/{projectsId}/webApps/{webAppsId}/config: parameters: *ref_1 - post: - description: Unlinks the specified FirebaseProject from its Google Analytics account. This call removes the association of the specified `FirebaseProject` with its current Google Analytics property. However, this call does not delete the Google Analytics resources, such as the Google Analytics property or any data streams. These resources may be re-associated later to the `FirebaseProject` by calling [`AddGoogleAnalytics`](../../v1beta1/projects/addGoogleAnalytics) and specifying the same `analyticsPropertyId`. For Android Apps and iOS Apps, this call re-links data streams with their corresponding apps. However, for Web Apps, this call provisions a *new* data stream for each Web App. To call `RemoveAnalytics`, a project member must be an Owner for the `FirebaseProject`. - operationId: firebase.projects.removeAnalytics - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RemoveAnalyticsRequest' + get: + description: Gets the configuration artifact associated with the specified WebApp. + operationId: firebase.projects.webApps.getConfig security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform Oauth2c: - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform.read-only + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform.read-only - Oauth2: - https://www.googleapis.com/auth/firebase Oauth2c: - https://www.googleapis.com/auth/firebase + - Oauth2: + - https://www.googleapis.com/auth/firebase.readonly + Oauth2c: + - https://www.googleapis.com/auth/firebase.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Empty' + $ref: '#/components/schemas/WebAppConfig' parameters: - in: path name: projectsId required: true schema: type: string - x-stackQL-resource: projects__analytics - x-stackQL-verb: delete - /v1beta1/projects/{projectsId}:addFirebase: + - in: path + name: webAppsId + required: true + schema: + type: string + /v1beta1/availableProjects: parameters: *ref_1 - post: - description: 'Adds Firebase resources to the specified existing [Google Cloud Platform (GCP) `Project`] (https://cloud.google.com/resource-manager/reference/rest/v1/projects). Since a FirebaseProject is actually also a GCP `Project`, a `FirebaseProject` has the same underlying GCP identifiers (`projectNumber` and `projectId`). This allows for easy interop with Google APIs. The result of this call is an [`Operation`](../../v1beta1/operations). Poll the `Operation` to track the provisioning process by calling GetOperation until [`done`](../../v1beta1/operations#Operation.FIELDS.done) is `true`. When `done` is `true`, the `Operation` has either succeeded or failed. If the `Operation` succeeded, its [`response`](../../v1beta1/operations#Operation.FIELDS.response) is set to a FirebaseProject; if the `Operation` failed, its [`error`](../../v1beta1/operations#Operation.FIELDS.error) is set to a google.rpc.Status. The `Operation` is automatically deleted after completion, so there is no need to call DeleteOperation. This method does not modify any billing account information on the underlying GCP `Project`. To call `AddFirebase`, a project member or service account must have the following permissions (the IAM roles of Editor and Owner contain these permissions): `firebase.projects.update`, `resourcemanager.projects.get`, `serviceusage.services.enable`, and `serviceusage.services.get`.' - operationId: firebase.projects.addFirebase - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/AddFirebaseRequest' + get: + description: >- + Lists each [Google Cloud + `Project`](https://cloud.google.com/resource-manager/reference/rest/v1/projects) + that can have Firebase resources added and Firebase services enabled. A + Project will only be listed if: - The caller has sufficient [Google + IAM](https://cloud.google.com/iam) permissions to call AddFirebase. - + The Project is not already a FirebaseProject. - The Project is not in an + Organization which has policies that prevent Firebase resources from + being added. + operationId: firebase.availableProjects.list security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform Oauth2c: - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform.read-only + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform.read-only - Oauth2: - https://www.googleapis.com/auth/firebase Oauth2c: - https://www.googleapis.com/auth/firebase + - Oauth2: + - https://www.googleapis.com/auth/firebase.readonly + Oauth2c: + - https://www.googleapis.com/auth/firebase.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Operation' + $ref: '#/components/schemas/ListAvailableProjectsResponse' parameters: - - in: path - name: projectsId - required: true + - in: query + name: pageToken schema: type: string - x-stackQL-resource: projects__firebase - x-stackQL-verb: insert + - in: query + name: pageSize + schema: + type: integer + format: int32 diff --git a/providers/src/firebase/v00.00.00000/services/firebaseappcheck.yaml b/providers/src/firebase/v00.00.00000/services/firebaseappcheck.yaml deleted file mode 100644 index c02ec0cd..00000000 --- a/providers/src/firebase/v00.00.00000/services/firebaseappcheck.yaml +++ /dev/null @@ -1,2351 +0,0 @@ -openapi: 3.1.0 -info: - contact: - name: StackQL Studios - url: https://github.com/stackql/google-discovery-to-openapi - email: info@stackql.io - title: Firebase App Check API - description: Firebase App Check works alongside other Firebase services to help protect your backend resources from abuse, such as billing fraud or phishing. - version: v1 - x-discovery-doc-revision: '20221212' - x-generated-date: '2023-01-06' -externalDocs: - url: https://firebase.google.com/docs/app-check -servers: - - url: https://firebaseappcheck.googleapis.com -components: - schemas: - GoogleFirebaseAppcheckV1ExchangeRecaptchaV3TokenRequest: - id: GoogleFirebaseAppcheckV1ExchangeRecaptchaV3TokenRequest - type: object - properties: - recaptchaV3Token: - description: Required. The reCAPTCHA token as returned by the [reCAPTCHA v3 JavaScript API](https://developers.google.com/recaptcha/docs/v3). - type: string - description: Request message for the ExchangeRecaptchaV3Token method. - GoogleFirebaseAppcheckV1UpdateServiceRequest: - properties: - service: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1Service' - description: 'Required. The Service to update. The Service''s `name` field is used to identify the Service to be updated, in the format: ``` projects/{project_number}/services/{service_id} ``` Note that the `service_id` element must be a supported service ID. Currently, the following service IDs are supported: * `firebasestorage.googleapis.com` (Cloud Storage for Firebase) * `firebasedatabase.googleapis.com` (Firebase Realtime Database) * `firestore.googleapis.com` (Cloud Firestore)' - updateMask: - description: 'Required. A comma-separated list of names of fields in the Service to update. Example: `enforcement_mode`.' - type: string - format: google-fieldmask - type: object - id: GoogleFirebaseAppcheckV1UpdateServiceRequest - description: Request message for the UpdateService method as well as an individual update message for the BatchUpdateServices method. - GoogleFirebaseAppcheckV1BatchGetAppAttestConfigsResponse: - id: GoogleFirebaseAppcheckV1BatchGetAppAttestConfigsResponse - description: Response message for the BatchGetAppAttestConfigs method. - type: object - properties: - configs: - description: AppAttestConfigs retrieved. - items: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1AppAttestConfig' - type: array - GoogleFirebaseAppcheckV1BatchUpdateServicesResponse: - type: object - id: GoogleFirebaseAppcheckV1BatchUpdateServicesResponse - properties: - services: - type: array - description: Service objects after the updates have been applied. - items: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1Service' - description: Response message for the BatchUpdateServices method. - GoogleFirebaseAppcheckV1AppAttestConfig: - properties: - tokenTtl: - format: google-duration - description: Specifies the duration for which App Check tokens exchanged from App Attest artifacts will be valid. If unset, a default value of 1 hour is assumed. Must be between 30 minutes and 7 days, inclusive. - type: string - name: - type: string - description: 'Required. The relative resource name of the App Attest configuration object, in the format: ``` projects/{project_number}/apps/{app_id}/appAttestConfig ```' - id: GoogleFirebaseAppcheckV1AppAttestConfig - description: An app's App Attest configuration object. This configuration controls certain properties of the `AppCheckToken` returned by ExchangeAppAttestAttestation and ExchangeAppAttestAssertion, such as its ttl. Note that the Team ID registered with your app is used as part of the validation process. Please register it via the Firebase Console or programmatically via the [Firebase Management Service](https://firebase.google.com/docs/projects/api/reference/rest/v11/projects.iosApps/patch). - type: object - GoogleFirebaseAppcheckV1DeviceCheckConfig: - description: An app's DeviceCheck configuration object. This configuration is used by ExchangeDeviceCheckToken to validate device tokens issued to apps by DeviceCheck. It also controls certain properties of the returned `AppCheckToken`, such as its ttl. Note that the Team ID registered with your app is used as part of the validation process. Please register it via the Firebase Console or programmatically via the [Firebase Management Service](https://firebase.google.com/docs/projects/api/reference/rest/v11/projects.iosApps/patch). - type: object - id: GoogleFirebaseAppcheckV1DeviceCheckConfig - properties: - privateKeySet: - type: boolean - description: Output only. Whether the `private_key` field was previously set. Since we will never return the `private_key` field, this field is the only way to find out whether it was previously set. - readOnly: true - privateKey: - description: Required. Input only. The contents of the private key (`.p8`) file associated with the key specified by `key_id`. For security reasons, this field will never be populated in any response. - type: string - tokenTtl: - format: google-duration - description: Specifies the duration for which App Check tokens exchanged from DeviceCheck tokens will be valid. If unset, a default value of 1 hour is assumed. Must be between 30 minutes and 7 days, inclusive. - type: string - keyId: - description: Required. The key identifier of a private key enabled with DeviceCheck, created in your Apple Developer account. - type: string - name: - description: 'Required. The relative resource name of the DeviceCheck configuration object, in the format: ``` projects/{project_number}/apps/{app_id}/deviceCheckConfig ```' - type: string - GoogleFirebaseAppcheckV1ExchangeAppAttestAttestationRequest: - id: GoogleFirebaseAppcheckV1ExchangeAppAttestAttestationRequest - properties: - attestationStatement: - description: Required. The App Attest statement returned by the client-side App Attest API. This is a base64url encoded CBOR object in the JSON response. - type: string - format: byte - keyId: - format: byte - description: Required. The key ID generated by App Attest for the client app. - type: string - challenge: - format: byte - description: Required. A one-time challenge returned by an immediately prior call to GenerateAppAttestChallenge. - type: string - description: Request message for the ExchangeAppAttestAttestation method. - type: object - GoogleFirebaseAppcheckV1PublicJwk: - description: A JWK as specified by [section 4 of RFC 7517](https://tools.ietf.org/html/rfc7517#section-4) and [section 6.3.1 of RFC 7518](https://tools.ietf.org/html/rfc7518#section-6.3.1). - type: object - properties: - 'n': - description: See [section 6.3.1.1 of RFC 7518](https://tools.ietf.org/html/rfc7518#section-6.3.1.1). - type: string - kid: - type: string - description: See [section 4.5 of RFC 7517](https://tools.ietf.org/html/rfc7517#section-4.5). - alg: - description: See [section 4.4 of RFC 7517](https://tools.ietf.org/html/rfc7517#section-4.4). - type: string - e: - type: string - description: See [section 6.3.1.2 of RFC 7518](https://tools.ietf.org/html/rfc7518#section-6.3.1.2). - use: - type: string - description: See [section 4.2 of RFC 7517](https://tools.ietf.org/html/rfc7517#section-4.2). - kty: - description: See [section 4.1 of RFC 7517](https://tools.ietf.org/html/rfc7517#section-4.1). - type: string - id: GoogleFirebaseAppcheckV1PublicJwk - GoogleFirebaseAppcheckV1GeneratePlayIntegrityChallengeRequest: - description: Request message for the GeneratePlayIntegrityChallenge method. - id: GoogleFirebaseAppcheckV1GeneratePlayIntegrityChallengeRequest - properties: {} - type: object - GoogleFirebaseAppcheckV1PlayIntegrityConfig: - properties: - name: - type: string - description: 'Required. The relative resource name of the Play Integrity configuration object, in the format: ``` projects/{project_number}/apps/{app_id}/playIntegrityConfig ```' - tokenTtl: - type: string - description: Specifies the duration for which App Check tokens exchanged from Play Integrity tokens will be valid. If unset, a default value of 1 hour is assumed. Must be between 30 minutes and 7 days, inclusive. - format: google-duration - id: GoogleFirebaseAppcheckV1PlayIntegrityConfig - type: object - description: An app's Play Integrity configuration object. This configuration controls certain properties of the `AppCheckToken` returned by ExchangePlayIntegrityToken, such as its ttl. Note that your registered SHA-256 certificate fingerprints are used to validate tokens issued by the Play Integrity API; please register them via the Firebase Console or programmatically via the [Firebase Management Service](https://firebase.google.com/docs/projects/api/reference/rest/v1beta1/projects.androidApps.sha/create). - GoogleFirebaseAppcheckV1ListServicesResponse: - description: Response message for the ListServices method. - type: object - properties: - services: - items: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1Service' - type: array - description: The Services retrieved. - nextPageToken: - description: If the result list is too large to fit in a single response, then a token is returned. If the string is empty or omitted, then this response is the last page of results. This token can be used in a subsequent call to ListServices to find the next group of Services. Page tokens are short-lived and should not be persisted. - type: string - id: GoogleFirebaseAppcheckV1ListServicesResponse - GoogleFirebaseAppcheckV1PublicJwkSet: - type: object - properties: - keys: - type: array - items: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1PublicJwk' - description: The set of public keys. See [section 5.1 of RFC 7517](https://tools.ietf.org/html/rfc7517#section-5). - description: The currently active set of public keys that can be used to verify App Check tokens. This object is a JWK set as specified by [section 5 of RFC 7517](https://tools.ietf.org/html/rfc7517#section-5). For security, the response **must not** be cached for longer than six hours. - id: GoogleFirebaseAppcheckV1PublicJwkSet - GoogleFirebaseAppcheckV1BatchGetDeviceCheckConfigsResponse: - type: object - id: GoogleFirebaseAppcheckV1BatchGetDeviceCheckConfigsResponse - description: Response message for the BatchGetDeviceCheckConfigs method. - properties: - configs: - description: DeviceCheckConfigs retrieved. - type: array - items: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1DeviceCheckConfig' - GoogleFirebaseAppcheckV1DebugToken: - type: object - properties: - name: - type: string - description: 'Required. The relative resource name of the debug token, in the format: ``` projects/{project_number}/apps/{app_id}/debugTokens/{debug_token_id} ```' - token: - type: string - description: Required. Input only. Immutable. The secret token itself. Must be provided during creation, and must be a UUID4, case insensitive. This field is immutable once set, and cannot be provided during an UpdateDebugToken request. You can, however, delete this debug token using DeleteDebugToken to revoke it. For security reasons, this field will never be populated in any response. - displayName: - description: Required. A human readable display name used to identify this debug token. - type: string - id: GoogleFirebaseAppcheckV1DebugToken - description: A *debug token* is a secret used during the development or integration testing of an app. It essentially allows the development or integration testing to bypass app attestation while still allowing App Check to enforce protection on supported production Firebase services. - GoogleFirebaseAppcheckV1SafetyNetConfig: - properties: - tokenTtl: - description: Specifies the duration for which App Check tokens exchanged from SafetyNet tokens will be valid. If unset, a default value of 1 hour is assumed. Must be between 30 minutes and 7 days, inclusive. - format: google-duration - type: string - name: - type: string - description: 'Required. The relative resource name of the SafetyNet configuration object, in the format: ``` projects/{project_number}/apps/{app_id}/safetyNetConfig ```' - description: An app's SafetyNet configuration object. This configuration controls certain properties of the `AppCheckToken` returned by ExchangeSafetyNetToken, such as its ttl. Note that your registered SHA-256 certificate fingerprints are used to validate tokens issued by SafetyNet; please register them via the Firebase Console or programmatically via the [Firebase Management Service](https://firebase.google.com/docs/projects/api/reference/rest/v11/projects.androidApps.sha/create). - type: object - id: GoogleFirebaseAppcheckV1SafetyNetConfig - GoogleFirebaseAppcheckV1BatchGetSafetyNetConfigsResponse: - id: GoogleFirebaseAppcheckV1BatchGetSafetyNetConfigsResponse - description: Response message for the BatchGetSafetyNetConfigs method. - type: object - properties: - configs: - type: array - description: SafetyNetConfigs retrieved. - items: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1SafetyNetConfig' - GoogleFirebaseAppcheckV1ExchangeAppAttestAttestationResponse: - type: object - properties: - appCheckToken: - description: Encapsulates an App Check token. - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1AppCheckToken' - artifact: - format: byte - description: An artifact that can be used in future calls to ExchangeAppAttestAssertion. - type: string - id: GoogleFirebaseAppcheckV1ExchangeAppAttestAttestationResponse - description: Response message for the ExchangeAppAttestAttestation method. - GoogleFirebaseAppcheckV1ExchangeRecaptchaEnterpriseTokenRequest: - properties: - recaptchaEnterpriseToken: - description: Required. The reCAPTCHA token as returned by the [reCAPTCHA Enterprise JavaScript API](https://cloud.google.com/recaptcha-enterprise/docs/instrument-web-pages). - type: string - type: object - description: Request message for the ExchangeRecaptchaEnterpriseToken method. - id: GoogleFirebaseAppcheckV1ExchangeRecaptchaEnterpriseTokenRequest - GoogleProtobufEmpty: - description: 'A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }' - id: GoogleProtobufEmpty - type: object - properties: {} - GoogleFirebaseAppcheckV1RecaptchaEnterpriseConfig: - properties: - tokenTtl: - format: google-duration - description: Specifies the duration for which App Check tokens exchanged from reCAPTCHA Enterprise tokens will be valid. If unset, a default value of 1 hour is assumed. Must be between 30 minutes and 7 days, inclusive. - type: string - name: - type: string - description: 'Required. The relative resource name of the reCAPTCHA Enterprise configuration object, in the format: ``` projects/{project_number}/apps/{app_id}/recaptchaEnterpriseConfig ```' - siteKey: - description: 'The score-based site key [created in reCAPTCHA Enterprise](https://cloud.google.com/recaptcha-enterprise/docs/create-key#creating_a_site_key) used to [invoke reCAPTCHA and generate the reCAPTCHA tokens](https://cloud.google.com/recaptcha-enterprise/docs/instrument-web-pages) for your application. Important: This is *not* the `site_secret` (as it is in reCAPTCHA v3), but rather your score-based reCAPTCHA Enterprise site key.' - type: string - id: GoogleFirebaseAppcheckV1RecaptchaEnterpriseConfig - description: An app's reCAPTCHA Enterprise configuration object. This configuration is used by ExchangeRecaptchaEnterpriseToken to validate reCAPTCHA tokens issued to apps by reCAPTCHA Enterprise. It also controls certain properties of the returned `AppCheckToken`, such as its ttl. - type: object - GoogleFirebaseAppcheckV1GeneratePlayIntegrityChallengeResponse: - id: GoogleFirebaseAppcheckV1GeneratePlayIntegrityChallengeResponse - type: object - description: Response message for the GeneratePlayIntegrityChallenge method. - properties: - challenge: - description: A one-time use [challenge](https://developer.android.com/google/play/integrity/verdict#protect-against-replay-attacks) for the client to pass to the Play Integrity API. - type: string - ttl: - format: google-duration - description: The duration from the time this challenge is minted until its expiration. This field is intended to ease client-side token management, since the client may have clock skew, but is still able to accurately measure a duration. - type: string - GoogleFirebaseAppcheckV1Service: - properties: - enforcementMode: - description: Required. The App Check enforcement mode for this service. - enumDescriptions: - - Firebase App Check is not enforced for the service, nor are App Check metrics collected. Though the service is not protected by App Check in this mode, other applicable protections, such as user authorization, are still enforced. An unconfigured service is in this mode by default. - - Firebase App Check is not enforced for the service. App Check metrics are collected to help you decide when to turn on enforcement for the service. Though the service is not protected by App Check in this mode, other applicable protections, such as user authorization, are still enforced. - - Firebase App Check is enforced for the service. The service will reject any request that attempts to access your project's resources if it does not have valid App Check token attached, with some exceptions depending on the service; for example, some services will still allow requests bearing the developer's privileged service account credentials without an App Check token. App Check metrics continue to be collected to help you detect issues with your App Check integration and monitor the composition of your callers. While the service is protected by App Check, other applicable protections, such as user authorization, continue to be enforced at the same time. Use caution when choosing to enforce App Check on a Firebase service. If your users have not updated to an App Check capable version of your app, their apps will no longer be able to use your Firebase services that are enforcing App Check. App Check metrics can help you decide whether to enforce App Check on your Firebase services. If your app has not launched yet, you should enable enforcement immediately, since there are no outdated clients in use. - type: string - enum: - - 'OFF' - - UNENFORCED - - ENFORCED - name: - description: 'Required. The relative resource name of the service configuration object, in the format: ``` projects/{project_number}/services/{service_id} ``` Note that the `service_id` element must be a supported service ID. Currently, the following service IDs are supported: * `firebasestorage.googleapis.com` (Cloud Storage for Firebase) * `firebasedatabase.googleapis.com` (Firebase Realtime Database) * `firestore.googleapis.com` (Cloud Firestore)' - type: string - type: object - description: The enforcement configuration for a Firebase service supported by App Check. - id: GoogleFirebaseAppcheckV1Service - GoogleFirebaseAppcheckV1ExchangeDeviceCheckTokenRequest: - type: object - properties: - deviceToken: - description: Required. The `device_token` as returned by Apple's client-side [DeviceCheck API](https://developer.apple.com/documentation/devicecheck/dcdevice). This is the base64 encoded `Data` (Swift) or `NSData` (ObjC) object. - type: string - id: GoogleFirebaseAppcheckV1ExchangeDeviceCheckTokenRequest - description: Request message for the ExchangeDeviceCheckToken method. - GoogleFirebaseAppcheckV1BatchUpdateServicesRequest: - description: Request message for the BatchUpdateServices method. - id: GoogleFirebaseAppcheckV1BatchUpdateServicesRequest - properties: - updateMask: - type: string - description: 'Optional. A comma-separated list of names of fields in the Services to update. Example: `display_name`. If the `update_mask` field is set in both this request and any of the UpdateServiceRequest messages, they must match or the entire batch fails and no updates will be committed.' - format: google-fieldmask - requests: - description: Required. The request messages specifying the Services to update. A maximum of 100 objects can be updated in a batch. - items: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1UpdateServiceRequest' - type: array - type: object - GoogleFirebaseAppcheckV1ExchangeSafetyNetTokenRequest: - description: Request message for the ExchangeSafetyNetToken method. - id: GoogleFirebaseAppcheckV1ExchangeSafetyNetTokenRequest - type: object - properties: - safetyNetToken: - type: string - description: Required. The [SafetyNet attestation response](https://developer.android.com/training/safetynet/attestation#request-attestation-step) issued to your app. - GoogleFirebaseAppcheckV1ExchangeAppAttestAssertionRequest: - description: Request message for the ExchangeAppAttestAssertion method. - type: object - id: GoogleFirebaseAppcheckV1ExchangeAppAttestAssertionRequest - properties: - artifact: - description: Required. The artifact returned by a previous call to ExchangeAppAttestAttestation. - format: byte - type: string - assertion: - description: Required. The CBOR-encoded assertion returned by the client-side App Attest API. - format: byte - type: string - challenge: - format: byte - type: string - description: Required. A one-time challenge returned by an immediately prior call to GenerateAppAttestChallenge. - GoogleFirebaseAppcheckV1RecaptchaV3Config: - properties: - name: - description: 'Required. The relative resource name of the reCAPTCHA v3 configuration object, in the format: ``` projects/{project_number}/apps/{app_id}/recaptchaV3Config ```' - type: string - siteSecretSet: - description: Output only. Whether the `site_secret` field was previously set. Since we will never return the `site_secret` field, this field is the only way to find out whether it was previously set. - type: boolean - readOnly: true - tokenTtl: - description: Specifies the duration for which App Check tokens exchanged from reCAPTCHA tokens will be valid. If unset, a default value of 1 day is assumed. Must be between 30 minutes and 7 days, inclusive. - format: google-duration - type: string - siteSecret: - type: string - description: Required. Input only. The site secret used to identify your service for reCAPTCHA v3 verification. For security reasons, this field will never be populated in any response. - description: An app's reCAPTCHA v3 configuration object. This configuration is used by ExchangeRecaptchaV3Token to validate reCAPTCHA tokens issued to apps by reCAPTCHA v3. It also controls certain properties of the returned `AppCheckToken`, such as its ttl. - id: GoogleFirebaseAppcheckV1RecaptchaV3Config - type: object - GoogleFirebaseAppcheckV1BatchGetRecaptchaV3ConfigsResponse: - description: Response message for the BatchGetRecaptchaV3Configs method. - id: GoogleFirebaseAppcheckV1BatchGetRecaptchaV3ConfigsResponse - properties: - configs: - type: array - description: RecaptchaV3Configs retrieved. - items: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1RecaptchaV3Config' - type: object - GoogleFirebaseAppcheckV1ListDebugTokensResponse: - id: GoogleFirebaseAppcheckV1ListDebugTokensResponse - properties: - debugTokens: - description: The DebugTokens retrieved. - items: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1DebugToken' - type: array - nextPageToken: - type: string - description: If the result list is too large to fit in a single response, then a token is returned. If the string is empty or omitted, then this response is the last page of results. This token can be used in a subsequent call to ListDebugTokens to find the next group of DebugTokens. Page tokens are short-lived and should not be persisted. - type: object - description: Response message for the ListDebugTokens method. - GoogleFirebaseAppcheckV1ExchangeCustomTokenRequest: - description: Request message for the ExchangeCustomToken method. - type: object - id: GoogleFirebaseAppcheckV1ExchangeCustomTokenRequest - properties: - customToken: - type: string - description: Required. A custom token signed using your project's Admin SDK service account credentials. - GoogleFirebaseAppcheckV1BatchGetRecaptchaEnterpriseConfigsResponse: - description: Response message for the BatchGetRecaptchaEnterpriseConfigs method. - properties: - configs: - type: array - items: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1RecaptchaEnterpriseConfig' - description: RecaptchaEnterpriseConfigs retrieved. - type: object - id: GoogleFirebaseAppcheckV1BatchGetRecaptchaEnterpriseConfigsResponse - GoogleFirebaseAppcheckV1GenerateAppAttestChallengeResponse: - type: object - id: GoogleFirebaseAppcheckV1GenerateAppAttestChallengeResponse - description: Response message for the GenerateAppAttestChallenge method. - properties: - challenge: - format: byte - type: string - description: A one-time use challenge for the client to pass to the App Attest API. - ttl: - description: The duration from the time this challenge is minted until its expiration. This field is intended to ease client-side token management, since the client may have clock skew, but is still able to accurately measure a duration. - format: google-duration - type: string - GoogleFirebaseAppcheckV1ExchangeDebugTokenRequest: - properties: - debugToken: - type: string - description: Required. A debug token secret. This string must match a debug token secret previously created using CreateDebugToken. - description: Request message for the ExchangeDebugToken method. - id: GoogleFirebaseAppcheckV1ExchangeDebugTokenRequest - type: object - GoogleFirebaseAppcheckV1ExchangePlayIntegrityTokenRequest: - properties: - playIntegrityToken: - type: string - description: Required. The [integrity verdict response token from Play Integrity](https://developer.android.com/google/play/integrity/verdict#decrypt-verify) issued to your app. - type: object - id: GoogleFirebaseAppcheckV1ExchangePlayIntegrityTokenRequest - description: Request message for the ExchangePlayIntegrityToken method. - GoogleFirebaseAppcheckV1GenerateAppAttestChallengeRequest: - type: object - description: Request message for the GenerateAppAttestChallenge method. - id: GoogleFirebaseAppcheckV1GenerateAppAttestChallengeRequest - properties: {} - GoogleFirebaseAppcheckV1AppCheckToken: - type: object - description: Encapsulates an *App Check token*, which are used to access Firebase services protected by App Check. - id: GoogleFirebaseAppcheckV1AppCheckToken - properties: - ttl: - description: The duration from the time this token is minted until its expiration. This field is intended to ease client-side token management, since the client may have clock skew, but is still able to accurately measure a duration. - format: google-duration - type: string - token: - type: string - description: The App Check token. App Check tokens are signed [JWTs](https://tools.ietf.org/html/rfc7519) containing claims that identify the attested app and Firebase project. This token is used to access Firebase services protected by App Check. These tokens can also be [verified by your own custom backends](https://firebase.google.com/docs/app-check/custom-resource-backend) using the Firebase Admin SDK. - GoogleFirebaseAppcheckV1BatchGetPlayIntegrityConfigsResponse: - type: object - description: Response message for the BatchGetPlayIntegrityConfigs method. - id: GoogleFirebaseAppcheckV1BatchGetPlayIntegrityConfigsResponse - properties: - configs: - description: PlayIntegrityConfigs retrieved. - items: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1PlayIntegrityConfig' - type: array - parameters: - alt: - description: Data format for response. - in: query - name: alt - schema: - type: string - enum: - - json - - media - - proto - prettyPrint: - description: Returns response with indentations and line breaks. - in: query - name: prettyPrint - schema: - type: boolean - callback: - description: JSONP - in: query - name: callback - schema: - type: string - _.xgafv: - description: V1 error format. - in: query - name: _.xgafv - schema: - type: string - enum: - - '1' - - '2' - uploadType: - description: Legacy upload protocol for media (e.g. "media", "multipart"). - in: query - name: uploadType - schema: - type: string - key: - description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token. - in: query - name: key - schema: - type: string - upload_protocol: - description: Upload protocol for media (e.g. "raw", "multipart"). - in: query - name: upload_protocol - schema: - type: string - quotaUser: - description: Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. - in: query - name: quotaUser - schema: - type: string - fields: - description: Selector specifying which fields to include in a partial response. - in: query - name: fields - schema: - type: string - access_token: - description: OAuth access token. - in: query - name: access_token - schema: - type: string - oauth_token: - description: OAuth 2.0 token for the current user. - in: query - name: oauth_token - schema: - type: string - securitySchemes: - Oauth2: - type: oauth2 - description: Oauth 2.0 implicit authentication - flows: - implicit: - authorizationUrl: https://accounts.google.com/o/oauth2/auth - scopes: &ref_0 - https://www.googleapis.com/auth/firebase: View and administer all your Firebase data and settings - https://www.googleapis.com/auth/cloud-platform: See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account. - Oauth2c: - type: oauth2 - description: Oauth 2.0 authorization code authentication - flows: - authorizationCode: - authorizationUrl: https://accounts.google.com/o/oauth2/auth - tokenUrl: https://accounts.google.com/o/oauth2/token - scopes: *ref_0 - x-stackQL-resources: - app_attest_config: - id: firebase.firebaseappcheck.app_attest_config - name: app_attest_config - title: App_attest_config - methods: - projects_apps_appAttestConfig_batchGet: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1-~1appAttestConfig:batchGet/get' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_apps_appAttestConfig_patch: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1appAttestConfig/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_apps_appAttestConfig_get: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1appAttestConfig/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/app_attest_config/methods/projects_apps_appAttestConfig_get' - insert: [] - update: [] - delete: [] - safety_net_config: - id: firebase.firebaseappcheck.safety_net_config - name: safety_net_config - title: Safety_net_config - methods: - projects_apps_safetyNetConfig_batchGet: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1-~1safetyNetConfig:batchGet/get' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_apps_safetyNetConfig_get: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1safetyNetConfig/get' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_apps_safetyNetConfig_patch: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1safetyNetConfig/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/safety_net_config/methods/projects_apps_safetyNetConfig_get' - insert: [] - update: [] - delete: [] - debug_tokens: - id: firebase.firebaseappcheck.debug_tokens - name: debug_tokens - title: Debug_tokens - methods: - projects_apps_debugTokens_get: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1debugTokens~1{debugTokensId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_apps_debugTokens_patch: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1debugTokens~1{debugTokensId}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_apps_debugTokens_delete: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1debugTokens~1{debugTokensId}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_apps_debugTokens_list: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1debugTokens/get' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_apps_debugTokens_create: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1debugTokens/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/debug_tokens/methods/projects_apps_debugTokens_get' - - $ref: '#/components/x-stackQL-resources/debug_tokens/methods/projects_apps_debugTokens_list' - insert: - - $ref: '#/components/x-stackQL-resources/debug_tokens/methods/projects_apps_debugTokens_create' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/debug_tokens/methods/projects_apps_debugTokens_delete' - recaptcha_v3_config: - id: firebase.firebaseappcheck.recaptcha_v3_config - name: recaptcha_v3_config - title: Recaptcha_v3_config - methods: - projects_apps_recaptchaV3Config_get: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1recaptchaV3Config/get' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_apps_recaptchaV3Config_patch: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1recaptchaV3Config/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_apps_recaptchaV3Config_batchGet: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1-~1recaptchaV3Config:batchGet/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/recaptcha_v3_config/methods/projects_apps_recaptchaV3Config_get' - insert: [] - update: [] - delete: [] - device_check_config: - id: firebase.firebaseappcheck.device_check_config - name: device_check_config - title: Device_check_config - methods: - projects_apps_deviceCheckConfig_patch: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1deviceCheckConfig/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_apps_deviceCheckConfig_get: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1deviceCheckConfig/get' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_apps_deviceCheckConfig_batchGet: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1-~1deviceCheckConfig:batchGet/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/device_check_config/methods/projects_apps_deviceCheckConfig_get' - insert: [] - update: [] - delete: [] - recaptcha_enterprise_config: - id: firebase.firebaseappcheck.recaptcha_enterprise_config - name: recaptcha_enterprise_config - title: Recaptcha_enterprise_config - methods: - projects_apps_recaptchaEnterpriseConfig_get: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1recaptchaEnterpriseConfig/get' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_apps_recaptchaEnterpriseConfig_patch: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1recaptchaEnterpriseConfig/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_apps_recaptchaEnterpriseConfig_batchGet: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1-~1recaptchaEnterpriseConfig:batchGet/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/recaptcha_enterprise_config/methods/projects_apps_recaptchaEnterpriseConfig_get' - insert: [] - update: [] - delete: [] - play_integrity_config: - id: firebase.firebaseappcheck.play_integrity_config - name: play_integrity_config - title: Play_integrity_config - methods: - projects_apps_playIntegrityConfig_batchGet: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1-~1playIntegrityConfig:batchGet/get' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_apps_playIntegrityConfig_get: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1playIntegrityConfig/get' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_apps_playIntegrityConfig_patch: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}~1playIntegrityConfig/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/play_integrity_config/methods/projects_apps_playIntegrityConfig_get' - insert: [] - update: [] - delete: [] - apps: - id: firebase.firebaseappcheck.apps - name: apps - title: Apps - methods: - projects_apps_generateAppAttestChallenge: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}:generateAppAttestChallenge/post' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_apps_exchangeCustomToken: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}:exchangeCustomToken/post' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_apps_exchangeRecaptchaEnterpriseToken: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}:exchangeRecaptchaEnterpriseToken/post' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_apps_exchangePlayIntegrityToken: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}:exchangePlayIntegrityToken/post' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_apps_exchangeAppAttestAttestation: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}:exchangeAppAttestAttestation/post' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_apps_exchangeRecaptchaV3Token: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}:exchangeRecaptchaV3Token/post' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_apps_exchangeSafetyNetToken: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}:exchangeSafetyNetToken/post' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_apps_exchangeAppAttestAssertion: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}:exchangeAppAttestAssertion/post' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_apps_exchangeDebugToken: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}:exchangeDebugToken/post' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_apps_generatePlayIntegrityChallenge: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}:generatePlayIntegrityChallenge/post' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_apps_exchangeDeviceCheckToken: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1apps~1{appsId}:exchangeDeviceCheckToken/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - services: - id: firebase.firebaseappcheck.services - name: services - title: Services - methods: - projects_services_list: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1services/get' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_services_patch: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1services~1{servicesId}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_services_get: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1services~1{servicesId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_services_batchUpdate: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1services:batchUpdate/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/services/methods/projects_services_get' - - $ref: '#/components/x-stackQL-resources/services/methods/projects_services_list' - insert: [] - update: [] - delete: [] - jwks: - id: firebase.firebaseappcheck.jwks - name: jwks - title: Jwks - methods: - get: - operation: - $ref: '#/paths/~1v1~1jwks/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/jwks/methods/get' - insert: [] - update: [] - delete: [] -paths: - /v1/projects/{projectsId}/apps/-/appAttestConfig:batchGet: - parameters: &ref_1 - - $ref: '#/components/parameters/alt' - - $ref: '#/components/parameters/prettyPrint' - - $ref: '#/components/parameters/callback' - - $ref: '#/components/parameters/_.xgafv' - - $ref: '#/components/parameters/uploadType' - - $ref: '#/components/parameters/key' - - $ref: '#/components/parameters/upload_protocol' - - $ref: '#/components/parameters/quotaUser' - - $ref: '#/components/parameters/fields' - - $ref: '#/components/parameters/access_token' - - $ref: '#/components/parameters/oauth_token' - get: - description: Atomically gets the AppAttestConfigs for the specified list of apps. - operationId: firebaseappcheck.projects.apps.appAttestConfig.batchGet - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1BatchGetAppAttestConfigsResponse' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: query - name: names - schema: - type: string - x-stackQL-resource: app_attest_config - x-stackQL-verb: select - /v1/projects/{projectsId}/apps/{appsId}/appAttestConfig: - parameters: *ref_1 - patch: - description: Updates the AppAttestConfig for the specified app. While this configuration is incomplete or invalid, the app will be unable to exchange AppAttest tokens for App Check tokens. - operationId: firebaseappcheck.projects.apps.appAttestConfig.patch - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1AppAttestConfig' - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1AppAttestConfig' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: path - name: appsId - required: true - schema: - type: string - - in: query - name: updateMask - schema: - type: string - x-stackQL-resource: app_attest_config - x-stackQL-verb: exec - get: - description: Gets the AppAttestConfig for the specified app. - operationId: firebaseappcheck.projects.apps.appAttestConfig.get - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1AppAttestConfig' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: path - name: appsId - required: true - schema: - type: string - x-stackQL-resource: app_attest_config - x-stackQL-verb: select - /v1/projects/{projectsId}/apps/-/safetyNetConfig:batchGet: - parameters: *ref_1 - get: - description: Atomically gets the SafetyNetConfigs for the specified list of apps. - operationId: firebaseappcheck.projects.apps.safetyNetConfig.batchGet - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1BatchGetSafetyNetConfigsResponse' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: query - name: names - schema: - type: string - x-stackQL-resource: safety_net_config - x-stackQL-verb: select - /v1/projects/{projectsId}/apps/{appsId}/safetyNetConfig: - parameters: *ref_1 - get: - description: Gets the SafetyNetConfig for the specified app. - operationId: firebaseappcheck.projects.apps.safetyNetConfig.get - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1SafetyNetConfig' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: path - name: appsId - required: true - schema: - type: string - x-stackQL-resource: safety_net_config - x-stackQL-verb: select - patch: - description: Updates the SafetyNetConfig for the specified app. While this configuration is incomplete or invalid, the app will be unable to exchange SafetyNet tokens for App Check tokens. - operationId: firebaseappcheck.projects.apps.safetyNetConfig.patch - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1SafetyNetConfig' - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1SafetyNetConfig' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: path - name: appsId - required: true - schema: - type: string - - in: query - name: updateMask - schema: - type: string - x-stackQL-resource: safety_net_config - x-stackQL-verb: exec - /v1/projects/{projectsId}/apps/{appsId}/debugTokens/{debugTokensId}: - parameters: *ref_1 - get: - description: Gets the specified DebugToken. For security reasons, the `token` field is never populated in the response. - operationId: firebaseappcheck.projects.apps.debugTokens.get - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1DebugToken' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: path - name: appsId - required: true - schema: - type: string - - in: path - name: debugTokensId - required: true - schema: - type: string - x-stackQL-resource: debug_tokens - x-stackQL-verb: select - patch: - description: Updates the specified DebugToken. For security reasons, the `token` field cannot be updated, nor will it be populated in the response, but you can revoke the debug token using DeleteDebugToken. - operationId: firebaseappcheck.projects.apps.debugTokens.patch - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1DebugToken' - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1DebugToken' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: path - name: appsId - required: true - schema: - type: string - - in: path - name: debugTokensId - required: true - schema: - type: string - - in: query - name: updateMask - schema: - type: string - x-stackQL-resource: debug_tokens - x-stackQL-verb: exec - delete: - description: Deletes the specified DebugToken. A deleted debug token cannot be used to exchange for an App Check token. Use this method when you suspect the secret `token` has been compromised or when you no longer need the debug token. - operationId: firebaseappcheck.projects.apps.debugTokens.delete - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleProtobufEmpty' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: path - name: appsId - required: true - schema: - type: string - - in: path - name: debugTokensId - required: true - schema: - type: string - x-stackQL-resource: debug_tokens - x-stackQL-verb: delete - /v1/projects/{projectsId}/apps/{appsId}/debugTokens: - parameters: *ref_1 - get: - description: Lists all DebugTokens for the specified app. For security reasons, the `token` field is never populated in the response. - operationId: firebaseappcheck.projects.apps.debugTokens.list - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1ListDebugTokensResponse' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: path - name: appsId - required: true - schema: - type: string - - in: query - name: pageSize - schema: - type: integer - - in: query - name: pageToken - schema: - type: string - x-stackQL-resource: debug_tokens - x-stackQL-verb: select - post: - description: Creates a new DebugToken for the specified app. For security reasons, after the creation operation completes, the `token` field cannot be updated or retrieved, but you can revoke the debug token using DeleteDebugToken. Each app can have a maximum of 20 debug tokens. - operationId: firebaseappcheck.projects.apps.debugTokens.create - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1DebugToken' - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1DebugToken' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: path - name: appsId - required: true - schema: - type: string - x-stackQL-resource: debug_tokens - x-stackQL-verb: insert - /v1/projects/{projectsId}/apps/{appsId}/recaptchaV3Config: - parameters: *ref_1 - get: - description: Gets the RecaptchaV3Config for the specified app. For security reasons, the `site_secret` field is never populated in the response. - operationId: firebaseappcheck.projects.apps.recaptchaV3Config.get - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1RecaptchaV3Config' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: path - name: appsId - required: true - schema: - type: string - x-stackQL-resource: recaptcha_v3_config - x-stackQL-verb: select - patch: - description: Updates the RecaptchaV3Config for the specified app. While this configuration is incomplete or invalid, the app will be unable to exchange reCAPTCHA tokens for App Check tokens. For security reasons, the `site_secret` field is never populated in the response. - operationId: firebaseappcheck.projects.apps.recaptchaV3Config.patch - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1RecaptchaV3Config' - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1RecaptchaV3Config' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: path - name: appsId - required: true - schema: - type: string - - in: query - name: updateMask - schema: - type: string - x-stackQL-resource: recaptcha_v3_config - x-stackQL-verb: exec - /v1/projects/{projectsId}/apps/-/recaptchaV3Config:batchGet: - parameters: *ref_1 - get: - description: Atomically gets the RecaptchaV3Configs for the specified list of apps. For security reasons, the `site_secret` field is never populated in the response. - operationId: firebaseappcheck.projects.apps.recaptchaV3Config.batchGet - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1BatchGetRecaptchaV3ConfigsResponse' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: query - name: names - schema: - type: string - x-stackQL-resource: recaptcha_v3_config - x-stackQL-verb: select - /v1/projects/{projectsId}/apps/{appsId}/deviceCheckConfig: - parameters: *ref_1 - patch: - description: Updates the DeviceCheckConfig for the specified app. While this configuration is incomplete or invalid, the app will be unable to exchange DeviceCheck tokens for App Check tokens. For security reasons, the `private_key` field is never populated in the response. - operationId: firebaseappcheck.projects.apps.deviceCheckConfig.patch - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1DeviceCheckConfig' - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1DeviceCheckConfig' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: path - name: appsId - required: true - schema: - type: string - - in: query - name: updateMask - schema: - type: string - x-stackQL-resource: device_check_config - x-stackQL-verb: exec - get: - description: Gets the DeviceCheckConfig for the specified app. For security reasons, the `private_key` field is never populated in the response. - operationId: firebaseappcheck.projects.apps.deviceCheckConfig.get - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1DeviceCheckConfig' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: path - name: appsId - required: true - schema: - type: string - x-stackQL-resource: device_check_config - x-stackQL-verb: select - /v1/projects/{projectsId}/apps/-/deviceCheckConfig:batchGet: - parameters: *ref_1 - get: - description: Atomically gets the DeviceCheckConfigs for the specified list of apps. For security reasons, the `private_key` field is never populated in the response. - operationId: firebaseappcheck.projects.apps.deviceCheckConfig.batchGet - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1BatchGetDeviceCheckConfigsResponse' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: query - name: names - schema: - type: string - x-stackQL-resource: device_check_config - x-stackQL-verb: select - /v1/projects/{projectsId}/apps/{appsId}/recaptchaEnterpriseConfig: - parameters: *ref_1 - get: - description: Gets the RecaptchaEnterpriseConfig for the specified app. - operationId: firebaseappcheck.projects.apps.recaptchaEnterpriseConfig.get - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1RecaptchaEnterpriseConfig' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: path - name: appsId - required: true - schema: - type: string - x-stackQL-resource: recaptcha_enterprise_config - x-stackQL-verb: select - patch: - description: Updates the RecaptchaEnterpriseConfig for the specified app. While this configuration is incomplete or invalid, the app will be unable to exchange reCAPTCHA Enterprise tokens for App Check tokens. - operationId: firebaseappcheck.projects.apps.recaptchaEnterpriseConfig.patch - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1RecaptchaEnterpriseConfig' - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1RecaptchaEnterpriseConfig' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: path - name: appsId - required: true - schema: - type: string - - in: query - name: updateMask - schema: - type: string - x-stackQL-resource: recaptcha_enterprise_config - x-stackQL-verb: exec - /v1/projects/{projectsId}/apps/-/recaptchaEnterpriseConfig:batchGet: - parameters: *ref_1 - get: - description: Atomically gets the RecaptchaEnterpriseConfigs for the specified list of apps. - operationId: firebaseappcheck.projects.apps.recaptchaEnterpriseConfig.batchGet - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1BatchGetRecaptchaEnterpriseConfigsResponse' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: query - name: names - schema: - type: string - x-stackQL-resource: recaptcha_enterprise_config - x-stackQL-verb: select - /v1/projects/{projectsId}/apps/-/playIntegrityConfig:batchGet: - parameters: *ref_1 - get: - description: Atomically gets the PlayIntegrityConfigs for the specified list of apps. - operationId: firebaseappcheck.projects.apps.playIntegrityConfig.batchGet - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1BatchGetPlayIntegrityConfigsResponse' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: query - name: names - schema: - type: string - x-stackQL-resource: play_integrity_config - x-stackQL-verb: select - /v1/projects/{projectsId}/apps/{appsId}/playIntegrityConfig: - parameters: *ref_1 - get: - description: Gets the PlayIntegrityConfig for the specified app. - operationId: firebaseappcheck.projects.apps.playIntegrityConfig.get - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1PlayIntegrityConfig' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: path - name: appsId - required: true - schema: - type: string - x-stackQL-resource: play_integrity_config - x-stackQL-verb: select - patch: - description: Updates the PlayIntegrityConfig for the specified app. While this configuration is incomplete or invalid, the app will be unable to exchange Play Integrity tokens for App Check tokens. - operationId: firebaseappcheck.projects.apps.playIntegrityConfig.patch - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1PlayIntegrityConfig' - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1PlayIntegrityConfig' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: path - name: appsId - required: true - schema: - type: string - - in: query - name: updateMask - schema: - type: string - x-stackQL-resource: play_integrity_config - x-stackQL-verb: exec - /v1/projects/{projectsId}/apps/{appsId}:generateAppAttestChallenge: - parameters: *ref_1 - post: - description: Generates a challenge that protects the integrity of an immediately following call to ExchangeAppAttestAttestation or ExchangeAppAttestAssertion. A challenge should not be reused for multiple calls. - operationId: firebaseappcheck.projects.apps.generateAppAttestChallenge - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1GenerateAppAttestChallengeRequest' - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1GenerateAppAttestChallengeResponse' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: path - name: appsId - required: true - schema: - type: string - x-stackQL-resource: apps - x-stackQL-verb: exec - /v1/projects/{projectsId}/apps/{appsId}:exchangeCustomToken: - parameters: *ref_1 - post: - description: Validates a custom token signed using your project's Admin SDK service account credentials. If valid, returns an AppCheckToken. - operationId: firebaseappcheck.projects.apps.exchangeCustomToken - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1ExchangeCustomTokenRequest' - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1AppCheckToken' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: path - name: appsId - required: true - schema: - type: string - x-stackQL-resource: apps - x-stackQL-verb: exec - /v1/projects/{projectsId}/apps/{appsId}:exchangeRecaptchaEnterpriseToken: - parameters: *ref_1 - post: - description: Validates a [reCAPTCHA Enterprise response token](https://cloud.google.com/recaptcha-enterprise/docs/create-assessment#retrieve_token). If valid, returns an AppCheckToken. - operationId: firebaseappcheck.projects.apps.exchangeRecaptchaEnterpriseToken - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1ExchangeRecaptchaEnterpriseTokenRequest' - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1AppCheckToken' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: path - name: appsId - required: true - schema: - type: string - x-stackQL-resource: apps - x-stackQL-verb: exec - /v1/projects/{projectsId}/apps/{appsId}:exchangePlayIntegrityToken: - parameters: *ref_1 - post: - description: Validates an [integrity verdict response token from Play Integrity](https://developer.android.com/google/play/integrity/verdict#decrypt-verify). If valid, returns an AppCheckToken. - operationId: firebaseappcheck.projects.apps.exchangePlayIntegrityToken - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1ExchangePlayIntegrityTokenRequest' - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1AppCheckToken' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: path - name: appsId - required: true - schema: - type: string - x-stackQL-resource: apps - x-stackQL-verb: exec - /v1/projects/{projectsId}/apps/{appsId}:exchangeAppAttestAttestation: - parameters: *ref_1 - post: - description: Accepts an App Attest CBOR attestation and verifies it with Apple using your preconfigured team and bundle IDs. If valid, returns an attestation artifact that can later be exchanged for an AppCheckToken using ExchangeAppAttestAssertion. For convenience and performance, this method's response object will also contain an AppCheckToken (if the verification is successful). - operationId: firebaseappcheck.projects.apps.exchangeAppAttestAttestation - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1ExchangeAppAttestAttestationRequest' - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1ExchangeAppAttestAttestationResponse' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: path - name: appsId - required: true - schema: - type: string - x-stackQL-resource: apps - x-stackQL-verb: exec - /v1/projects/{projectsId}/apps/{appsId}:exchangeRecaptchaV3Token: - parameters: *ref_1 - post: - description: Validates a [reCAPTCHA v3 response token](https://developers.google.com/recaptcha/docs/v3). If valid, returns an AppCheckToken. - operationId: firebaseappcheck.projects.apps.exchangeRecaptchaV3Token - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1ExchangeRecaptchaV3TokenRequest' - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1AppCheckToken' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: path - name: appsId - required: true - schema: - type: string - x-stackQL-resource: apps - x-stackQL-verb: exec - /v1/projects/{projectsId}/apps/{appsId}:exchangeSafetyNetToken: - parameters: *ref_1 - post: - description: Validates a [SafetyNet token](https://developer.android.com/training/safetynet/attestation#request-attestation-step). If valid, returns an AppCheckToken. - operationId: firebaseappcheck.projects.apps.exchangeSafetyNetToken - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1ExchangeSafetyNetTokenRequest' - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1AppCheckToken' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: path - name: appsId - required: true - schema: - type: string - x-stackQL-resource: apps - x-stackQL-verb: exec - /v1/projects/{projectsId}/apps/{appsId}:exchangeAppAttestAssertion: - parameters: *ref_1 - post: - description: Accepts an App Attest assertion and an artifact previously obtained from ExchangeAppAttestAttestation and verifies those with Apple. If valid, returns an AppCheckToken. - operationId: firebaseappcheck.projects.apps.exchangeAppAttestAssertion - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1ExchangeAppAttestAssertionRequest' - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1AppCheckToken' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: path - name: appsId - required: true - schema: - type: string - x-stackQL-resource: apps - x-stackQL-verb: exec - /v1/projects/{projectsId}/apps/{appsId}:exchangeDebugToken: - parameters: *ref_1 - post: - description: Validates a debug token secret that you have previously created using CreateDebugToken. If valid, returns an AppCheckToken. Note that a restrictive quota is enforced on this method to prevent accidental exposure of the app to abuse. - operationId: firebaseappcheck.projects.apps.exchangeDebugToken - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1ExchangeDebugTokenRequest' - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1AppCheckToken' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: path - name: appsId - required: true - schema: - type: string - x-stackQL-resource: apps - x-stackQL-verb: exec - /v1/projects/{projectsId}/apps/{appsId}:generatePlayIntegrityChallenge: - parameters: *ref_1 - post: - description: Generates a challenge that protects the integrity of an immediately following integrity verdict request to the Play Integrity API. The next call to ExchangePlayIntegrityToken using the resulting integrity token will verify the presence and validity of the challenge. A challenge should not be reused for multiple calls. - operationId: firebaseappcheck.projects.apps.generatePlayIntegrityChallenge - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1GeneratePlayIntegrityChallengeRequest' - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1GeneratePlayIntegrityChallengeResponse' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: path - name: appsId - required: true - schema: - type: string - x-stackQL-resource: apps - x-stackQL-verb: exec - /v1/projects/{projectsId}/apps/{appsId}:exchangeDeviceCheckToken: - parameters: *ref_1 - post: - description: Accepts a [`device_token`](https://developer.apple.com/documentation/devicecheck/dcdevice) issued by DeviceCheck, and attempts to validate it with Apple. If valid, returns an AppCheckToken. - operationId: firebaseappcheck.projects.apps.exchangeDeviceCheckToken - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1ExchangeDeviceCheckTokenRequest' - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1AppCheckToken' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: path - name: appsId - required: true - schema: - type: string - x-stackQL-resource: apps - x-stackQL-verb: exec - /v1/projects/{projectsId}/services: - parameters: *ref_1 - get: - description: Lists all Service configurations for the specified project. Only Services which were explicitly configured using UpdateService or BatchUpdateServices will be returned. - operationId: firebaseappcheck.projects.services.list - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1ListServicesResponse' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: query - name: pageSize - schema: - type: integer - - in: query - name: pageToken - schema: - type: string - x-stackQL-resource: services - x-stackQL-verb: select - /v1/projects/{projectsId}/services/{servicesId}: - parameters: *ref_1 - patch: - description: Updates the specified Service configuration. - operationId: firebaseappcheck.projects.services.patch - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1Service' - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1Service' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: path - name: servicesId - required: true - schema: - type: string - - in: query - name: updateMask - schema: - type: string - x-stackQL-resource: services - x-stackQL-verb: exec - get: - description: Gets the Service configuration for the specified service name. - operationId: firebaseappcheck.projects.services.get - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1Service' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: path - name: servicesId - required: true - schema: - type: string - x-stackQL-resource: services - x-stackQL-verb: select - /v1/projects/{projectsId}/services:batchUpdate: - parameters: *ref_1 - post: - description: Atomically updates the specified Service configurations. - operationId: firebaseappcheck.projects.services.batchUpdate - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1BatchUpdateServicesRequest' - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1BatchUpdateServicesResponse' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - x-stackQL-resource: services - x-stackQL-verb: exec - /v1/jwks: - parameters: *ref_1 - get: - description: Returns a public JWK set as specified by [RFC 7517](https://tools.ietf.org/html/rfc7517) that can be used to verify App Check tokens. Exactly one of the public keys in the returned set will successfully validate any App Check token that is currently valid. - operationId: firebaseappcheck.jwks.get - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GoogleFirebaseAppcheckV1PublicJwkSet' - parameters: [] - x-stackQL-resource: jwks - x-stackQL-verb: select diff --git a/providers/src/firebase/v00.00.00000/services/firebasedynamiclinks.yaml b/providers/src/firebase/v00.00.00000/services/firebasedynamiclinks.yaml deleted file mode 100644 index 9792b1cb..00000000 --- a/providers/src/firebase/v00.00.00000/services/firebasedynamiclinks.yaml +++ /dev/null @@ -1,933 +0,0 @@ -openapi: 3.1.0 -info: - contact: - name: StackQL Studios - url: https://github.com/stackql/google-discovery-to-openapi - email: info@stackql.io - title: Firebase Dynamic Links API - description: Programmatically creates and manages Firebase Dynamic Links. - version: v1 - x-discovery-doc-revision: '20230102' - x-generated-date: '2023-01-06' -externalDocs: - url: https://firebase.google.com/docs/dynamic-links/ -servers: - - url: https://firebasedynamiclinks.googleapis.com -components: - schemas: - DynamicLinkEventStat: - properties: - event: - enum: - - DYNAMIC_LINK_EVENT_UNSPECIFIED - - CLICK - - REDIRECT - - APP_INSTALL - - APP_FIRST_OPEN - - APP_RE_OPEN - enumDescriptions: - - Unspecified type. - - Indicates that an FDL is clicked by users. - - Indicates that an FDL redirects users to fallback link. - - Indicates that an FDL triggers an app install from Play store, currently it's impossible to get stats from App store. - - Indicates that the app is opened for the first time after an install triggered by FDLs - - Indicates that the app is opened via an FDL for non-first time. - type: string - description: Link event. - platform: - enum: - - DYNAMIC_LINK_PLATFORM_UNSPECIFIED - - ANDROID - - IOS - - DESKTOP - - OTHER - type: string - enumDescriptions: - - Unspecified platform. - - Represents Android platform. All apps and browsers on Android are classfied in this category. - - Represents iOS platform. All apps and browsers on iOS are classfied in this category. - - Represents desktop. - - Platforms are not categorized as Android/iOS/Destop fall into here. - description: Requested platform. - count: - type: string - format: int64 - description: The number of times this event occurred. - id: DynamicLinkEventStat - type: object - description: Dynamic Link event stat. - ITunesConnectAnalytics: - description: Parameters for iTunes Connect App Analytics. - properties: - ct: - type: string - description: Campaign text that developers can optionally add to any link in order to track sales from a specific marketing campaign. - pt: - description: Provider token that enables analytics for Dynamic Links from within iTunes Connect. - type: string - at: - type: string - description: Affiliate token used to create affiliate-coded links. - mt: - description: iTune media types, including music, podcasts, audiobooks and so on. - type: string - id: ITunesConnectAnalytics - type: object - ManagedShortLink: - id: ManagedShortLink - description: Managed Short Link. - type: object - properties: - link: - description: Short durable link url, for example, "https://sample.app.goo.gl/xyz123". Required. - type: string - linkName: - description: Link name defined by the creator. Required. - type: string - visibility: - description: Visibility status of link. - type: string - enumDescriptions: - - Visibility of the link is not specified. - - Link created in console and should be shown in console. - - Link created in console and should not be shown in console (but can be shown in the console again if it is unarchived). - - Link created outside of console and should never be shown in console. - enum: - - UNSPECIFIED_VISIBILITY - - UNARCHIVED - - ARCHIVED - - NEVER_SHOWN - creationTime: - type: string - format: google-datetime - description: Creation timestamp of the short link. - info: - $ref: '#/components/schemas/DynamicLinkInfo' - description: Full Dyamic Link info - flaggedAttribute: - type: array - items: - enumDescriptions: - - Indicates that no attributes were found for this short url. - - Indicates that short url has been flagged by AbuseIAm team as spam. - enum: - - UNSPECIFIED_ATTRIBUTE - - SPAM - type: string - description: Attributes that have been flagged about this short url. - CreateShortDynamicLinkResponse: - id: CreateShortDynamicLinkResponse - properties: - warning: - type: array - description: Information about potential warnings on link creation. - items: - $ref: '#/components/schemas/DynamicLinkWarning' - previewLink: - type: string - description: Preview link to show the link flow chart. (debug info.) - shortLink: - description: Short Dynamic Link value. e.g. https://abcd.app.goo.gl/wxyz - type: string - description: Response to create a short Dynamic Link. - type: object - IosInfo: - id: IosInfo - type: object - description: iOS related attributes to the Dynamic Link.. - properties: - iosIpadBundleId: - type: string - description: iPad bundle ID of the app. - iosAppStoreId: - type: string - description: iOS App Store ID. - iosMinimumVersion: - description: iOS minimum version. - type: string - iosIpadFallbackLink: - description: If specified, this overrides the ios_fallback_link value on iPads. - type: string - iosCustomScheme: - description: Custom (destination) scheme to use for iOS. By default, we’ll use the bundle ID as the custom scheme. Developer can override this behavior using this param. - type: string - iosBundleId: - type: string - description: iOS bundle ID of the app. - iosFallbackLink: - description: Link to open on iOS if the app is not installed. - type: string - GetIosReopenAttributionResponse: - description: Response for iSDK to get reopen attribution for app universal link open deeplinking. This endpoint is meant for only iOS requests. - type: object - properties: - invitationId: - type: string - description: Optional invitation ID, for only invite typed requested FDL links. - resolvedLink: - description: The entire FDL, expanded from a short link. It is the same as the requested_link, if it is long. - type: string - utmSource: - description: Scion source value to be propagated by iSDK to Scion at app-reopen. - type: string - utmCampaign: - type: string - description: Scion campaign value to be propagated by iSDK to Scion at app-reopen. - iosMinAppVersion: - description: FDL input value of the "&imv=" parameter, minimum app version to be returned to Google Firebase SDK running on iOS-9. - type: string - utmTerm: - description: Scion term value to be propagated by iSDK to Scion at app-reopen. - type: string - utmMedium: - type: string - description: Scion medium value to be propagated by iSDK to Scion at app-reopen. - deepLink: - type: string - description: The deep-link attributed the app universal link open. For both regular FDL links and invite FDL links. - utmContent: - type: string - description: Scion content value to be propagated by iSDK to Scion at app-reopen. - id: GetIosReopenAttributionResponse - DynamicLinkWarning: - properties: - warningDocumentLink: - description: The document describing the warning, and helps resolve. - type: string - warningCode: - enumDescriptions: - - Unknown code. - - The Android package does not match any in developer's DevConsole project. - - The Android minimum version code has to be a valid integer. - - Android package min version param is not needed, e.g. when 'apn' is missing. - - Android link is not a valid URI. - - Android link param is not needed, e.g. when param 'al' and 'link' have the same value.. - - Android fallback link is not a valid URI. - - Android fallback link has an invalid (non http/https) URI scheme. - - The iOS bundle ID does not match any in developer's DevConsole project. - - The iPad bundle ID does not match any in developer's DevConsole project. - - iOS URL scheme is not needed, e.g. when 'ibi' are 'ipbi' are all missing. - - iOS app store ID format is incorrect, e.g. not numeric. - - iOS app store ID is not needed. - - iOS fallback link is not a valid URI. - - iOS fallback link has an invalid (non http/https) URI scheme. - - iPad fallback link is not a valid URI. - - iPad fallback link has an invalid (non http/https) URI scheme. - - Debug param format is incorrect. - - isAd param format is incorrect. - - Indicates a certain param is deprecated. - - Indicates certain paramater is not recognized. - - Indicates certain paramater is too long. - - Social meta tag image link is not a valid URI. - - Social meta tag image link has an invalid (non http/https) URI scheme. - - '' - - '' - - Dynamic Link URL length is too long. - - Dynamic Link URL contains fragments. - - The iOS bundle ID does not match with the given iOS store ID. - enum: - - CODE_UNSPECIFIED - - NOT_IN_PROJECT_ANDROID_PACKAGE_NAME - - NOT_INTEGER_ANDROID_PACKAGE_MIN_VERSION - - UNNECESSARY_ANDROID_PACKAGE_MIN_VERSION - - NOT_URI_ANDROID_LINK - - UNNECESSARY_ANDROID_LINK - - NOT_URI_ANDROID_FALLBACK_LINK - - BAD_URI_SCHEME_ANDROID_FALLBACK_LINK - - NOT_IN_PROJECT_IOS_BUNDLE_ID - - NOT_IN_PROJECT_IPAD_BUNDLE_ID - - UNNECESSARY_IOS_URL_SCHEME - - NOT_NUMERIC_IOS_APP_STORE_ID - - UNNECESSARY_IOS_APP_STORE_ID - - NOT_URI_IOS_FALLBACK_LINK - - BAD_URI_SCHEME_IOS_FALLBACK_LINK - - NOT_URI_IPAD_FALLBACK_LINK - - BAD_URI_SCHEME_IPAD_FALLBACK_LINK - - BAD_DEBUG_PARAM - - BAD_AD_PARAM - - DEPRECATED_PARAM - - UNRECOGNIZED_PARAM - - TOO_LONG_PARAM - - NOT_URI_SOCIAL_IMAGE_LINK - - BAD_URI_SCHEME_SOCIAL_IMAGE_LINK - - NOT_URI_SOCIAL_URL - - BAD_URI_SCHEME_SOCIAL_URL - - LINK_LENGTH_TOO_LONG - - LINK_WITH_FRAGMENTS - - NOT_MATCHING_IOS_BUNDLE_ID_AND_STORE_ID - type: string - description: The warning code. - warningMessage: - description: The warning message to help developers improve their requests. - type: string - id: DynamicLinkWarning - type: object - description: Dynamic Links warning messages. - GetIosReopenAttributionRequest: - properties: - sdkVersion: - type: string - description: Google SDK version. Version takes the form "$major.$minor.$patch" - requestedLink: - type: string - description: 'FDL link to be verified from an app universal link open. The FDL link can be one of: 1) short FDL. e.g. .page.link/, or 2) long FDL. e.g. .page.link/?{query params}, or 3) Invite FDL. e.g. .page.link/i/' - bundleId: - description: APP bundle ID. - type: string - id: GetIosReopenAttributionRequest - type: object - description: Request for iSDK to get reopen attribution for app universal link open deeplinking. This endpoint is meant for only iOS requests. - GooglePlayAnalytics: - type: object - description: Parameters for Google Play Campaign Measurements. [Learn more](https://developers.google.com/analytics/devguides/collection/android/v4/campaigns#campaign-params) - id: GooglePlayAnalytics - properties: - utmMedium: - description: Campaign medium; used to identify a medium such as email or cost-per-click. - type: string - utmTerm: - description: Campaign term; used with paid search to supply the keywords for ads. - type: string - gclid: - type: string - description: Deprecated; FDL SDK does not process nor log it. - utmContent: - type: string - description: Campaign content; used for A/B testing and content-targeted ads to differentiate ads or links that point to the same URL. - utmCampaign: - description: Campaign name; used for keyword analysis to identify a specific product promotion or strategic campaign. - type: string - utmSource: - type: string - description: Campaign source; used to identify a search engine, newsletter, or other source. - SocialMetaTagInfo: - properties: - socialImageLink: - description: An image url string. Optional. - type: string - socialDescription: - type: string - description: A short description of the link. Optional. - socialTitle: - type: string - description: Title to be displayed. Optional. - description: Parameters for social meta tag params. Used to set meta tag data for link previews on social sites. - type: object - id: SocialMetaTagInfo - GetIosPostInstallAttributionResponse: - description: Response for iSDK to execute strong match flow for post-install attribution. - type: object - properties: - utmMedium: - description: Scion medium value to be propagated by iSDK to Scion at post-install. - type: string - attributionConfidence: - enum: - - UNKNOWN_ATTRIBUTION_CONFIDENCE - - WEAK - - DEFAULT - - UNIQUE - type: string - description: The confidence of the returned attribution. - enumDescriptions: - - Unset. - - Weak confidence, more than one matching link found or link suspected to be false positive - - Default confidence, match based on fingerprint - - Unique confidence, match based on "unique match link to check" or other means - matchMessage: - type: string - description: 'Describes why match failed, ie: "discarded due to low confidence". This message will be publicly visible.' - utmTerm: - description: Scion term value to be propagated by iSDK to Scion at app-reopen. - type: string - requestedLink: - description: Entire FDL (short or long) attributed post-install via one of several techniques (fingerprint, copy unique). - type: string - utmCampaign: - type: string - description: Scion campaign value to be propagated by iSDK to Scion at post-install. - isStrongMatchExecutable: - description: Instruction for iSDK to attemmpt to perform strong match. For instance, if browser does not support/allow cookie or outside of support browsers, this will be false. - type: boolean - deepLink: - description: The deep-link attributed post-install via one of several techniques (fingerprint, copy unique). - type: string - resolvedLink: - description: 'The entire FDL, expanded from a short link. It is the same as the requested_link, if it is long. Parameters from this should not be used directly (ie: server can default utm_[campaign|medium|source] to a value when requested_link lack them, server determine the best fallback_link when requested_link specifies >1 fallback links).' - type: string - appMinimumVersion: - type: string - description: The minimum version for app, specified by dev through ?imv= parameter. Return to iSDK to allow app to evaluate if current version meets this. - externalBrowserDestinationLink: - description: 'User-agent specific custom-scheme URIs for iSDK to open. This will be set according to the user-agent tha the click was originally made in. There is no Safari-equivalent custom-scheme open URLs. ie: googlechrome://www.example.com ie: firefox://open-url?url=http://www.example.com ie: opera-http://example.com' - type: string - utmSource: - description: Scion source value to be propagated by iSDK to Scion at post-install. - type: string - utmContent: - description: Scion content value to be propagated by iSDK to Scion at app-reopen. - type: string - invitationId: - type: string - description: Invitation ID attributed post-install via one of several techniques (fingerprint, copy unique). - fallbackLink: - type: string - description: 'The link to navigate to update the app if min version is not met. This is either (in order): 1) fallback link (from ?ifl= parameter, if specified by developer) or 2) AppStore URL (from ?isi= parameter, if specified), or 3) the payload link (from required link= parameter).' - requestIpVersion: - description: Which IP version the request was made from. - enumDescriptions: - - Unset. - - Request made from an IPv4 IP address. - - Request made from an IPv6 IP address. - type: string - enum: - - UNKNOWN_IP_VERSION - - IP_V4 - - IP_V6 - id: GetIosPostInstallAttributionResponse - CreateManagedShortLinkResponse: - description: Response to create a short Dynamic Link. - type: object - properties: - managedShortLink: - $ref: '#/components/schemas/ManagedShortLink' - description: Short Dynamic Link value. e.g. https://abcd.app.goo.gl/wxyz - warning: - description: Information about potential warnings on link creation. - items: - $ref: '#/components/schemas/DynamicLinkWarning' - type: array - previewLink: - description: Preview link to show the link flow chart. (debug info.) - type: string - id: CreateManagedShortLinkResponse - Suffix: - type: object - id: Suffix - properties: - option: - type: string - enumDescriptions: - - The suffix option is not specified, performs as UNGUESSABLE . - - Short Dynamic Link suffix is a base62 [0-9A-Za-z] encoded string of a random generated 96 bit random number, which has a length of 17 chars. For example, "nlAR8U4SlKRZw1cb2". It prevents other people from guessing and crawling short Dynamic Links that contain personal identifiable information. - - Short Dynamic Link suffix is a base62 [0-9A-Za-z] string starting with a length of 4 chars. the length will increase when all the space is occupied. - - 'Custom DDL suffix is a client specified string, for example, "buy2get1free". NOTE: custom suffix should only be available to managed short link creation' - description: Suffix option. - enum: - - OPTION_UNSPECIFIED - - UNGUESSABLE - - SHORT - - CUSTOM - customSuffix: - description: Only applies to Option.CUSTOM. - type: string - description: Short Dynamic Link suffix. - CreateManagedShortLinkRequest: - properties: - dynamicLinkInfo: - description: Information about the Dynamic Link to be shortened. [Learn more](https://firebase.google.com/docs/reference/dynamic-links/link-shortener). - $ref: '#/components/schemas/DynamicLinkInfo' - sdkVersion: - type: string - description: Google SDK version. Version takes the form "$major.$minor.$patch" - longDynamicLink: - type: string - description: Full long Dynamic Link URL with desired query parameters specified. For example, "https://sample.app.goo.gl/?link=http://www.google.com&apn=com.sample", [Learn more](https://firebase.google.com/docs/reference/dynamic-links/link-shortener). - name: - type: string - description: Link name to associate with the link. It's used for marketer to identify manually-created links in the Firebase console (https://console.firebase.google.com/). Links must be named to be tracked. - suffix: - $ref: '#/components/schemas/Suffix' - description: Short Dynamic Link suffix. Optional. - id: CreateManagedShortLinkRequest - type: object - description: Request to create a managed Short Dynamic Link. - GetIosPostInstallAttributionRequest: - description: Request for iSDK to execute strong match flow for post-install attribution. This is meant for iOS requests only. Requests from other platforms will not be honored. - id: GetIosPostInstallAttributionRequest - properties: - appInstallationTime: - description: App installation epoch time (https://en.wikipedia.org/wiki/Unix_time). This is a client signal for a more accurate weak match. - format: int64 - type: string - uniqueMatchLinkToCheck: - type: string - description: Possible unique matched link that server need to check before performing fingerprint match. If passed link is short server need to expand the link. If link is long server need to vslidate the link. - retrievalMethod: - description: App post install attribution retrieval information. Disambiguates mechanism (iSDK or developer invoked) to retrieve payload from clicked link. - enum: - - UNKNOWN_PAYLOAD_RETRIEVAL_METHOD - - IMPLICIT_WEAK_MATCH - - EXPLICIT_WEAK_MATCH - - EXPLICIT_STRONG_AFTER_WEAK_MATCH - type: string - enumDescriptions: - - Unknown method. - - iSDK performs a server lookup by device fingerprint in the background when app is first-opened; no API called by developer. - - iSDK performs a server lookup by device fingerprint upon a dev API call. - - iSDK performs a strong match only if weak match is found upon a dev API call. - visualStyle: - type: string - enumDescriptions: - - Unknown style. - - Default style. - - Custom style. - enum: - - UNKNOWN_VISUAL_STYLE - - DEFAULT_STYLE - - CUSTOM_STYLE - description: Strong match page information. Disambiguates between default UI and custom page to present when strong match succeeds/fails to find cookie. - iosVersion: - type: string - description: 'iOS version, ie: 9.3.5. Consider adding "build".' - sdkVersion: - description: Google SDK version. Version takes the form "$major.$minor.$patch" - type: string - device: - description: Device information. - $ref: '#/components/schemas/DeviceInfo' - bundleId: - description: APP bundle ID. - type: string - type: object - DynamicLinkInfo: - id: DynamicLinkInfo - description: Information about a Dynamic Link. - properties: - analyticsInfo: - $ref: '#/components/schemas/AnalyticsInfo' - description: Parameters used for tracking. See all tracking parameters in the [documentation](https://firebase.google.com/docs/dynamic-links/create-manually). - navigationInfo: - $ref: '#/components/schemas/NavigationInfo' - description: Information of navigation behavior of a Firebase Dynamic Links. - dynamicLinkDomain: - description: Dynamic Links domain that the project owns, e.g. abcd.app.goo.gl [Learn more](https://firebase.google.com/docs/dynamic-links/android/receive) on how to set up Dynamic Link domain associated with your Firebase project. Required if missing domain_uri_prefix. - type: string - link: - type: string - description: The link your app will open, You can specify any URL your app can handle. This link must be a well-formatted URL, be properly URL-encoded, and use the HTTP or HTTPS scheme. See 'link' parameters in the [documentation](https://firebase.google.com/docs/dynamic-links/create-manually). Required. - domainUriPrefix: - type: string - description: E.g. https://maps.app.goo.gl, https://maps.page.link, https://g.co/maps More examples can be found in description of getNormalizedUriPrefix in j/c/g/firebase/dynamiclinks/uri/DdlDomain.java Will fallback to dynamic_link_domain is this field is missing - desktopInfo: - description: Desktop related information. See desktop related parameters in the [documentation](https://firebase.google.com/docs/dynamic-links/create-manually). - $ref: '#/components/schemas/DesktopInfo' - iosInfo: - $ref: '#/components/schemas/IosInfo' - description: iOS related information. See iOS related parameters in the [documentation](https://firebase.google.com/docs/dynamic-links/create-manually). - androidInfo: - description: Android related information. See Android related parameters in the [documentation](https://firebase.google.com/docs/dynamic-links/create-manually). - $ref: '#/components/schemas/AndroidInfo' - socialMetaTagInfo: - $ref: '#/components/schemas/SocialMetaTagInfo' - description: Parameters for social meta tag params. Used to set meta tag data for link previews on social sites. - type: object - DynamicLinkStats: - properties: - linkEventStats: - description: Dynamic Link event stats. - items: - $ref: '#/components/schemas/DynamicLinkEventStat' - type: array - type: object - description: Analytics stats of a Dynamic Link for a given timeframe. - id: DynamicLinkStats - NavigationInfo: - properties: - enableForcedRedirect: - type: boolean - description: If this option is on, FDL click will be forced to redirect rather than show an interstitial page. - id: NavigationInfo - description: Information of navigation behavior. - type: object - DesktopInfo: - properties: - desktopFallbackLink: - description: Link to open on desktop. - type: string - id: DesktopInfo - type: object - description: Desktop related attributes to the Dynamic Link. - CreateShortDynamicLinkRequest: - description: Request to create a short Dynamic Link. - id: CreateShortDynamicLinkRequest - type: object - properties: - dynamicLinkInfo: - description: Information about the Dynamic Link to be shortened. [Learn more](https://firebase.google.com/docs/reference/dynamic-links/link-shortener). - $ref: '#/components/schemas/DynamicLinkInfo' - suffix: - description: Short Dynamic Link suffix. Optional. - $ref: '#/components/schemas/Suffix' - longDynamicLink: - description: Full long Dynamic Link URL with desired query parameters specified. For example, "https://sample.app.goo.gl/?link=http://www.google.com&apn=com.sample", [Learn more](https://firebase.google.com/docs/reference/dynamic-links/link-shortener). - type: string - sdkVersion: - description: Google SDK version. Version takes the form "$major.$minor.$patch" - type: string - AndroidInfo: - properties: - androidMinPackageVersionCode: - type: string - description: Minimum version code for the Android app. If the installed app’s version code is lower, then the user is taken to the Play Store. - androidLink: - type: string - description: If specified, this overrides the ‘link’ parameter on Android. - androidFallbackLink: - description: Link to open on Android if the app is not installed. - type: string - androidPackageName: - description: Android package name of the app. - type: string - id: AndroidInfo - description: Android related attributes to the Dynamic Link. - type: object - DeviceInfo: - properties: - timezone: - type: string - description: Device timezone setting. - deviceModelName: - description: Device model name. - type: string - screenResolutionHeight: - format: int64 - description: Device display resolution height. - type: string - screenResolutionWidth: - type: string - description: Device display resolution width. - format: int64 - languageCodeFromWebview: - type: string - description: Device language code setting obtained by executing JavaScript code in WebView. - languageCode: - type: string - description: Device language code setting. - languageCodeRaw: - description: Device language code raw setting. iOS does returns language code in different format than iOS WebView. For example WebView returns en_US, but iOS returns en-US. Field below will return raw value returned by iOS. - type: string - description: Signals associated with the device making the request. - type: object - id: DeviceInfo - AnalyticsInfo: - properties: - googlePlayAnalytics: - description: Google Play Campaign Measurements. - $ref: '#/components/schemas/GooglePlayAnalytics' - itunesConnectAnalytics: - description: iTunes Connect App Analytics. - $ref: '#/components/schemas/ITunesConnectAnalytics' - type: object - id: AnalyticsInfo - description: Tracking parameters supported by Dynamic Link. - parameters: - upload_protocol: - description: Upload protocol for media (e.g. "raw", "multipart"). - in: query - name: upload_protocol - schema: - type: string - alt: - description: Data format for response. - in: query - name: alt - schema: - type: string - enum: - - json - - media - - proto - quotaUser: - description: Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. - in: query - name: quotaUser - schema: - type: string - key: - description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token. - in: query - name: key - schema: - type: string - oauth_token: - description: OAuth 2.0 token for the current user. - in: query - name: oauth_token - schema: - type: string - callback: - description: JSONP - in: query - name: callback - schema: - type: string - access_token: - description: OAuth access token. - in: query - name: access_token - schema: - type: string - uploadType: - description: Legacy upload protocol for media (e.g. "media", "multipart"). - in: query - name: uploadType - schema: - type: string - fields: - description: Selector specifying which fields to include in a partial response. - in: query - name: fields - schema: - type: string - _.xgafv: - description: V1 error format. - in: query - name: _.xgafv - schema: - type: string - enum: - - '1' - - '2' - prettyPrint: - description: Returns response with indentations and line breaks. - in: query - name: prettyPrint - schema: - type: boolean - securitySchemes: - Oauth2: - type: oauth2 - description: Oauth 2.0 implicit authentication - flows: - implicit: - authorizationUrl: https://accounts.google.com/o/oauth2/auth - scopes: &ref_0 - https://www.googleapis.com/auth/firebase: View and administer all your Firebase data and settings - Oauth2c: - type: oauth2 - description: Oauth 2.0 authorization code authentication - flows: - authorizationCode: - authorizationUrl: https://accounts.google.com/o/oauth2/auth - tokenUrl: https://accounts.google.com/o/oauth2/token - scopes: *ref_0 - x-stackQL-resources: - firebasedynamiclinks: - id: firebase.firebasedynamiclinks.firebasedynamiclinks - name: firebasedynamiclinks - title: Firebasedynamiclinks - methods: - reopenAttribution: - operation: - $ref: '#/paths/~1v1~1reopenAttribution/post' - response: - mediaType: application/json - openAPIDocKey: '200' - installAttribution: - operation: - $ref: '#/paths/~1v1~1installAttribution/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - link_stats: - id: firebase.firebasedynamiclinks.link_stats - name: link_stats - title: Link_stats - methods: - getLinkStats: - operation: - $ref: '#/paths/~1v1~1{dynamicLink}~1linkStats/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/link_stats/methods/getLinkStats' - insert: [] - update: [] - delete: [] - short_links: - id: firebase.firebasedynamiclinks.short_links - name: short_links - title: Short_links - methods: - shortLinks_create: - operation: - $ref: '#/paths/~1v1~1shortLinks/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: - - $ref: '#/components/x-stackQL-resources/short_links/methods/shortLinks_create' - update: [] - delete: [] - managed_short_links: - id: firebase.firebasedynamiclinks.managed_short_links - name: managed_short_links - title: Managed_short_links - methods: - managedShortLinks_create: - operation: - $ref: '#/paths/~1v1~1managedShortLinks:create/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: - - $ref: '#/components/x-stackQL-resources/managed_short_links/methods/managedShortLinks_create' - update: [] - delete: [] -paths: - /v1/reopenAttribution: - parameters: &ref_1 - - $ref: '#/components/parameters/upload_protocol' - - $ref: '#/components/parameters/alt' - - $ref: '#/components/parameters/quotaUser' - - $ref: '#/components/parameters/key' - - $ref: '#/components/parameters/oauth_token' - - $ref: '#/components/parameters/callback' - - $ref: '#/components/parameters/access_token' - - $ref: '#/components/parameters/uploadType' - - $ref: '#/components/parameters/fields' - - $ref: '#/components/parameters/_.xgafv' - - $ref: '#/components/parameters/prettyPrint' - post: - description: Get iOS reopen attribution for app universal link open deeplinking. - operationId: firebasedynamiclinks.reopenAttribution - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GetIosReopenAttributionRequest' - security: - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GetIosReopenAttributionResponse' - parameters: [] - x-stackQL-resource: firebasedynamiclinks - x-stackQL-verb: exec - /v1/{dynamicLink}/linkStats: - parameters: *ref_1 - get: - description: Fetches analytics stats of a short Dynamic Link for a given duration. Metrics include number of clicks, redirects, installs, app first opens, and app reopens. - operationId: firebasedynamiclinks.getLinkStats - security: - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/DynamicLinkStats' - parameters: - - in: path - name: dynamicLink - required: true - schema: - type: string - - in: query - name: durationDays - schema: - type: string - - in: query - name: sdkVersion - schema: - type: string - x-stackQL-resource: _link_stats - x-stackQL-verb: select - /v1/installAttribution: - parameters: *ref_1 - post: - description: Get iOS strong/weak-match info for post-install attribution. - operationId: firebasedynamiclinks.installAttribution - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GetIosPostInstallAttributionRequest' - security: - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/GetIosPostInstallAttributionResponse' - parameters: [] - x-stackQL-resource: firebasedynamiclinks - x-stackQL-verb: exec - /v1/shortLinks: - parameters: *ref_1 - post: - description: Creates a short Dynamic Link given either a valid long Dynamic Link or details such as Dynamic Link domain, Android and iOS app information. The created short Dynamic Link will not expire. Repeated calls with the same long Dynamic Link or Dynamic Link information will produce the same short Dynamic Link. The Dynamic Link domain in the request must be owned by requester's Firebase project. - operationId: firebasedynamiclinks.shortLinks.create - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CreateShortDynamicLinkRequest' - security: - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/CreateShortDynamicLinkResponse' - parameters: [] - x-stackQL-resource: short_links - x-stackQL-verb: insert - /v1/managedShortLinks:create: - parameters: *ref_1 - post: - description: 'Creates a managed short Dynamic Link given either a valid long Dynamic Link or details such as Dynamic Link domain, Android and iOS app information. The created short Dynamic Link will not expire. This differs from CreateShortDynamicLink in the following ways: - The request will also contain a name for the link (non unique name for the front end). - The response must be authenticated with an auth token (generated with the admin service account). - The link will appear in the FDL list of links in the console front end. The Dynamic Link domain in the request must be owned by requester''s Firebase project.' - operationId: firebasedynamiclinks.managedShortLinks.create - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CreateManagedShortLinkRequest' - security: - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/CreateManagedShortLinkResponse' - parameters: [] - x-stackQL-resource: managed_short_links - x-stackQL-verb: insert diff --git a/providers/src/firebase/v00.00.00000/services/firebasehosting.yaml b/providers/src/firebase/v00.00.00000/services/firebasehosting.yaml deleted file mode 100644 index e34e420d..00000000 --- a/providers/src/firebase/v00.00.00000/services/firebasehosting.yaml +++ /dev/null @@ -1,295 +0,0 @@ -openapi: 3.1.0 -info: - contact: - name: StackQL Studios - url: https://github.com/stackql/google-discovery-to-openapi - email: info@stackql.io - title: Firebase Hosting API - description: The Firebase Hosting REST API enables programmatic and customizable management and deployments to your Firebase-hosted sites. Use this REST API to create and manage channels and sites as well as to deploy new or updated hosting configurations and content files. - version: v1 - x-discovery-doc-revision: '20230104' - x-generated-date: '2023-01-06' -externalDocs: - url: https://firebase.google.com/docs/hosting/ -servers: - - url: https://firebasehosting.googleapis.com -components: - schemas: - Empty: - properties: {} - type: object - id: Empty - description: 'A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }' - CancelOperationRequest: - properties: {} - id: CancelOperationRequest - description: The request message for Operations.CancelOperation. - type: object - ListOperationsResponse: - type: object - description: The response message for Operations.ListOperations. - id: ListOperationsResponse - properties: - nextPageToken: - type: string - description: The standard List next-page token. - operations: - type: array - description: A list of operations that matches the specified filter in the request. - items: - $ref: '#/components/schemas/Operation' - Operation: - properties: - name: - description: The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`. - type: string - response: - type: object - description: The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`. - additionalProperties: - type: any - description: Properties of the object. Contains field @type with type URL. - error: - description: The error result of the operation in case of failure or cancellation. - $ref: '#/components/schemas/Status' - metadata: - type: object - additionalProperties: - description: Properties of the object. Contains field @type with type URL. - type: any - description: Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any. - done: - description: If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available. - type: boolean - type: object - id: Operation - description: This resource represents a long-running operation that is the result of a network API call. - Status: - type: object - id: Status - description: '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](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).' - properties: - code: - type: integer - format: int32 - description: The status code, which should be an enum value of google.rpc.Code. - message: - type: string - description: 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 field, or localized by the client. - details: - items: - type: object - additionalProperties: - type: any - description: Properties of the object. Contains field @type with type URL. - type: array - description: A list of messages that carry the error details. There is a common set of message types for APIs to use. - parameters: - key: - description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token. - in: query - name: key - schema: - type: string - callback: - description: JSONP - in: query - name: callback - schema: - type: string - oauth_token: - description: OAuth 2.0 token for the current user. - in: query - name: oauth_token - schema: - type: string - prettyPrint: - description: Returns response with indentations and line breaks. - in: query - name: prettyPrint - schema: - type: boolean - _.xgafv: - description: V1 error format. - in: query - name: _.xgafv - schema: - type: string - enum: - - '1' - - '2' - access_token: - description: OAuth access token. - in: query - name: access_token - schema: - type: string - quotaUser: - description: Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. - in: query - name: quotaUser - schema: - type: string - alt: - description: Data format for response. - in: query - name: alt - schema: - type: string - enum: - - json - - media - - proto - fields: - description: Selector specifying which fields to include in a partial response. - in: query - name: fields - schema: - type: string - upload_protocol: - description: Upload protocol for media (e.g. "raw", "multipart"). - in: query - name: upload_protocol - schema: - type: string - uploadType: - description: Legacy upload protocol for media (e.g. "media", "multipart"). - in: query - name: uploadType - schema: - type: string - securitySchemes: - Oauth2: - type: oauth2 - description: Oauth 2.0 implicit authentication - flows: - implicit: - authorizationUrl: https://accounts.google.com/o/oauth2/auth - scopes: &ref_0 - https://www.googleapis.com/auth/firebase: View and administer all your Firebase data and settings - Oauth2c: - type: oauth2 - description: Oauth 2.0 authorization code authentication - flows: - authorizationCode: - authorizationUrl: https://accounts.google.com/o/oauth2/auth - tokenUrl: https://accounts.google.com/o/oauth2/token - scopes: *ref_0 - x-stackQL-resources: - operations: - id: firebase.firebasehosting.operations - name: operations - title: Operations - methods: - delete: - operation: - $ref: '#/paths/~1v1~1operations~1{operationsId}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - cancel: - operation: - $ref: '#/paths/~1v1~1operations~1{operationsId}:cancel/post' - response: - mediaType: application/json - openAPIDocKey: '200' - list: - operation: - $ref: '#/paths/~1v1~1operations/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/operations/methods/list' - insert: [] - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/operations/methods/delete' -paths: - /v1/operations/{operationsId}: - parameters: &ref_1 - - $ref: '#/components/parameters/key' - - $ref: '#/components/parameters/callback' - - $ref: '#/components/parameters/oauth_token' - - $ref: '#/components/parameters/prettyPrint' - - $ref: '#/components/parameters/_.xgafv' - - $ref: '#/components/parameters/access_token' - - $ref: '#/components/parameters/quotaUser' - - $ref: '#/components/parameters/alt' - - $ref: '#/components/parameters/fields' - - $ref: '#/components/parameters/upload_protocol' - - $ref: '#/components/parameters/uploadType' - delete: - description: Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. - operationId: firebasehosting.operations.delete - security: [] - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/Empty' - parameters: - - in: path - name: operationsId - required: true - schema: - type: string - x-stackQL-resource: operations - x-stackQL-verb: delete - /v1/operations/{operationsId}:cancel: - parameters: *ref_1 - post: - description: Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`. - operationId: firebasehosting.operations.cancel - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CancelOperationRequest' - security: [] - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/Empty' - parameters: - - in: path - name: operationsId - required: true - schema: - type: string - x-stackQL-resource: operations - x-stackQL-verb: exec - /v1/operations: - parameters: *ref_1 - get: - description: 'Lists operations that match the specified filter in the request. If the server doesn''t support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `"/v1/{name=users/*}/operations"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.' - operationId: firebasehosting.operations.list - security: [] - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/ListOperationsResponse' - parameters: - - in: query - name: pageSize - schema: - type: integer - - in: query - name: pageToken - schema: - type: string - - in: query - name: filter - schema: - type: string - x-stackQL-resource: operations - x-stackQL-verb: select diff --git a/providers/src/firebase/v00.00.00000/services/hosting.yaml b/providers/src/firebase/v00.00.00000/services/hosting.yaml new file mode 100644 index 00000000..f486a9b4 --- /dev/null +++ b/providers/src/firebase/v00.00.00000/services/hosting.yaml @@ -0,0 +1,885 @@ +openapi: 3.1.0 +info: + contact: + name: StackQL Studios + url: https://github.com/stackql/google-discovery-to-openapi + email: info@stackql.io + title: Firebase Hosting API + description: >- + The Firebase Hosting REST API enables programmatic and customizable + management and deployments to your Firebase-hosted sites. Use this REST API + to create and manage channels and sites as well as to deploy new or updated + hosting configurations and content files. + version: v1 + x-discovery-doc-revision: '20250826' + x-generated-date: '2025-08-28' +externalDocs: + url: https://firebase.google.com/docs/hosting/ +servers: + - url: https://firebasehosting.googleapis.com +components: + securitySchemes: + Oauth2: + type: oauth2 + description: Oauth 2.0 implicit authentication + flows: + implicit: + authorizationUrl: https://accounts.google.com/o/oauth2/auth + scopes: &ref_0 + https://www.googleapis.com/auth/cloud-platform: >- + See, edit, configure, and delete your Google Cloud data and see + the email address for your Google Account. + https://www.googleapis.com/auth/firebase: View and administer all your Firebase data and settings + Oauth2c: + type: oauth2 + description: Oauth 2.0 authorization code authentication + flows: + authorizationCode: + authorizationUrl: https://accounts.google.com/o/oauth2/auth + tokenUrl: https://accounts.google.com/o/oauth2/token + scopes: *ref_0 + schemas: + ListOperationsResponse: + id: ListOperationsResponse + description: The response message for Operations.ListOperations. + type: object + properties: + operations: + description: >- + A list of operations that matches the specified filter in the + request. + type: array + items: + $ref: '#/components/schemas/Operation' + nextPageToken: + description: The standard List next-page token. + type: string + Operation: + id: Operation + description: >- + This resource represents a long-running operation that is the result of + a network API call. + type: object + properties: + name: + description: >- + The server-assigned name, which is only unique within the same + service that originally returns it. If you use the default HTTP + mapping, the `name` should be a resource name ending with + `operations/{unique_id}`. + type: string + metadata: + description: >- + Service-specific metadata associated with the operation. It + typically contains progress information and common metadata such as + create time. Some services might not provide such metadata. Any + method that returns a long-running operation should document the + metadata type, if any. + type: object + additionalProperties: + type: any + description: Properties of the object. Contains field @type with type URL. + done: + description: >- + If the value is `false`, it means the operation is still in + progress. If `true`, the operation is completed, and either `error` + or `response` is available. + type: boolean + error: + description: >- + The error result of the operation in case of failure or + cancellation. + $ref: '#/components/schemas/Status' + response: + description: >- + The normal, successful response of the operation. If the original + method returns no data on success, such as `Delete`, the response is + `google.protobuf.Empty`. If the original method is standard + `Get`/`Create`/`Update`, the response should be the resource. For + other methods, the response should have the type `XxxResponse`, + where `Xxx` is the original method name. For example, if the + original method name is `TakeSnapshot()`, the inferred response type + is `TakeSnapshotResponse`. + type: object + additionalProperties: + type: any + description: Properties of the object. Contains field @type with type URL. + Status: + id: Status + description: >- + 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](https://github.com/grpc). Each `Status` message + contains three pieces of data: error code, error message, and error + details. You can find out more about this error model and how to work + with it in the [API Design + Guide](https://cloud.google.com/apis/design/errors). + type: object + properties: + code: + description: The status code, which should be an enum value of google.rpc.Code. + type: integer + format: int32 + message: + description: >- + 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 field, or localized by the client. + type: string + details: + description: >- + A list of messages that carry the error details. There is a common + set of message types for APIs to use. + type: array + items: + type: object + additionalProperties: + type: any + description: Properties of the object. Contains field @type with type URL. + Empty: + id: Empty + description: >- + A generic empty message that you can re-use to avoid defining duplicated + empty messages in your APIs. A typical example is to use it as the + request or the response type of an API method. For instance: service Foo + { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } + type: object + properties: {} + CancelOperationRequest: + id: CancelOperationRequest + description: The request message for Operations.CancelOperation. + type: object + properties: {} + CustomDomainMetadata: + id: CustomDomainMetadata + description: Metadata associated with a`CustomDomain` operation. + type: object + properties: + hostState: + description: The `HostState` of the domain name this `CustomDomain` refers to. + type: string + enumDescriptions: + - >- + Your custom domain's host state is unspecified. The message is + invalid if this is unspecified. + - >- + Your custom domain's domain name isn't associated with any IP + addresses. + - >- + Your custom domain's domain name can't be reached. Hosting + services' DNS queries to find your domain name's IP addresses + resulted in errors. See your `CustomDomain` object's `issues` + field for more details. + - >- + Your custom domain's domain name has IP addresses that don't + ultimately resolve to Hosting. + - >- + Your custom domain's domain name has IP addresses that resolve to + both Hosting and other services. To ensure consistent results, + remove `A` and `AAAA` records related to non-Hosting services. + - >- + All requests against your custom domain's domain name are served + by Hosting. If the custom domain's `OwnershipState` is also + `ACTIVE`, Hosting serves your Hosting site's content on the domain + name. + enum: + - HOST_STATE_UNSPECIFIED + - HOST_UNHOSTED + - HOST_UNREACHABLE + - HOST_MISMATCH + - HOST_CONFLICT + - HOST_ACTIVE + ownershipState: + description: >- + The `OwnershipState` of the domain name this `CustomDomain` refers + to. + type: string + enumDescriptions: + - >- + Your custom domain's ownership state is unspecified. This should + never happen. + - >- + Your custom domain's domain name has no Hosting-related ownership + records; no Firebase project has permission to act on the domain + name's behalf. + - >- + Your custom domain's domain name can't be reached. Hosting + services' DNS queries to find your domain name's ownership records + resulted in errors. See your `CustomDomain` object's `issues` + field for more details. + - >- + Your custom domain's domain name is owned by another Firebase + project. Remove the conflicting `TXT` records and replace them + with project-specific records for your current Firebase project. + - >- + Your custom domain's domain name has conflicting `TXT` records + that indicate ownership by both your current Firebase project and + another project. Remove the other project's ownership records to + grant the current project ownership. + - >- + Your custom domain's DNS records are configured correctly. Hosting + will transfer ownership of your domain to this `CustomDomain` + within 24 hours. + - >- + Your custom domain's domain name has `TXT` records that grant its + project permission to act on its behalf. + enum: + - OWNERSHIP_STATE_UNSPECIFIED + - OWNERSHIP_MISSING + - OWNERSHIP_UNREACHABLE + - OWNERSHIP_MISMATCH + - OWNERSHIP_CONFLICT + - OWNERSHIP_PENDING + - OWNERSHIP_ACTIVE + certState: + description: The `CertState` of the domain name's SSL certificate. + type: string + enumDescriptions: + - >- + The certificate's state is unspecified. The message is invalid if + this is unspecified. + - >- + The initial state of every certificate, represents Hosting's + intent to create a certificate, before requests to a Certificate + Authority are made. + - >- + Hosting is validating whether a domain name's DNS records are in a + state that allow certificate creation on its behalf. + - >- + The certificate was recently created, and needs time to propagate + in Hosting's CDN. + - >- + The certificate is active, providing secure connections for the + domain names it represents. + - >- + The certificate is expiring, all domain names on it will be given + new certificates. + - >- + The certificate has expired. Hosting can no longer serve secure + content on your domain name. + enum: + - CERT_STATE_UNSPECIFIED + - CERT_PREPARING + - CERT_VALIDATING + - CERT_PROPAGATING + - CERT_ACTIVE + - CERT_EXPIRING_SOON + - CERT_EXPIRED + liveMigrationSteps: + description: >- + A set of DNS record updates and ACME challenges that allow you to + transition domain names to Firebase Hosting with zero downtime. + These updates allow Hosting to create an SSL certificate and + establish ownership for your custom domain before Hosting begins + serving traffic on it. If your domain name is already in active use + with another provider, add one of the challenges and make the + recommended DNS updates. After adding challenges and adjusting DNS + records as necessary, wait for the `ownershipState` to be + `OWNERSHIP_ACTIVE` and the `certState` to be `CERT_ACTIVE` before + sending traffic to Hosting. + type: array + items: + $ref: '#/components/schemas/LiveMigrationStep' + quickSetupUpdates: + description: >- + A set of DNS record updates that allow Hosting to serve secure + content on your domain name. The record type determines the update's + purpose: - `A` and `AAAA`: Updates your domain name's IP addresses + so that they direct traffic to Hosting servers. - `TXT`: Updates + ownership permissions on your domain name, letting Hosting know that + your custom domain's project has permission to perform actions for + that domain name. - `CAA`: Updates your domain name's list of + authorized Certificate Authorities (CAs). Only present if you have + existing `CAA` records that prohibit Hosting's CA from minting certs + for your domain name. These updates include all DNS changes you'll + need to get started with Hosting, but, if made all at once, can + result in a brief period of downtime for your domain name--while + Hosting creates and uploads an SSL cert, for example. If you'd like + to add your domain name to Hosting without downtime, complete the + `liveMigrationSteps` first, before making the remaining updates in + this field. + $ref: '#/components/schemas/DnsUpdates' + issues: + description: >- + A list of issues that are currently preventing Hosting from + completing the operation. These are generally DNS-related issues + that Hosting encounters when querying a domain name's records or + attempting to mint an SSL certificate. + type: array + items: + $ref: '#/components/schemas/Status' + LiveMigrationStep: + id: LiveMigrationStep + description: >- + A set of updates including ACME challenges and DNS records that allow + Hosting to create an SSL certificate and establish project ownership for + your domain name before you direct traffic to Hosting servers. Use these + updates to facilitate zero downtime migrations to Hosting from other + services. After you've made the recommended updates, check your custom + domain's `ownershipState` and `certState`. To avoid downtime, they + should be `OWNERSHIP_ACTIVE` and `CERT_ACTIVE`, respectively, before you + update your `A` and `AAAA` records. + type: object + properties: + state: + description: >- + Output only. The state of the live migration step, indicates whether + you should work to complete the step now, in the future, or have + already completed it. + readOnly: true + type: string + enumDescriptions: + - >- + The step's state is unspecified. The message is invalid if this is + unspecified. + - >- + Hosting doesn't have enough information to construct the step yet. + Complete any prior steps and/or resolve this step's issue to + proceed. + - >- + The step's state is pending. Complete prior steps before working + on a `PENDING` step. + - >- + The step is incomplete. You should complete any `certVerification` + or `dnsUpdates` changes to complete it. + - >- + You've done your part to update records and present challenges as + necessary. Hosting is now completing background processes to + complete the step, e.g. minting an SSL cert for your domain name. + - >- + The step is complete. You've already made the necessary changes to + your domain and/or prior hosting service to advance to the next + step. Once all steps are complete, Hosting is ready to serve + secure content on your domain. + enum: + - STATE_UNSPECIFIED + - PREPARING + - PENDING + - INCOMPLETE + - PROCESSING + - COMPLETE + certVerification: + description: >- + Output only. A pair of ACME challenges that Hosting's Certificate + Authority (CA) can use to create an SSL cert for your domain name. + Use either the DNS or HTTP challenge; it's not necessary to provide + both. + readOnly: true + $ref: '#/components/schemas/CertVerification' + dnsUpdates: + description: >- + Output only. DNS updates to facilitate your domain's zero-downtime + migration to Hosting. + readOnly: true + $ref: '#/components/schemas/DnsUpdates' + issues: + description: Output only. Issues that prevent the current step from completing. + readOnly: true + type: array + items: + $ref: '#/components/schemas/Status' + CertVerification: + id: CertVerification + description: >- + A set of ACME challenges you can use to allow Hosting to create an SSL + certificate for your domain name before directing traffic to Hosting + servers. Use either the DNS or HTTP challenge; it's not necessary to + provide both. + type: object + properties: + dns: + description: >- + Output only. A `TXT` record to add to your DNS records that confirms + your intent to let Hosting create an SSL cert for your domain name. + readOnly: true + $ref: '#/components/schemas/DnsUpdates' + http: + description: >- + Output only. A file to add to your existing, non-Hosting hosting + service that confirms your intent to let Hosting create an SSL cert + for your domain name. + readOnly: true + $ref: '#/components/schemas/HttpUpdate' + DnsUpdates: + id: DnsUpdates + description: >- + A set of DNS record updates that you should make to allow Hosting to + serve secure content in response to requests against your domain name. + These updates present the current state of your domain name's DNS + records when Hosting last queried them, and the desired set of records + that Hosting needs to see before your custom domain can be fully active. + type: object + properties: + discovered: + description: The set of DNS records Hosting discovered when inspecting a domain. + type: array + items: + $ref: '#/components/schemas/DnsRecordSet' + desired: + description: >- + The set of DNS records Hosting needs to serve secure content on the + domain. + type: array + items: + $ref: '#/components/schemas/DnsRecordSet' + checkTime: + description: The last time Hosting checked your custom domain's DNS records. + type: string + format: google-datetime + DnsRecordSet: + id: DnsRecordSet + description: >- + A set of DNS records relevant to the setup and maintenance of a custom + domain in Firebase Hosting. + type: object + properties: + domainName: + description: Output only. The domain name the record set pertains to. + readOnly: true + type: string + checkError: + description: >- + Output only. An error Hosting services encountered when querying + your domain name's DNS records. Note: Hosting ignores `NXDOMAIN` + errors, as those generally just mean that a domain name hasn't been + set up yet. + readOnly: true + $ref: '#/components/schemas/Status' + records: + description: Output only. Records on the domain. + readOnly: true + type: array + items: + $ref: '#/components/schemas/DnsRecord' + DnsRecord: + id: DnsRecord + description: >- + DNS records are resource records that define how systems and services + should behave when handling requests for a domain name. For example, + when you add `A` records to your domain name's DNS records, you're + informing other systems (such as your users' web browsers) to contact + those IPv4 addresses to retrieve resources relevant to your domain name + (such as your Hosting site files). + type: object + properties: + domainName: + description: >- + Output only. The domain name the record pertains to, e.g. + `foo.bar.com.`. + readOnly: true + type: string + type: + description: >- + Output only. The record's type, which determines what data the + record contains. + readOnly: true + type: string + enumDescriptions: + - >- + The record's type is unspecified. The message is invalid if this + is unspecified. + - >- + An `A` record, as defined in [RFC + 1035](https://tools.ietf.org/html/rfc1035). A records determine + which IPv4 addresses a domain name directs traffic towards. + - >- + A `CNAME` record, as defined in [RFC + 1035](https://tools.ietf.org/html/rfc1035). `CNAME` or Canonical + Name records map a domain name to a different, canonical domain + name. If a `CNAME` record is present, it should be the only record + on the domain name. + - >- + A `TXT` record, as defined in [RFC + 1035](https://tools.ietf.org/html/rfc1035). `TXT` records hold + arbitrary text data on a domain name. Hosting uses `TXT` records + to establish which Firebase Project has permission to act on a + domain name. + - >- + An AAAA record, as defined in [RFC + 3596](https://tools.ietf.org/html/rfc3596) AAAA records determine + which IPv6 addresses a domain name directs traffic towards. + - >- + A CAA record, as defined in [RFC + 6844](https://tools.ietf.org/html/rfc6844). CAA, or Certificate + Authority Authorization, records determine which Certificate + Authorities (SSL certificate minting organizations) are authorized + to mint a certificate for the domain name. Firebase Hosting uses + `pki.goog` as its primary CA. CAA records cascade. A CAA record on + `foo.com` also applies to `bar.foo.com` unless `bar.foo.com` has + its own set of CAA records. CAA records are optional. If a domain + name and its parents have no CAA records, all CAs are authorized + to mint certificates on its behalf. In general, Hosting only asks + you to modify CAA records when doing so is required to unblock SSL + cert creation. + enum: + - TYPE_UNSPECIFIED + - A + - CNAME + - TXT + - AAAA + - CAA + rdata: + description: >- + Output only. The data of the record. The meaning of the value + depends on record type: - A and AAAA: IP addresses for the domain + name. - CNAME: Another domain to check for records. - TXT: Arbitrary + text strings associated with the domain name. Hosting uses TXT + records to determine which Firebase projects have permission to act + on the domain name's behalf. - CAA: The record's flags, tag, and + value, e.g. `0 issue "pki.goog"`. + readOnly: true + type: string + requiredAction: + description: >- + Output only. An enum that indicates the a required action for this + record. + readOnly: true + type: string + enumDescriptions: + - No action necessary. + - Add this record to your DNS records. + - Remove this record from your DNS records. + enum: + - NONE + - ADD + - REMOVE + HttpUpdate: + id: HttpUpdate + description: >- + A file you can add to your existing, non-Hosting hosting service that + confirms your intent to allow Hosting's Certificate Authorities to + create an SSL certificate for your domain. + type: object + properties: + path: + description: Output only. The path to the file. + readOnly: true + type: string + desired: + description: Output only. A text string to serve at the path. + readOnly: true + type: string + discovered: + description: >- + Output only. Whether Hosting was able to find the required file + contents on the specified path during its last check. + readOnly: true + type: string + lastCheckTime: + description: >- + Output only. The last time Hosting systems checked for the file + contents. + readOnly: true + type: string + format: google-datetime + checkError: + description: >- + Output only. An error encountered during the last contents check. If + null, the check completed successfully. + readOnly: true + $ref: '#/components/schemas/Status' + parameters: + access_token: + description: OAuth access token. + in: query + name: access_token + schema: + type: string + alt: + description: Data format for response. + in: query + name: alt + schema: + type: string + enum: + - json + - media + - proto + callback: + description: JSONP + in: query + name: callback + schema: + type: string + fields: + description: Selector specifying which fields to include in a partial response. + in: query + name: fields + schema: + type: string + key: + description: >- + API key. Your API key identifies your project and provides you with API + access, quota, and reports. Required unless you provide an OAuth 2.0 + token. + in: query + name: key + schema: + type: string + oauth_token: + description: OAuth 2.0 token for the current user. + in: query + name: oauth_token + schema: + type: string + prettyPrint: + description: Returns response with indentations and line breaks. + in: query + name: prettyPrint + schema: + type: boolean + quotaUser: + description: >- + Available to use for quota purposes for server-side applications. Can be + any arbitrary string assigned to a user, but should not exceed 40 + characters. + in: query + name: quotaUser + schema: + type: string + upload_protocol: + description: Upload protocol for media (e.g. "raw", "multipart"). + in: query + name: upload_protocol + schema: + type: string + uploadType: + description: Legacy upload protocol for media (e.g. "media", "multipart"). + in: query + name: uploadType + schema: + type: string + _.xgafv: + description: V1 error format. + in: query + name: $.xgafv + schema: + type: string + enum: + - '1' + - '2' + x-stackQL-resources: + operations: + id: firebase.hosting.operations + name: operations + title: Operations + methods: + list: + operation: + $ref: '#/paths/~1v1~1operations/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.operations + delete: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1sites~1{sitesId}~1customDomains~1{customDomainsId}~1operations~1{operationsId}/delete + response: + mediaType: application/json + openAPIDocKey: '200' + cancel: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1sites~1{sitesId}~1customDomains~1{customDomainsId}~1operations~1{operationsId}:cancel/post + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/operations/methods/list' + insert: [] + update: [] + replace: [] + delete: + - $ref: '#/components/x-stackQL-resources/operations/methods/delete' +paths: + /v1/operations: + parameters: &ref_1 + - $ref: '#/components/parameters/access_token' + - $ref: '#/components/parameters/alt' + - $ref: '#/components/parameters/callback' + - $ref: '#/components/parameters/fields' + - $ref: '#/components/parameters/key' + - $ref: '#/components/parameters/oauth_token' + - $ref: '#/components/parameters/prettyPrint' + - $ref: '#/components/parameters/quotaUser' + - $ref: '#/components/parameters/upload_protocol' + - $ref: '#/components/parameters/uploadType' + - $ref: '#/components/parameters/_.xgafv' + get: + description: >- + Lists operations that match the specified filter in the request. If the + server doesn't support this method, it returns `UNIMPLEMENTED`. + operationId: firebasehosting.operations.list + security: [] + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/ListOperationsResponse' + parameters: + - in: query + name: filter + schema: + type: string + - in: query + name: pageSize + schema: + type: integer + format: int32 + - in: query + name: pageToken + schema: + type: string + /v1/operations/{operationsId}: + parameters: *ref_1 + delete: + description: >- + Deletes a long-running operation. This method indicates that the client + is no longer interested in the operation result. It does not cancel the + operation. If the server doesn't support this method, it returns + `google.rpc.Code.UNIMPLEMENTED`. + operationId: firebasehosting.operations.delete + security: [] + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Empty' + parameters: + - in: path + name: operationsId + required: true + schema: + type: string + /v1/operations/{operationsId}:cancel: + parameters: *ref_1 + post: + description: >- + Starts asynchronous cancellation on a long-running operation. The server + makes a best effort to cancel the operation, but success is not + guaranteed. If the server doesn't support this method, it returns + `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation + or other methods to check whether the cancellation succeeded or whether + the operation completed despite cancellation. On successful + cancellation, the operation is not deleted; instead, it becomes an + operation with an Operation.error value with a google.rpc.Status.code of + `1`, corresponding to `Code.CANCELLED`. + operationId: firebasehosting.operations.cancel + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CancelOperationRequest' + security: [] + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Empty' + parameters: + - in: path + name: operationsId + required: true + schema: + type: string + /v1/projects/{projectsId}/sites/{sitesId}/customDomains/{customDomainsId}/operations/{operationsId}: + parameters: *ref_1 + delete: + description: >- + DeleteOperation is a part of the google.longrunning.Operations + interface, but is not implemented for CustomDomain resources. + operationId: firebasehosting.projects.sites.customDomains.operations.delete + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Empty' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: sitesId + required: true + schema: + type: string + - in: path + name: customDomainsId + required: true + schema: + type: string + - in: path + name: operationsId + required: true + schema: + type: string + /v1/projects/{projectsId}/sites/{sitesId}/customDomains/{customDomainsId}/operations/{operationsId}:cancel: + parameters: *ref_1 + post: + description: >- + CancelOperation is a part of the google.longrunning.Operations + interface, but is not implemented for CustomDomain resources. + operationId: firebasehosting.projects.sites.customDomains.operations.cancel + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CancelOperationRequest' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Empty' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: sitesId + required: true + schema: + type: string + - in: path + name: customDomainsId + required: true + schema: + type: string + - in: path + name: operationsId + required: true + schema: + type: string diff --git a/providers/src/firebase/v00.00.00000/services/firebaseml.yaml b/providers/src/firebase/v00.00.00000/services/ml.yaml similarity index 59% rename from providers/src/firebase/v00.00.00000/services/firebaseml.yaml rename to providers/src/firebase/v00.00.00000/services/ml.yaml index 5823ba95..eb1548c7 100644 --- a/providers/src/firebase/v00.00.00000/services/firebaseml.yaml +++ b/providers/src/firebase/v00.00.00000/services/ml.yaml @@ -7,112 +7,185 @@ info: title: Firebase ML API description: Access custom machine learning models hosted via Firebase ML. version: v1 - x-discovery-doc-revision: '20230104' - x-generated-date: '2023-01-06' + x-discovery-doc-revision: '20250826' + x-generated-date: '2025-08-28' externalDocs: url: https://firebase.google.com servers: - url: https://firebaseml.googleapis.com components: + securitySchemes: + Oauth2: + type: oauth2 + description: Oauth 2.0 implicit authentication + flows: + implicit: + authorizationUrl: https://accounts.google.com/o/oauth2/auth + scopes: &ref_0 + https://www.googleapis.com/auth/cloud-platform: >- + See, edit, configure, and delete your Google Cloud data and see + the email address for your Google Account. + Oauth2c: + type: oauth2 + description: Oauth 2.0 authorization code authentication + flows: + authorizationCode: + authorizationUrl: https://accounts.google.com/o/oauth2/auth + tokenUrl: https://accounts.google.com/o/oauth2/token + scopes: *ref_0 schemas: + ListOperationsResponse: + id: ListOperationsResponse + description: The response message for Operations.ListOperations. + type: object + properties: + operations: + description: >- + A list of operations that matches the specified filter in the + request. + type: array + items: + $ref: '#/components/schemas/Operation' + nextPageToken: + description: The standard List next-page token. + type: string Operation: + id: Operation + description: >- + This resource represents a long-running operation that is the result of + a network API call. + type: object properties: - error: - $ref: '#/components/schemas/Status' - description: The error result of the operation in case of failure or cancellation. - response: + name: + description: >- + The server-assigned name, which is only unique within the same + service that originally returns it. If you use the default HTTP + mapping, the `name` should be a resource name ending with + `operations/{unique_id}`. + type: string + metadata: + description: >- + Service-specific metadata associated with the operation. It + typically contains progress information and common metadata such as + create time. Some services might not provide such metadata. Any + method that returns a long-running operation should document the + metadata type, if any. type: object additionalProperties: type: any description: Properties of the object. Contains field @type with type URL. - description: The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`. done: - description: If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available. + description: >- + If the value is `false`, it means the operation is still in + progress. If `true`, the operation is completed, and either `error` + or `response` is available. type: boolean - name: - description: The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`. - type: string - metadata: + error: + description: >- + The error result of the operation in case of failure or + cancellation. + $ref: '#/components/schemas/Status' + response: + description: >- + The normal, successful response of the operation. If the original + method returns no data on success, such as `Delete`, the response is + `google.protobuf.Empty`. If the original method is standard + `Get`/`Create`/`Update`, the response should be the resource. For + other methods, the response should have the type `XxxResponse`, + where `Xxx` is the original method name. For example, if the + original method name is `TakeSnapshot()`, the inferred response type + is `TakeSnapshotResponse`. + type: object additionalProperties: - description: Properties of the object. Contains field @type with type URL. type: any - description: Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any. - type: object - description: This resource represents a long-running operation that is the result of a network API call. - type: object - id: Operation - ListOperationsResponse: - id: ListOperationsResponse - description: The response message for Operations.ListOperations. + description: Properties of the object. Contains field @type with type URL. + Status: + id: Status + description: >- + 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](https://github.com/grpc). Each `Status` message + contains three pieces of data: error code, error message, and error + details. You can find out more about this error model and how to work + with it in the [API Design + Guide](https://cloud.google.com/apis/design/errors). type: object properties: - nextPageToken: - description: The standard List next-page token. + code: + description: The status code, which should be an enum value of google.rpc.Code. + type: integer + format: int32 + message: + description: >- + 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 field, or localized by the client. type: string - operations: + details: + description: >- + A list of messages that carry the error details. There is a common + set of message types for APIs to use. type: array - description: A list of operations that matches the specified filter in the request. items: - $ref: '#/components/schemas/Operation' - ModelOperationMetadata: - id: ModelOperationMetadata - properties: - basicOperationStatus: - enum: - - BASIC_OPERATION_STATUS_UNSPECIFIED - - BASIC_OPERATION_STATUS_UPLOADING - - BASIC_OPERATION_STATUS_VERIFYING - type: string - enumDescriptions: - - The status is unspecified - - The model file is being uploaded - - The model file is being verified - name: - description: The name of the model we are creating/updating The name must have the form `projects/{project_id}/models/{model_id}` - type: string - description: This is returned in the longrunning operations for create/update. - type: object + type: object + additionalProperties: + type: any + description: Properties of the object. Contains field @type with type URL. Empty: - type: object id: Empty - properties: {} - description: 'A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }' - CancelOperationRequest: + description: >- + A generic empty message that you can re-use to avoid defining duplicated + empty messages in your APIs. A typical example is to use it as the + request or the response type of an API method. For instance: service Foo + { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } type: object properties: {} + CancelOperationRequest: id: CancelOperationRequest description: The request message for Operations.CancelOperation. - Status: type: object - id: Status + properties: {} + ModelOperationMetadata: + id: ModelOperationMetadata + description: This is returned in the longrunning operations for create/update. + type: object properties: - details: - type: array - description: A list of messages that carry the error details. There is a common set of message types for APIs to use. - items: - additionalProperties: - description: Properties of the object. Contains field @type with type URL. - type: any - type: object - message: + name: + description: >- + The name of the model we are creating/updating The name must have + the form `projects/{project_id}/models/{model_id}` type: string - description: 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 field, or localized by the client. - code: - description: The status code, which should be an enum value of google.rpc.Code. - format: int32 - type: integer - description: '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](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).' + basicOperationStatus: + type: string + enumDescriptions: + - The status is unspecified + - The model file is being uploaded + - The model file is being verified + enum: + - BASIC_OPERATION_STATUS_UNSPECIFIED + - BASIC_OPERATION_STATUS_UPLOADING + - BASIC_OPERATION_STATUS_VERIFYING parameters: - upload_protocol: - description: Upload protocol for media (e.g. "raw", "multipart"). + access_token: + description: OAuth access token. in: query - name: upload_protocol + name: access_token schema: type: string - quotaUser: - description: Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. + alt: + description: Data format for response. in: query - name: quotaUser + name: alt + schema: + type: string + enum: + - json + - media + - proto + callback: + description: JSONP + in: query + name: callback schema: type: string fields: @@ -121,47 +194,40 @@ components: name: fields schema: type: string - oauth_token: - description: OAuth 2.0 token for the current user. + key: + description: >- + API key. Your API key identifies your project and provides you with API + access, quota, and reports. Required unless you provide an OAuth 2.0 + token. in: query - name: oauth_token + name: key schema: type: string - _.xgafv: - description: V1 error format. + oauth_token: + description: OAuth 2.0 token for the current user. in: query - name: _.xgafv + name: oauth_token schema: type: string - enum: - - '1' - - '2' prettyPrint: description: Returns response with indentations and line breaks. in: query name: prettyPrint schema: type: boolean - key: - description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token. - in: query - name: key - schema: - type: string - alt: - description: Data format for response. + quotaUser: + description: >- + Available to use for quota purposes for server-side applications. Can be + any arbitrary string assigned to a user, but should not exceed 40 + characters. in: query - name: alt + name: quotaUser schema: type: string - enum: - - json - - media - - proto - access_token: - description: OAuth access token. + upload_protocol: + description: Upload protocol for media (e.g. "raw", "multipart"). in: query - name: access_token + name: upload_protocol schema: type: string uploadType: @@ -170,82 +236,69 @@ components: name: uploadType schema: type: string - callback: - description: JSONP + _.xgafv: + description: V1 error format. in: query - name: callback + name: $.xgafv schema: type: string - securitySchemes: - Oauth2: - type: oauth2 - description: Oauth 2.0 implicit authentication - flows: - implicit: - authorizationUrl: https://accounts.google.com/o/oauth2/auth - scopes: &ref_0 - https://www.googleapis.com/auth/cloud-platform: See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account. - Oauth2c: - type: oauth2 - description: Oauth 2.0 authorization code authentication - flows: - authorizationCode: - authorizationUrl: https://accounts.google.com/o/oauth2/auth - tokenUrl: https://accounts.google.com/o/oauth2/token - scopes: *ref_0 + enum: + - '1' + - '2' x-stackQL-resources: operations: - id: firebase.firebaseml.operations + id: firebase.ml.operations name: operations title: Operations methods: - cancel: + operations_list: operation: - $ref: '#/paths/~1v1~1operations~1{operationsId}:cancel/post' + $ref: '#/paths/~1v1~1operations/get' response: mediaType: application/json openAPIDocKey: '200' - list: + objectKey: $.operations + operations_delete: operation: - $ref: '#/paths/~1v1~1operations/get' + $ref: '#/paths/~1v1~1operations~1{operationsId}/delete' response: mediaType: application/json openAPIDocKey: '200' - delete: + operations_cancel: operation: - $ref: '#/paths/~1v1~1operations~1{operationsId}/delete' + $ref: '#/paths/~1v1~1operations~1{operationsId}:cancel/post' response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/operations/methods/list' + - $ref: >- + #/components/x-stackQL-resources/operations/methods/operations_list insert: [] update: [] + replace: [] delete: - - $ref: '#/components/x-stackQL-resources/operations/methods/delete' + - $ref: >- + #/components/x-stackQL-resources/operations/methods/operations_delete paths: - /v1/operations/{operationsId}:cancel: + /v1/operations: parameters: &ref_1 - - $ref: '#/components/parameters/upload_protocol' - - $ref: '#/components/parameters/quotaUser' + - $ref: '#/components/parameters/access_token' + - $ref: '#/components/parameters/alt' + - $ref: '#/components/parameters/callback' - $ref: '#/components/parameters/fields' + - $ref: '#/components/parameters/key' - $ref: '#/components/parameters/oauth_token' - - $ref: '#/components/parameters/_.xgafv' - $ref: '#/components/parameters/prettyPrint' - - $ref: '#/components/parameters/key' - - $ref: '#/components/parameters/alt' - - $ref: '#/components/parameters/access_token' + - $ref: '#/components/parameters/quotaUser' + - $ref: '#/components/parameters/upload_protocol' - $ref: '#/components/parameters/uploadType' - - $ref: '#/components/parameters/callback' - post: - description: Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`. - operationId: firebaseml.operations.cancel - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CancelOperationRequest' + - $ref: '#/components/parameters/_.xgafv' + get: + description: >- + Lists operations that match the specified filter in the request. If the + server doesn't support this method, it returns `UNIMPLEMENTED`. + operationId: firebaseml.operations.list security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -257,20 +310,30 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Empty' + $ref: '#/components/schemas/ListOperationsResponse' parameters: - - in: path - name: operationsId - required: true + - in: query + name: filter schema: type: string - x-stackQL-resource: operations - x-stackQL-verb: exec - /v1/operations: + - in: query + name: pageSize + schema: + type: integer + format: int32 + - in: query + name: pageToken + schema: + type: string + /v1/operations/{operationsId}: parameters: *ref_1 - get: - description: 'Lists operations that match the specified filter in the request. If the server doesn''t support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `"/v1/{name=users/*}/operations"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.' - operationId: firebaseml.operations.list + delete: + description: >- + Deletes a long-running operation. This method indicates that the client + is no longer interested in the operation result. It does not cancel the + operation. If the server doesn't support this method, it returns + `google.rpc.Code.UNIMPLEMENTED`. + operationId: firebaseml.operations.delete security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -282,27 +345,32 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ListOperationsResponse' + $ref: '#/components/schemas/Empty' parameters: - - in: query - name: filter - schema: - type: string - - in: query - name: pageToken + - in: path + name: operationsId + required: true schema: type: string - - in: query - name: pageSize - schema: - type: integer - x-stackQL-resource: operations - x-stackQL-verb: select - /v1/operations/{operationsId}: + /v1/operations/{operationsId}:cancel: parameters: *ref_1 - delete: - description: Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. - operationId: firebaseml.operations.delete + post: + description: >- + Starts asynchronous cancellation on a long-running operation. The server + makes a best effort to cancel the operation, but success is not + guaranteed. If the server doesn't support this method, it returns + `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation + or other methods to check whether the cancellation succeeded or whether + the operation completed despite cancellation. On successful + cancellation, the operation is not deleted; instead, it becomes an + operation with an Operation.error value with a google.rpc.Status.code of + `1`, corresponding to `Code.CANCELLED`. + operationId: firebaseml.operations.cancel + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CancelOperationRequest' security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -321,5 +389,3 @@ paths: required: true schema: type: string - x-stackQL-resource: operations - x-stackQL-verb: delete diff --git a/providers/src/firebase/v00.00.00000/services/firebaserules.yaml b/providers/src/firebase/v00.00.00000/services/rules.yaml similarity index 66% rename from providers/src/firebase/v00.00.00000/services/firebaserules.yaml rename to providers/src/firebase/v00.00.00000/services/rules.yaml index 3ad3cec7..69a3fce9 100644 --- a/providers/src/firebase/v00.00.00000/services/firebaserules.yaml +++ b/providers/src/firebase/v00.00.00000/services/rules.yaml @@ -5,94 +5,75 @@ info: url: https://github.com/stackql/google-discovery-to-openapi email: info@stackql.io title: Firebase Rules API - description: 'Creates and manages rules that determine when a Firebase Rules-enabled service should permit a request. ' + description: >- + Creates and manages rules that determine when a Firebase Rules-enabled + service should permit a request. version: v1 - x-discovery-doc-revision: '20221228' - x-generated-date: '2023-01-06' + x-discovery-doc-revision: '20250727' + x-generated-date: '2025-08-28' externalDocs: url: https://firebase.google.com/docs/storage/security servers: - url: https://firebaserules.googleapis.com components: + securitySchemes: + Oauth2: + type: oauth2 + description: Oauth 2.0 implicit authentication + flows: + implicit: + authorizationUrl: https://accounts.google.com/o/oauth2/auth + scopes: &ref_0 + https://www.googleapis.com/auth/cloud-platform: >- + See, edit, configure, and delete your Google Cloud data and see + the email address for your Google Account. + https://www.googleapis.com/auth/firebase: View and administer all your Firebase data and settings + https://www.googleapis.com/auth/firebase.readonly: View all your Firebase data and settings + Oauth2c: + type: oauth2 + description: Oauth 2.0 authorization code authentication + flows: + authorizationCode: + authorizationUrl: https://accounts.google.com/o/oauth2/auth + tokenUrl: https://accounts.google.com/o/oauth2/token + scopes: *ref_0 schemas: - TestCase: - id: TestCase - description: '`TestCase` messages provide the request context and an expectation as to whether the given context will be allowed or denied. Test cases may specify the `request`, `resource`, and `function_mocks` to mock a function call to a service-provided function. The `request` object represents context present at request-time. The `resource` is the value of the target resource as it appears in persistent storage before the request is executed.' - properties: - request: - type: any - description: 'Request context. The exact format of the request context is service-dependent. See the appropriate service documentation for information about the supported fields and types on the request. Minimally, all services support the following fields and types: Request field | Type ---------------|----------------- auth.uid | `string` auth.token | `map` headers | `map` method | `string` params | `map` path | `string` time | `google.protobuf.Timestamp` If the request value is not well-formed for the service, the request will be rejected as an invalid argument.' - expressionReportLevel: - description: Specifies what should be included in the response. - enumDescriptions: - - No level has been specified. Defaults to "NONE" behavior. - - Do not include any additional information. - - Include detailed reporting on expressions evaluated. - - Only include the expressions that were visited during evaluation. - enum: - - LEVEL_UNSPECIFIED - - NONE - - FULL - - VISITED - type: string - functionMocks: - items: - $ref: '#/components/schemas/FunctionMock' - description: Optional function mocks for service-defined functions. If not set, any service defined function is expected to return an error, which may or may not influence the test outcome. - type: array - pathEncoding: - enum: - - ENCODING_UNSPECIFIED - - URL_ENCODED - - PLAIN - type: string - description: Specifies whether paths (such as request.path) are encoded and how. - enumDescriptions: - - No encoding has been specified. Defaults to "URL_ENCODED" behavior. - - Treats path segments as URL encoded but with non-encoded separators ("/"). This is the default behavior. - - Treats total path as non-URL encoded e.g. raw. - expectation: - enum: - - EXPECTATION_UNSPECIFIED - - ALLOW - - DENY - enumDescriptions: - - Unspecified expectation. - - Expect an allowed result. - - Expect a denied result. - type: string - description: Test expectation. - resource: - description: Optional resource value as it appears in persistent storage before the request is fulfilled. The resource type depends on the `request.path` value. - type: any + TestRulesetRequest: + id: TestRulesetRequest + description: The request for FirebaseRulesService.TestRuleset. type: object - ListReleasesResponse: properties: - releases: - items: - $ref: '#/components/schemas/Release' - type: array - description: List of `Release` instances. - nextPageToken: - description: The pagination token to retrieve the next page of results. If the value is empty, no further results remain. - type: string - id: ListReleasesResponse - description: The response for FirebaseRulesService.ListReleases. - type: object - TestSuite: + source: + description: >- + Optional. Optional `Source` to be checked for correctness. This + field must not be set when the resource name refers to a `Ruleset`. + $ref: '#/components/schemas/Source' + testSuite: + description: >- + Required. The tests to execute against the `Source`. When `Source` + is provided inline, the test cases will only be run if the `Source` + is syntactically and semantically valid. Inline `TestSuite` to run. + $ref: '#/components/schemas/TestSuite' + Source: + id: Source + description: >- + `Source` is one or more `File` messages comprising a logical set of + rules. type: object - id: TestSuite - description: '`TestSuite` is a collection of `TestCase` instances that validate the logical correctness of a `Ruleset`. The `TestSuite` may be referenced in-line within a `TestRuleset` invocation or as part of a `Release` object as a pre-release check.' properties: - testCases: - description: Collection of test cases associated with the `TestSuite`. - items: - $ref: '#/components/schemas/TestCase' + files: + description: Required. `File` set constituting the `Source` bundle. type: array + items: + $ref: '#/components/schemas/File' File: - type: object id: File + description: '`File` containing source content.' + type: object properties: + content: + description: Required. Textual Content. + type: string name: description: Required. File name. type: string @@ -100,364 +81,557 @@ components: description: Fingerprint (e.g. github sha) associated with the `File`. type: string format: byte - content: - description: Required. Textual Content. - type: string - description: '`File` containing source content.' - Empty: - id: Empty - properties: {} - description: 'A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }' + TestSuite: + id: TestSuite + description: >- + `TestSuite` is a collection of `TestCase` instances that validate the + logical correctness of a `Ruleset`. The `TestSuite` may be referenced + in-line within a `TestRuleset` invocation or as part of a `Release` + object as a pre-release check. type: object - GetReleaseExecutableResponse: - description: The response for FirebaseRulesService.GetReleaseExecutable + properties: + testCases: + description: Collection of test cases associated with the `TestSuite`. + type: array + items: + $ref: '#/components/schemas/TestCase' + TestCase: + id: TestCase + description: >- + `TestCase` messages provide the request context and an expectation as to + whether the given context will be allowed or denied. Test cases may + specify the `request`, `resource`, and `function_mocks` to mock a + function call to a service-provided function. The `request` object + represents context present at request-time. The `resource` is the value + of the target resource as it appears in persistent storage before the + request is executed. type: object - id: GetReleaseExecutableResponse properties: - executable: - format: byte - description: Executable view of the `Ruleset` referenced by the `Release`. - type: string - rulesetName: + expectation: + description: Test expectation. type: string - description: '`Ruleset` name associated with the `Release` executable.' - language: - enum: - - LANGUAGE_UNSPECIFIED - - FIREBASE_RULES - - EVENT_FLOW_TRIGGERS enumDescriptions: - - Language unspecified. Defaults to FIREBASE_RULES. - - Firebase Rules language. - - Event Flow triggers. - description: '`Language` used to generate the executable bytes.' - type: string - executableVersion: + - Unspecified expectation. + - Expect an allowed result. + - Expect a denied result. + enum: + - EXPECTATION_UNSPECIFIED + - ALLOW + - DENY + request: + description: >- + Request context. The exact format of the request context is + service-dependent. See the appropriate service documentation for + information about the supported fields and types on the request. + Minimally, all services support the following fields and types: + Request field | Type ---------------|----------------- auth.uid | + `string` auth.token | `map` headers | `map` method | `string` params + | `map` path | `string` time | `google.protobuf.Timestamp` If the + request value is not well-formed for the service, the request will + be rejected as an invalid argument. + type: any + resource: + description: >- + Optional resource value as it appears in persistent storage before + the request is fulfilled. The resource type depends on the + `request.path` value. + type: any + functionMocks: + description: >- + Optional function mocks for service-defined functions. If not set, + any service defined function is expected to return an error, which + may or may not influence the test outcome. + type: array + items: + $ref: '#/components/schemas/FunctionMock' + pathEncoding: + description: Specifies whether paths (such as request.path) are encoded and how. type: string - description: The Rules runtime version of the executable. enumDescriptions: - - Executable format unspecified. Defaults to FIREBASE_RULES_EXECUTABLE_V1 - - 'Firebase Rules syntax ''rules2'' executable versions: Custom AST for use with Java clients.' - - CEL-based executable for use with C++ clients. + - >- + No encoding has been specified. Defaults to "URL_ENCODED" + behavior. + - >- + Treats path segments as URL encoded but with non-encoded + separators ("/"). This is the default behavior. + - Treats total path as non-URL encoded e.g. raw. enum: - - RELEASE_EXECUTABLE_VERSION_UNSPECIFIED - - FIREBASE_RULES_EXECUTABLE_V1 - - FIREBASE_RULES_EXECUTABLE_V2 - syncTime: - type: string - format: google-datetime - description: Optional, indicates the freshness of the result. The response is guaranteed to be the latest within an interval up to the sync_time (inclusive). - updateTime: - format: google-datetime + - ENCODING_UNSPECIFIED + - URL_ENCODED + - PLAIN + expressionReportLevel: + description: Specifies what should be included in the response. type: string - description: Timestamp for the most recent `Release.update_time`. - Release: + enumDescriptions: + - No level has been specified. Defaults to "NONE" behavior. + - Do not include any additional information. + - Include detailed reporting on expressions evaluated. + - Only include the expressions that were visited during evaluation. + enum: + - LEVEL_UNSPECIFIED + - NONE + - FULL + - VISITED + FunctionMock: + id: FunctionMock + description: >- + Mock function definition. Mocks must refer to a function declared by the + target service. The type of the function args and result will be + inferred at test time. If either the arg or result values are not + compatible with function type declaration, the request will be + considered invalid. More than one `FunctionMock` may be provided for a + given function name so long as the `Arg` matchers are distinct. There + may be only one function for a given overload where all `Arg` values are + `Arg.any_value`. type: object - id: Release - description: '`Release` is a named reference to a `Ruleset`. Once a `Release` refers to a `Ruleset`, rules-enabled services will be able to enforce the `Ruleset`.' properties: - name: - description: 'Required. Format: `projects/{project_id}/releases/{release_id}`' - type: string - createTime: - description: Output only. Time the release was created. - type: string - format: google-datetime - readOnly: true - updateTime: - format: google-datetime - readOnly: true - description: Output only. Time the release was updated. - type: string - rulesetName: + function: + description: >- + The name of the function. The function name must match one provided + by a service declaration. type: string - description: Required. Name of the `Ruleset` referred to by this `Release`. The `Ruleset` must exist for the `Release` to be created. - Ruleset: - description: '`Ruleset` is an immutable copy of `Source` with a globally unique identifier and a creation time.' + args: + description: >- + The list of `Arg` values to match. The order in which the arguments + are provided is the order in which they must appear in the function + invocation. + type: array + items: + $ref: '#/components/schemas/Arg' + result: + description: The mock result of the function call. + $ref: '#/components/schemas/Result' + Arg: + id: Arg + description: Arg matchers for the mock function. type: object properties: - createTime: - description: Output only. Time the `Ruleset` was created. - type: string - format: google-datetime - readOnly: true - metadata: - description: Output only. The metadata for this ruleset. - $ref: '#/components/schemas/Metadata' - readOnly: true - name: - type: string - readOnly: true - description: 'Output only. Name of the `Ruleset`. The ruleset_id is auto generated by the service. Format: `projects/{project_id}/rulesets/{ruleset_id}`' - source: - description: Required. `Source` for the `Ruleset`. - $ref: '#/components/schemas/Source' - id: Ruleset - ExpressionReport: + exactValue: + description: Argument exactly matches value provided. + type: any + anyValue: + description: Argument matches any value provided. + $ref: '#/components/schemas/Empty' + Empty: + id: Empty + description: >- + A generic empty message that you can re-use to avoid defining duplicated + empty messages in your APIs. A typical example is to use it as the + request or the response type of an API method. For instance: service Foo + { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } + type: object + properties: {} + Result: + id: Result + description: Possible result values from the function mock invocation. type: object properties: - values: - items: - $ref: '#/components/schemas/ValueCount' - description: Values that this expression evaluated to when encountered. + value: + description: >- + The result is an actual value. The type of the value must match that + of the type declared by the service. + type: any + undefined: + description: The result is undefined, meaning the result could not be computed. + $ref: '#/components/schemas/Empty' + TestRulesetResponse: + id: TestRulesetResponse + description: The response for FirebaseRulesService.TestRuleset. + type: object + properties: + issues: + description: >- + Syntactic and semantic `Source` issues of varying severity. Issues + of `ERROR` severity will prevent tests from executing. type: array - children: items: - $ref: '#/components/schemas/ExpressionReport' + $ref: '#/components/schemas/Issue' + testResults: + description: >- + The set of test results given the test cases in the `TestSuite`. The + results will appear in the same order as the test cases appear in + the `TestSuite`. type: array - description: Subexpressions + items: + $ref: '#/components/schemas/TestResult' + Issue: + id: Issue + description: Issues include warnings, errors, and deprecation notices. + type: object + properties: sourcePosition: - description: Position of expression in original rules source. + description: Position of the issue in the `Source`. $ref: '#/components/schemas/SourcePosition' - description: Describes where in a file an expression is found and what it was evaluated to over the course of its use. - id: ExpressionReport - ValueCount: - id: ValueCount - description: Tuple for how many times an Expression was evaluated to a particular ExpressionValue. + description: + description: Short error description. + type: string + severity: + description: The severity of the issue. + type: string + enumDescriptions: + - An unspecified severity. + - >- + Deprecation issue for statements and method that may no longer be + supported or maintained. + - 'Warnings such as: unused variables.' + - 'Errors such as: unmatched curly braces or variable redefinition.' + enum: + - SEVERITY_UNSPECIFIED + - DEPRECATION + - WARNING + - ERROR + SourcePosition: + id: SourcePosition + description: >- + Position in the `Source` content including its line, column number, and + an index of the `File` in the `Source` message. Used for debug purposes. type: object properties: - count: + fileName: + description: Name of the `File`. + type: string + line: + description: Line number of the source fragment. 1-based. + type: integer + format: int32 + column: + description: First column on the source line associated with the source fragment. + type: integer + format: int32 + currentOffset: + description: Start position relative to the beginning of the file. + type: integer + format: int32 + endOffset: + description: End position relative to the beginning of the file. type: integer - description: The amount of times that expression returned. format: int32 - value: - type: any - description: The return value of the expression - Metadata: - properties: - services: - type: array - description: Services that this ruleset has declarations for (e.g., "cloud.firestore"). There may be 0+ of these. - items: - type: string - description: Metadata for a Ruleset. - type: object - id: Metadata TestResult: - type: object id: TestResult + description: >- + Test result message containing the state of the test as well as a + description and source position for test failures. + type: object properties: - expressionReports: - type: array - items: - $ref: '#/components/schemas/ExpressionReport' - description: The mapping from expression in the ruleset AST to the values they were evaluated to. Partially-nested to mirror AST structure. Note that this field is actually tracking expressions and not permission statements in contrast to the "visited_expressions" field above. Literal expressions are omitted. - functionCalls: - type: array - items: - $ref: '#/components/schemas/FunctionCall' - description: The set of function calls made to service-defined methods. Function calls are included in the order in which they are encountered during evaluation, are provided for both mocked and unmocked functions, and included on the response regardless of the test `state`. state: - enum: - - STATE_UNSPECIFIED - - SUCCESS - - FAILURE description: State of the test. + type: string enumDescriptions: - Test state is not set. - Test is a success. - Test is a failure. - type: string + enum: + - STATE_UNSPECIFIED + - SUCCESS + - FAILURE debugMessages: + description: >- + Debug messages related to test execution issues encountered during + evaluation. Debug messages may be related to too many or too few + invocations of function mocks or to runtime errors that occur during + evaluation. For example: ```Unable to read variable [name: + "resource"]``` type: array items: type: string - description: 'Debug messages related to test execution issues encountered during evaluation. Debug messages may be related to too many or too few invocations of function mocks or to runtime errors that occur during evaluation. For example: ```Unable to read variable [name: "resource"]```' + errorPosition: + description: >- + Position in the `Source` or `Ruleset` where the principle runtime + error occurs. Evaluation of an expression may result in an error. + Rules are deny by default, so a `DENY` expectation when an error is + generated is valid. When there is a `DENY` with an error, the + `SourcePosition` is returned. E.g. `error_position { line: 19 + column: 37 }` + $ref: '#/components/schemas/SourcePosition' + functionCalls: + description: >- + The set of function calls made to service-defined methods. Function + calls are included in the order in which they are encountered during + evaluation, are provided for both mocked and unmocked functions, and + included on the response regardless of the test `state`. + type: array + items: + $ref: '#/components/schemas/FunctionCall' visitedExpressions: + description: >- + The set of visited permission expressions for a given test. This + returns the positions and evaluation results of all visited + permission expressions which were relevant to the test case, e.g. + ``` match /path { allow read if: } ``` For a detailed report of the + intermediate evaluation states, see the `expression_reports` field + type: array items: $ref: '#/components/schemas/VisitedExpression' - description: 'The set of visited permission expressions for a given test. This returns the positions and evaluation results of all visited permission expressions which were relevant to the test case, e.g. ``` match /path { allow read if: } ``` For a detailed report of the intermediate evaluation states, see the `expression_reports` field' + expressionReports: + description: >- + The mapping from expression in the ruleset AST to the values they + were evaluated to. Partially-nested to mirror AST structure. Note + that this field is actually tracking expressions and not permission + statements in contrast to the "visited_expressions" field above. + Literal expressions are omitted. type: array - errorPosition: - description: 'Position in the `Source` or `Ruleset` where the principle runtime error occurs. Evaluation of an expression may result in an error. Rules are deny by default, so a `DENY` expectation when an error is generated is valid. When there is a `DENY` with an error, the `SourcePosition` is returned. E.g. `error_position { line: 19 column: 37 }`' - $ref: '#/components/schemas/SourcePosition' - description: Test result message containing the state of the test as well as a description and source position for test failures. - TestRulesetRequest: + items: + $ref: '#/components/schemas/ExpressionReport' + FunctionCall: + id: FunctionCall + description: >- + Represents a service-defined function call that was invoked during test + execution. type: object - description: The request for FirebaseRulesService.TestRuleset. - id: TestRulesetRequest properties: - testSuite: - description: The tests to execute against the `Source`. When `Source` is provided inline, the test cases will only be run if the `Source` is syntactically and semantically valid. Inline `TestSuite` to run. - $ref: '#/components/schemas/TestSuite' - source: - $ref: '#/components/schemas/Source' - description: Optional `Source` to be checked for correctness. This field must not be set when the resource name refers to a `Ruleset`. + function: + description: Name of the function invoked. + type: string + args: + description: The arguments that were provided to the function. + type: array + items: + type: any VisitedExpression: - type: object id: VisitedExpression - description: Store the position and access outcome for an expression visited in rules. + description: >- + Store the position and access outcome for an expression visited in + rules. + type: object properties: sourcePosition: + description: >- + Position in the `Source` or `Ruleset` where an expression was + visited. $ref: '#/components/schemas/SourcePosition' - description: Position in the `Source` or `Ruleset` where an expression was visited. value: description: The evaluated value for the visited expression, e.g. true/false type: any - Source: + ExpressionReport: + id: ExpressionReport + description: >- + Describes where in a file an expression is found and what it was + evaluated to over the course of its use. type: object properties: - files: + sourcePosition: + description: Position of expression in original rules source. + $ref: '#/components/schemas/SourcePosition' + values: + description: Values that this expression evaluated to when encountered. + type: array items: - $ref: '#/components/schemas/File' - description: Required. `File` set constituting the `Source` bundle. + $ref: '#/components/schemas/ValueCount' + children: + description: Subexpressions type: array - id: Source - description: '`Source` is one or more `File` messages comprising a logical set of rules.' - UpdateReleaseRequest: - properties: - release: - $ref: '#/components/schemas/Release' - description: Required. `Release` to update. - updateMask: - format: google-fieldmask - type: string - description: Specifies which fields to update. - id: UpdateReleaseRequest - description: The request for FirebaseRulesService.UpdateRelease. + items: + $ref: '#/components/schemas/ExpressionReport' + ValueCount: + id: ValueCount + description: >- + Tuple for how many times an Expression was evaluated to a particular + ExpressionValue. type: object - FunctionMock: properties: - args: - description: The list of `Arg` values to match. The order in which the arguments are provided is the order in which they must appear in the function invocation. - items: - $ref: '#/components/schemas/Arg' - type: array - result: - description: The mock result of the function call. - $ref: '#/components/schemas/Result' - function: - type: string - description: The name of the function. The function name must match one provided by a service declaration. - id: FunctionMock - description: Mock function definition. Mocks must refer to a function declared by the target service. The type of the function args and result will be inferred at test time. If either the arg or result values are not compatible with function type declaration, the request will be considered invalid. More than one `FunctionMock` may be provided for a given function name so long as the `Arg` matchers are distinct. There may be only one function for a given overload where all `Arg` values are `Arg.any_value`. + value: + description: The return value of the expression + type: any + count: + description: The amount of times that expression returned. + type: integer + format: int32 + Ruleset: + id: Ruleset + description: >- + `Ruleset` is an immutable copy of `Source` with a globally unique + identifier and a creation time. type: object - Issue: properties: - severity: - enum: - - SEVERITY_UNSPECIFIED - - DEPRECATION - - WARNING - - ERROR - description: The severity of the issue. + name: + description: >- + Output only. Name of the `Ruleset`. The ruleset_id is auto generated + by the service. Format: + `projects/{project_id}/rulesets/{ruleset_id}` + readOnly: true + type: string + source: + description: Required. `Source` for the `Ruleset`. + $ref: '#/components/schemas/Source' + createTime: + description: Output only. Time the `Ruleset` was created. + readOnly: true type: string - enumDescriptions: - - An unspecified severity. - - Deprecation issue for statements and method that may no longer be supported or maintained. - - 'Warnings such as: unused variables.' - - 'Errors such as: unmatched curly braces or variable redefinition.' - sourcePosition: - $ref: '#/components/schemas/SourcePosition' - description: Position of the issue in the `Source`. - description: + format: google-datetime + metadata: + description: Output only. The metadata for this ruleset. + readOnly: true + $ref: '#/components/schemas/Metadata' + attachmentPoint: + description: >- + Immutable. Intended resource to which this Ruleset should be + released. May be left blank to signify the resource associated with + the default release. Expected format: + firestore.googleapis.com/projects//databases/ type: string - description: Short error description. - description: Issues include warnings, errors, and deprecation notices. - type: object - id: Issue - Arg: - description: Arg matchers for the mock function. + Metadata: + id: Metadata + description: Metadata for a Ruleset. type: object - id: Arg properties: - exactValue: - type: any - description: Argument exactly matches value provided. - anyValue: - description: Argument matches any value provided. - $ref: '#/components/schemas/Empty' + services: + description: >- + Services that this ruleset has declarations for (e.g., + "cloud.firestore"). There may be 0+ of these. + type: array + items: + type: string ListRulesetsResponse: id: ListRulesetsResponse - type: object description: The response for FirebaseRulesService.ListRulesets. + type: object properties: - nextPageToken: - type: string - description: The pagination token to retrieve the next page of results. If the value is empty, no further results remain. rulesets: + description: List of `Ruleset` instances. type: array items: $ref: '#/components/schemas/Ruleset' - description: List of `Ruleset` instances. - SourcePosition: - id: SourcePosition + nextPageToken: + description: >- + The pagination token to retrieve the next page of results. If the + value is empty, no further results remain. + type: string + Release: + id: Release + description: >- + `Release` is a named reference to a `Ruleset`. Once a `Release` refers + to a `Ruleset`, rules-enabled services will be able to enforce the + `Ruleset`. type: object properties: - fileName: - description: Name of the `File`. + name: + description: 'Required. Format: `projects/{project_id}/releases/{release_id}`' type: string - currentOffset: - format: int32 - description: Start position relative to the beginning of the file. - type: integer - endOffset: - description: End position relative to the beginning of the file. - format: int32 - type: integer - column: - format: int32 - type: integer - description: First column on the source line associated with the source fragment. - line: - type: integer - format: int32 - description: Line number of the source fragment. 1-based. - description: Position in the `Source` content including its line, column number, and an index of the `File` in the `Source` message. Used for debug purposes. - Result: - id: Result - description: Possible result values from the function mock invocation. + rulesetName: + description: >- + Required. Name of the `Ruleset` referred to by this `Release`. The + `Ruleset` must exist for the `Release` to be created. + type: string + createTime: + description: Output only. Time the release was created. + readOnly: true + type: string + format: google-datetime + updateTime: + description: Output only. Time the release was updated. + readOnly: true + type: string + format: google-datetime + UpdateReleaseRequest: + id: UpdateReleaseRequest + description: The request for FirebaseRulesService.UpdateRelease. type: object properties: - undefined: - $ref: '#/components/schemas/Empty' - description: The result is undefined, meaning the result could not be computed. - value: - description: The result is an actual value. The type of the value must match that of the type declared by the service. - type: any - TestRulesetResponse: + release: + description: Required. `Release` to update. + $ref: '#/components/schemas/Release' + updateMask: + description: Optional. Specifies which fields to update. + type: string + format: google-fieldmask + ListReleasesResponse: + id: ListReleasesResponse + description: The response for FirebaseRulesService.ListReleases. type: object properties: - testResults: - items: - $ref: '#/components/schemas/TestResult' - description: The set of test results given the test cases in the `TestSuite`. The results will appear in the same order as the test cases appear in the `TestSuite`. - type: array - issues: + releases: + description: List of `Release` instances. type: array - description: Syntactic and semantic `Source` issues of varying severity. Issues of `ERROR` severity will prevent tests from executing. - items: - $ref: '#/components/schemas/Issue' - description: The response for FirebaseRulesService.TestRuleset. - id: TestRulesetResponse - FunctionCall: - properties: - args: - description: The arguments that were provided to the function. items: - type: any - type: array - function: - description: Name of the function invoked. + $ref: '#/components/schemas/Release' + nextPageToken: + description: >- + The pagination token to retrieve the next page of results. If the + value is empty, no further results remain. type: string - id: FunctionCall - description: Represents a service-defined function call that was invoked during test execution. + GetReleaseExecutableResponse: + id: GetReleaseExecutableResponse + description: The response for FirebaseRulesService.GetReleaseExecutable type: object + properties: + executable: + description: Executable view of the `Ruleset` referenced by the `Release`. + type: string + format: byte + language: + description: '`Language` used to generate the executable bytes.' + type: string + enumDescriptions: + - Language unspecified. Defaults to FIREBASE_RULES. + - Firebase Rules language. + - Event Flow triggers. + enum: + - LANGUAGE_UNSPECIFIED + - FIREBASE_RULES + - EVENT_FLOW_TRIGGERS + rulesetName: + description: '`Ruleset` name associated with the `Release` executable.' + type: string + updateTime: + description: Timestamp for the most recent `Release.update_time`. + type: string + format: google-datetime + executableVersion: + description: The Rules runtime version of the executable. + type: string + enumDescriptions: + - >- + Executable format unspecified. Defaults to + FIREBASE_RULES_EXECUTABLE_V1 + - >- + Firebase Rules syntax 'rules2' executable versions: Custom AST for + use with Java clients. + - CEL-based executable for use with C++ clients. + enum: + - RELEASE_EXECUTABLE_VERSION_UNSPECIFIED + - FIREBASE_RULES_EXECUTABLE_V1 + - FIREBASE_RULES_EXECUTABLE_V2 + syncTime: + description: >- + Optional, indicates the freshness of the result. The response is + guaranteed to be the latest within an interval up to the sync_time + (inclusive). + type: string + format: google-datetime parameters: + access_token: + description: OAuth access token. + in: query + name: access_token + schema: + type: string + alt: + description: Data format for response. + in: query + name: alt + schema: + type: string + enum: + - json + - media + - proto callback: description: JSONP in: query name: callback schema: type: string - access_token: - description: OAuth access token. + fields: + description: Selector specifying which fields to include in a partial response. in: query - name: access_token + name: fields schema: type: string key: - description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token. + description: >- + API key. Your API key identifies your project and provides you with API + access, quota, and reports. Required unless you provide an OAuth 2.0 + token. in: query name: key schema: @@ -468,244 +642,203 @@ components: name: oauth_token schema: type: string - upload_protocol: - description: Upload protocol for media (e.g. "raw", "multipart"). - in: query - name: upload_protocol - schema: - type: string - uploadType: - description: Legacy upload protocol for media (e.g. "media", "multipart"). + prettyPrint: + description: Returns response with indentations and line breaks. in: query - name: uploadType + name: prettyPrint schema: - type: string + type: boolean quotaUser: - description: Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. + description: >- + Available to use for quota purposes for server-side applications. Can be + any arbitrary string assigned to a user, but should not exceed 40 + characters. in: query name: quotaUser schema: type: string - fields: - description: Selector specifying which fields to include in a partial response. + upload_protocol: + description: Upload protocol for media (e.g. "raw", "multipart"). in: query - name: fields + name: upload_protocol schema: type: string - prettyPrint: - description: Returns response with indentations and line breaks. - in: query - name: prettyPrint - schema: - type: boolean - alt: - description: Data format for response. + uploadType: + description: Legacy upload protocol for media (e.g. "media", "multipart"). in: query - name: alt + name: uploadType schema: type: string - enum: - - json - - media - - proto _.xgafv: description: V1 error format. in: query - name: _.xgafv + name: $.xgafv schema: type: string enum: - '1' - '2' - securitySchemes: - Oauth2: - type: oauth2 - description: Oauth 2.0 implicit authentication - flows: - implicit: - authorizationUrl: https://accounts.google.com/o/oauth2/auth - scopes: &ref_0 - https://www.googleapis.com/auth/firebase: View and administer all your Firebase data and settings - https://www.googleapis.com/auth/cloud-platform: See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account. - https://www.googleapis.com/auth/firebase.readonly: View all your Firebase data and settings - Oauth2c: - type: oauth2 - description: Oauth 2.0 authorization code authentication - flows: - authorizationCode: - authorizationUrl: https://accounts.google.com/o/oauth2/auth - tokenUrl: https://accounts.google.com/o/oauth2/token - scopes: *ref_0 x-stackQL-resources: - releases: - id: firebase.firebaserules.releases - name: releases - title: Releases + projects: + id: firebase.rules.projects + name: projects + title: Projects + methods: + test: + operation: + $ref: '#/paths/~1v1~1projects~1{projectsId}:test/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: [] + insert: [] + update: [] + replace: [] + delete: [] + rulesets: + id: firebase.rules.rulesets + name: rulesets + title: Rulesets methods: - projects_releases_patch: - operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1releases~1{releasesId}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_releases_get: + create: operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1releases~1{releasesId}/get' + $ref: '#/paths/~1v1~1projects~1{projectsId}~1rulesets/post' response: mediaType: application/json openAPIDocKey: '200' - projects_releases_delete: + list: operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1releases~1{releasesId}/delete' + $ref: '#/paths/~1v1~1projects~1{projectsId}~1rulesets/get' response: mediaType: application/json openAPIDocKey: '200' - projects_releases_list: + objectKey: $.rulesets + get: operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1releases/get' + $ref: '#/paths/~1v1~1projects~1{projectsId}~1rulesets~1{rulesetsId}/get' response: mediaType: application/json openAPIDocKey: '200' - projects_releases_create: + delete: operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1releases/post' + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1rulesets~1{rulesetsId}/delete response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/releases/methods/projects_releases_get' - - $ref: '#/components/x-stackQL-resources/releases/methods/projects_releases_list' + - $ref: '#/components/x-stackQL-resources/rulesets/methods/get' + - $ref: '#/components/x-stackQL-resources/rulesets/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/releases/methods/projects_releases_create' + - $ref: '#/components/x-stackQL-resources/rulesets/methods/create' update: [] + replace: [] delete: - - $ref: '#/components/x-stackQL-resources/releases/methods/projects_releases_delete' - releases__executable: - id: firebase.firebaserules.releases__executable - name: releases__executable - title: Releases__executable + - $ref: '#/components/x-stackQL-resources/rulesets/methods/delete' + releases: + id: firebase.rules.releases + name: releases + title: Releases methods: - projects_releases_getExecutable: + create: operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1releases~1{releasesId}:getExecutable/get' + $ref: '#/paths/~1v1~1projects~1{projectsId}~1releases/post' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/releases__executable/methods/projects_releases_getExecutable' - insert: [] - update: [] - delete: [] - rulesets: - id: firebase.firebaserules.rulesets - name: rulesets - title: Rulesets - methods: - projects_rulesets_create: + list: operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1rulesets/post' + $ref: '#/paths/~1v1~1projects~1{projectsId}~1releases/get' response: mediaType: application/json openAPIDocKey: '200' - projects_rulesets_list: + objectKey: $.releases + patch: operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1rulesets/get' + $ref: '#/paths/~1v1~1projects~1{projectsId}~1releases~1{releasesId}/patch' response: mediaType: application/json openAPIDocKey: '200' - projects_rulesets_get: + get: operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1rulesets~1{rulesetsId}/get' + $ref: '#/paths/~1v1~1projects~1{projectsId}~1releases~1{releasesId}/get' response: mediaType: application/json openAPIDocKey: '200' - projects_rulesets_delete: + delete: operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}~1rulesets~1{rulesetsId}/delete' + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1releases~1{releasesId}/delete response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/rulesets/methods/projects_rulesets_get' - - $ref: '#/components/x-stackQL-resources/rulesets/methods/projects_rulesets_list' + - $ref: '#/components/x-stackQL-resources/releases/methods/get' + - $ref: '#/components/x-stackQL-resources/releases/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/rulesets/methods/projects_rulesets_create' - update: [] + - $ref: '#/components/x-stackQL-resources/releases/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/releases/methods/patch' + replace: [] delete: - - $ref: '#/components/x-stackQL-resources/rulesets/methods/projects_rulesets_delete' - projects: - id: firebase.firebaserules.projects - name: projects - title: Projects + - $ref: '#/components/x-stackQL-resources/releases/methods/delete' + releases_executable: + id: firebase.rules.releases_executable + name: releases_executable + title: Releases_executable methods: - test: + get_executable: operation: - $ref: '#/paths/~1v1~1projects~1{projectsId}:test/post' + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1releases~1{releasesId}:getExecutable/get response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: - select: [] + select: + - $ref: >- + #/components/x-stackQL-resources/releases_executable/methods/get_executable insert: [] update: [] + replace: [] delete: [] paths: - /v1/projects/{projectsId}/releases/{releasesId}: + /v1/projects/{projectsId}:test: parameters: &ref_1 - - $ref: '#/components/parameters/callback' - $ref: '#/components/parameters/access_token' + - $ref: '#/components/parameters/alt' + - $ref: '#/components/parameters/callback' + - $ref: '#/components/parameters/fields' - $ref: '#/components/parameters/key' - $ref: '#/components/parameters/oauth_token' + - $ref: '#/components/parameters/prettyPrint' + - $ref: '#/components/parameters/quotaUser' - $ref: '#/components/parameters/upload_protocol' - $ref: '#/components/parameters/uploadType' - - $ref: '#/components/parameters/quotaUser' - - $ref: '#/components/parameters/fields' - - $ref: '#/components/parameters/prettyPrint' - - $ref: '#/components/parameters/alt' - $ref: '#/components/parameters/_.xgafv' - patch: - description: Update a `Release` via PATCH. Only updates to `ruleset_name` will be honored. `Release` rename is not supported. To create a `Release` use the CreateRelease method. - operationId: firebaserules.projects.releases.patch + post: + description: >- + Test `Source` for syntactic and semantic correctness. Issues present, if + any, will be returned to the caller with a description, severity, and + source location. The test method may be executed with `Source` or a + `Ruleset` name. Passing `Source` is useful for unit testing new rules. + Passing a `Ruleset` name is useful for regression testing an existing + rule. The following is an example of `Source` that permits users to + upload images to a bucket bearing their user id and matching the correct + metadata: _*Example*_ // Users are allowed to subscribe and unsubscribe + to the blog. service firebase.storage { match + /users/{userId}/images/{imageName} { allow write: if userId == + request.auth.uid && (imageName.matches('*.png$') || + imageName.matches('*.jpg$')) && resource.mimeType.matches('^image/') } } + operationId: firebaserules.projects.test requestBody: content: application/json: schema: - $ref: '#/components/schemas/UpdateReleaseRequest' - security: - - Oauth2: - - https://www.googleapis.com/auth/cloud-platform - Oauth2c: - - https://www.googleapis.com/auth/cloud-platform - - Oauth2: - - https://www.googleapis.com/auth/firebase - Oauth2c: - - https://www.googleapis.com/auth/firebase - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/Release' - parameters: - - in: path - name: projectsId - required: true - schema: - type: string - - in: path - name: releasesId - required: true - schema: - type: string - x-stackQL-resource: releases - x-stackQL-verb: exec - get: - description: Get a `Release` by name. - operationId: firebaserules.projects.releases.get + $ref: '#/components/schemas/TestRulesetRequest' security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -725,23 +858,28 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Release' + $ref: '#/components/schemas/TestRulesetResponse' parameters: - in: path name: projectsId required: true schema: type: string - - in: path - name: releasesId - required: true - schema: - type: string - x-stackQL-resource: releases - x-stackQL-verb: select - delete: - description: Delete a `Release` by resource name. - operationId: firebaserules.projects.releases.delete + /v1/projects/{projectsId}/rulesets: + parameters: *ref_1 + post: + description: >- + Create a `Ruleset` from `Source`. The `Ruleset` is given a unique + generated name which is returned to the caller. `Source` containing + syntactic or semantics errors will result in an error response + indicating the first error encountered. For a detailed view of `Source` + issues, use TestRuleset. + operationId: firebaserules.projects.rulesets.create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Ruleset' security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -757,25 +895,19 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Empty' + $ref: '#/components/schemas/Ruleset' parameters: - in: path name: projectsId required: true schema: type: string - - in: path - name: releasesId - required: true - schema: - type: string - x-stackQL-resource: releases - x-stackQL-verb: delete - /v1/projects/{projectsId}/releases: - parameters: *ref_1 get: - description: List the `Release` values for a project. This list may optionally be filtered by `Release` name, `Ruleset` name, `TestSuite` name, or any combination thereof. - operationId: firebaserules.projects.releases.list + description: >- + List `Ruleset` metadata only and optionally filter the results by + `Ruleset` name. The full `Source` contents of a `Ruleset` may be + retrieved with GetRuleset. + operationId: firebaserules.projects.rulesets.list security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -795,7 +927,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ListReleasesResponse' + $ref: '#/components/schemas/ListRulesetsResponse' parameters: - in: path name: projectsId @@ -810,20 +942,16 @@ paths: name: pageSize schema: type: integer + format: int32 - in: query name: pageToken schema: type: string - x-stackQL-resource: releases - x-stackQL-verb: select - post: - description: Create a `Release`. Release names should reflect the developer's deployment practices. For example, the release name may include the environment name, application name, application version, or any other name meaningful to the developer. Once a `Release` refers to a `Ruleset`, the rules can be enforced by Firebase Rules-enabled services. More than one `Release` may be 'live' concurrently. Consider the following three `Release` names for `projects/foo` and the `Ruleset` to which they refer. Release Name -> Ruleset Name * projects/foo/releases/prod -> projects/foo/rulesets/uuid123 * projects/foo/releases/prod/beta -> projects/foo/rulesets/uuid123 * projects/foo/releases/prod/v23 -> projects/foo/rulesets/uuid456 The relationships reflect a `Ruleset` rollout in progress. The `prod` and `prod/beta` releases refer to the same `Ruleset`. However, `prod/v23` refers to a new `Ruleset`. The `Ruleset` reference for a `Release` may be updated using the UpdateRelease method. - operationId: firebaserules.projects.releases.create - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Release' + /v1/projects/{projectsId}/rulesets/{rulesetsId}: + parameters: *ref_1 + get: + description: Get a `Ruleset` by name including the full `Source` contents. + operationId: firebaserules.projects.rulesets.get security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -833,26 +961,33 @@ paths: - https://www.googleapis.com/auth/firebase Oauth2c: - https://www.googleapis.com/auth/firebase + - Oauth2: + - https://www.googleapis.com/auth/firebase.readonly + Oauth2c: + - https://www.googleapis.com/auth/firebase.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/Release' + $ref: '#/components/schemas/Ruleset' parameters: - in: path name: projectsId required: true schema: type: string - x-stackQL-resource: releases - x-stackQL-verb: insert - /v1/projects/{projectsId}/releases/{releasesId}:getExecutable: - parameters: *ref_1 - get: - description: Get the `Release` executable to use when enforcing rules. - operationId: firebaserules.projects.releases.getExecutable + - in: path + name: rulesetsId + required: true + schema: + type: string + delete: + description: >- + Delete a `Ruleset` by resource name. If the `Ruleset` is referenced by a + `Release` the operation will fail. + operationId: firebaserules.projects.rulesets.delete security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -862,17 +997,13 @@ paths: - https://www.googleapis.com/auth/firebase Oauth2c: - https://www.googleapis.com/auth/firebase - - Oauth2: - - https://www.googleapis.com/auth/firebase.readonly - Oauth2c: - - https://www.googleapis.com/auth/firebase.readonly responses: '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/GetReleaseExecutableResponse' + $ref: '#/components/schemas/Empty' parameters: - in: path name: projectsId @@ -880,26 +1011,35 @@ paths: schema: type: string - in: path - name: releasesId + name: rulesetsId required: true schema: type: string - - in: query - name: executableVersion - schema: - type: string - x-stackQL-resource: releases__executable - x-stackQL-verb: select - /v1/projects/{projectsId}/rulesets: + /v1/projects/{projectsId}/releases: parameters: *ref_1 post: - description: Create a `Ruleset` from `Source`. The `Ruleset` is given a unique generated name which is returned to the caller. `Source` containing syntactic or semantics errors will result in an error response indicating the first error encountered. For a detailed view of `Source` issues, use TestRuleset. - operationId: firebaserules.projects.rulesets.create + description: >- + Create a `Release`. Release names should reflect the developer's + deployment practices. For example, the release name may include the + environment name, application name, application version, or any other + name meaningful to the developer. Once a `Release` refers to a + `Ruleset`, the rules can be enforced by Firebase Rules-enabled services. + More than one `Release` may be 'live' concurrently. Consider the + following three `Release` names for `projects/foo` and the `Ruleset` to + which they refer. Release Name -> Ruleset Name * + projects/foo/releases/prod -> projects/foo/rulesets/uuid123 * + projects/foo/releases/prod/beta -> projects/foo/rulesets/uuid123 * + projects/foo/releases/prod/v23 -> projects/foo/rulesets/uuid456 The + relationships reflect a `Ruleset` rollout in progress. The `prod` and + `prod/beta` releases refer to the same `Ruleset`. However, `prod/v23` + refers to a new `Ruleset`. The `Ruleset` reference for a `Release` may + be updated using the UpdateRelease method. + operationId: firebaserules.projects.releases.create requestBody: content: application/json: schema: - $ref: '#/components/schemas/Ruleset' + $ref: '#/components/schemas/Release' security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -915,18 +1055,19 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Ruleset' + $ref: '#/components/schemas/Release' parameters: - in: path name: projectsId required: true schema: type: string - x-stackQL-resource: rulesets - x-stackQL-verb: insert get: - description: List `Ruleset` metadata only and optionally filter the results by `Ruleset` name. The full `Source` contents of a `Ruleset` may be retrieved with GetRuleset. - operationId: firebaserules.projects.rulesets.list + description: >- + List the `Release` values for a project. This list may optionally be + filtered by `Release` name, `Ruleset` name, `TestSuite` name, or any + combination thereof. + operationId: firebaserules.projects.releases.list security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -946,7 +1087,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ListRulesetsResponse' + $ref: '#/components/schemas/ListReleasesResponse' parameters: - in: path name: projectsId @@ -957,21 +1098,58 @@ paths: name: filter schema: type: string - - in: query - name: pageToken - schema: - type: string - in: query name: pageSize schema: type: integer - x-stackQL-resource: rulesets - x-stackQL-verb: select - /v1/projects/{projectsId}/rulesets/{rulesetsId}: + format: int32 + - in: query + name: pageToken + schema: + type: string + /v1/projects/{projectsId}/releases/{releasesId}: parameters: *ref_1 + patch: + description: >- + Update a `Release` via PATCH. Only updates to `ruleset_name` will be + honored. `Release` rename is not supported. To create a `Release` use + the CreateRelease method. + operationId: firebaserules.projects.releases.patch + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateReleaseRequest' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Release' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: releasesId + required: true + schema: + type: string get: - description: Get a `Ruleset` by name including the full `Source` contents. - operationId: firebaserules.projects.rulesets.get + description: Get a `Release` by name. + operationId: firebaserules.projects.releases.get security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -991,7 +1169,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Ruleset' + $ref: '#/components/schemas/Release' parameters: - in: path name: projectsId @@ -999,15 +1177,13 @@ paths: schema: type: string - in: path - name: rulesetsId + name: releasesId required: true schema: type: string - x-stackQL-resource: rulesets - x-stackQL-verb: select delete: - description: Delete a `Ruleset` by resource name. If the `Ruleset` is referenced by a `Release` the operation will fail. - operationId: firebaserules.projects.rulesets.delete + description: Delete a `Release` by resource name. + operationId: firebaserules.projects.releases.delete security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -1031,22 +1207,15 @@ paths: schema: type: string - in: path - name: rulesetsId + name: releasesId required: true schema: type: string - x-stackQL-resource: rulesets - x-stackQL-verb: delete - /v1/projects/{projectsId}:test: + /v1/projects/{projectsId}/releases/{releasesId}:getExecutable: parameters: *ref_1 - post: - description: 'Test `Source` for syntactic and semantic correctness. Issues present, if any, will be returned to the caller with a description, severity, and source location. The test method may be executed with `Source` or a `Ruleset` name. Passing `Source` is useful for unit testing new rules. Passing a `Ruleset` name is useful for regression testing an existing rule. The following is an example of `Source` that permits users to upload images to a bucket bearing their user id and matching the correct metadata: _*Example*_ // Users are allowed to subscribe and unsubscribe to the blog. service firebase.storage { match /users/{userId}/images/{imageName} { allow write: if userId == request.auth.uid && (imageName.matches(''*.png$'') || imageName.matches(''*.jpg$'')) && resource.mimeType.matches(''^image/'') } }' - operationId: firebaserules.projects.test - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TestRulesetRequest' + get: + description: Get the `Release` executable to use when enforcing rules. + operationId: firebaserules.projects.releases.getExecutable security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -1066,12 +1235,19 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TestRulesetResponse' + $ref: '#/components/schemas/GetReleaseExecutableResponse' parameters: - in: path name: projectsId required: true schema: type: string - x-stackQL-resource: projects - x-stackQL-verb: exec + - in: path + name: releasesId + required: true + schema: + type: string + - in: query + name: executableVersion + schema: + type: string diff --git a/providers/src/firebase/v00.00.00000/services/firebasestorage.yaml b/providers/src/firebase/v00.00.00000/services/storage.yaml similarity index 55% rename from providers/src/firebase/v00.00.00000/services/firebasestorage.yaml rename to providers/src/firebase/v00.00.00000/services/storage.yaml index f3cdaa29..4acf48c8 100644 --- a/providers/src/firebase/v00.00.00000/services/firebasestorage.yaml +++ b/providers/src/firebase/v00.00.00000/services/storage.yaml @@ -5,165 +5,152 @@ info: url: https://github.com/stackql/google-discovery-to-openapi email: info@stackql.io title: Cloud Storage for Firebase API - description: The Cloud Storage for Firebase API enables programmatic management of Cloud Storage buckets for use in Firebase projects + description: >- + The Cloud Storage for Firebase API enables programmatic management of Cloud + Storage buckets for use in Firebase projects version: v1beta - x-discovery-doc-revision: '20221209' - x-generated-date: '2023-01-06' + x-discovery-doc-revision: '20250822' + x-generated-date: '2025-08-28' externalDocs: url: https://firebase.google.com/docs/storage servers: - url: https://firebasestorage.googleapis.com components: + securitySchemes: + Oauth2: + type: oauth2 + description: Oauth 2.0 implicit authentication + flows: + implicit: + authorizationUrl: https://accounts.google.com/o/oauth2/auth + scopes: &ref_0 + https://www.googleapis.com/auth/cloud-platform: >- + See, edit, configure, and delete your Google Cloud data and see + the email address for your Google Account. + https://www.googleapis.com/auth/firebase: View and administer all your Firebase data and settings + Oauth2c: + type: oauth2 + description: Oauth 2.0 authorization code authentication + flows: + authorizationCode: + authorizationUrl: https://accounts.google.com/o/oauth2/auth + tokenUrl: https://accounts.google.com/o/oauth2/token + scopes: *ref_0 schemas: - AddFirebaseRequest: - description: The request used to link a Google Cloud Storage bucket to a Firebase project. - properties: {} - id: AddFirebaseRequest - type: object Bucket: id: Bucket description: A storage bucket and its relation to a parent Firebase project. type: object properties: name: - description: Resource name of the bucket. + description: Output only. Resource name of the bucket. + readOnly: true type: string - GoogleFirebaseStorageControlplaneV1betaMigrateLocationDestructivelyMetadata: + ListBucketsResponse: + id: ListBucketsResponse + description: The response returned by `ListBuckets`. + type: object properties: - createTime: + buckets: + description: The list of linked buckets. + type: array + items: + $ref: '#/components/schemas/Bucket' + nextPageToken: + description: >- + A token that can be sent as `page_token` to retrieve the next page. + If this field is omitted, there are no subsequent pages. type: string - description: The time the LRO was created. - format: google-datetime - state: + DefaultBucket: + id: DefaultBucket + description: >- + Spark tier-eligible Cloud Storage bucket. One per project. This resource + exists if the underlying Cloud Storage bucket exists and it is linked to + your Firebase project. See https://firebase.google.com/pricing for + pricing details. + type: object + properties: + name: + description: Resource name of the default bucket. type: string - enumDescriptions: - - Unspecified state. Should not be used. - - The MigrateLocationDestructively request has passed precondition checks and the bucket migration will begin soon. - - Generating a unique bucket name, storing the source -> temp mapping in Spanner, and actually creating the temporary bucket via Bigstore. - - The first STS transfer to move all objects from the source bucket to the temp bucket is underway. - - The source bucket is being emptied and deleted. - - The source bucket is being recreated in the new location. - - The second STS transfer to move all objects from the temp bucket to the final bucket is underway. - - The temp bucket is being emptied and deleted. - - All stages of the migration have completed and the operation has been marked done and updated with a response. - - The migration failed at some stage and it is not possible to continue retrying that stage. Manual recovery may be needed. Rollback is either impossible at this stage, or has been attempted and failed. - - The migration has encountered a permanent failure and is now being rolled back so that the source bucket is restored to its original state. - - The migration has been successfully rolled back. - description: The current state of the migration. - enum: - - STATE_UNSPECIFIED - - PENDING - - CREATING_TEMP_BUCKET - - TRANSFERRING_TO_TEMP - - DELETING_SOURCE_BUCKET - - CREATING_DESTINATION_BUCKET - - TRANSFERRING_TO_DESTINATION - - DELETING_TEMP_BUCKET - - SUCCEEDED - - FAILED - - ROLLING_BACK - - ROLLED_BACK - lastUpdateTime: + location: + description: Immutable. Location of the default bucket. + type: string + bucket: + description: Output only. Underlying bucket resource. + readOnly: true + $ref: '#/components/schemas/Bucket' + storageClass: + description: >- + Immutable. Storage class of the default bucket. Supported values are + available at + https://cloud.google.com/storage/docs/storage-classes#classes. type: string - format: google-datetime - description: The time the LRO was last updated. - type: object - description: Metadata for MigrateLocationDestructively LRO. - id: GoogleFirebaseStorageControlplaneV1betaMigrateLocationDestructivelyMetadata Empty: - description: 'A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }' id: Empty + description: >- + A generic empty message that you can re-use to avoid defining duplicated + empty messages in your APIs. A typical example is to use it as the + request or the response type of an API method. For instance: service Foo + { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } type: object properties: {} - ListBucketsResponse: - properties: - nextPageToken: - type: string - description: A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages. - buckets: - items: - $ref: '#/components/schemas/Bucket' - description: The list of linked buckets. - type: array - id: ListBucketsResponse + AddFirebaseRequest: + id: AddFirebaseRequest + description: >- + The request used to link a Google Cloud Storage bucket to a Firebase + project. type: object - description: The response returned by `ListBuckets`. + properties: {} RemoveFirebaseRequest: id: RemoveFirebaseRequest - properties: {} - description: The request used to unlink a Google Cloud Storage bucket from a Firebase project. - type: object - GoogleFirebaseStorageControlplaneV1alphaMigrateLocationDestructivelyMetadata: - description: Metadata for MigrateLocationDestructively LRO. - id: GoogleFirebaseStorageControlplaneV1alphaMigrateLocationDestructivelyMetadata - properties: - createTime: - format: google-datetime - type: string - description: The time the LRO was created. - state: - enumDescriptions: - - Unspecified state. Should not be used. - - The MigrateLocationDestructively request has passed precondition checks and the bucket migration will begin soon. - - Generating a unique bucket name, storing the source -> temp mapping in Spanner, and actually creating the temporary bucket via Bigstore. - - The first STS transfer to move all objects from the source bucket to the temp bucket is underway. - - The source bucket is being emptied and deleted. - - The source bucket is being recreated in the new location. - - The second STS transfer to move all objects from the temp bucket to the final bucket is underway. - - The temp bucket is being emptied and deleted. - - All stages of the migration have completed and the operation has been marked done and updated with a response. - - The migration failed at some stage and it is not possible to continue retrying that stage. Manual recovery may be needed. Rollback is either impossible at this stage, or has been attempted and failed. - - The migration has encountered a permanent failure and is now being rolled back so that the source bucket is restored to its original state. - - The migration has been successfully rolled back. - description: The current state of the migration. - type: string - enum: - - STATE_UNSPECIFIED - - PENDING - - CREATING_TEMP_BUCKET - - TRANSFERRING_TO_TEMP - - DELETING_SOURCE_BUCKET - - CREATING_DESTINATION_BUCKET - - TRANSFERRING_TO_DESTINATION - - DELETING_TEMP_BUCKET - - SUCCEEDED - - FAILED - - ROLLING_BACK - - ROLLED_BACK - lastUpdateTime: - format: google-datetime - description: The time the LRO was last updated. - type: string + description: >- + The request used to unlink a Google Cloud Storage bucket from a Firebase + project. type: object + properties: {} parameters: - fields: - description: Selector specifying which fields to include in a partial response. + access_token: + description: OAuth access token. in: query - name: fields + name: access_token + schema: + type: string + alt: + description: Data format for response. + in: query + name: alt schema: type: string + enum: + - json + - media + - proto callback: description: JSONP in: query name: callback schema: type: string - oauth_token: - description: OAuth 2.0 token for the current user. + fields: + description: Selector specifying which fields to include in a partial response. in: query - name: oauth_token + name: fields schema: type: string key: - description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token. + description: >- + API key. Your API key identifies your project and provides you with API + access, quota, and reports. Required unless you provide an OAuth 2.0 + token. in: query name: key schema: type: string - access_token: - description: OAuth access token. + oauth_token: + description: OAuth 2.0 token for the current user. in: query - name: access_token + name: oauth_token schema: type: string prettyPrint: @@ -172,27 +159,11 @@ components: name: prettyPrint schema: type: boolean - _.xgafv: - description: V1 error format. - in: query - name: _.xgafv - schema: - type: string - enum: - - '1' - - '2' - alt: - description: Data format for response. - in: query - name: alt - schema: - type: string - enum: - - json - - media - - proto quotaUser: - description: Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. + description: >- + Available to use for quota purposes for server-side applications. Can be + any arbitrary string assigned to a user, but should not exceed 40 + characters. in: query name: quotaUser schema: @@ -209,88 +180,122 @@ components: name: uploadType schema: type: string - securitySchemes: - Oauth2: - type: oauth2 - description: Oauth 2.0 implicit authentication - flows: - implicit: - authorizationUrl: https://accounts.google.com/o/oauth2/auth - scopes: &ref_0 - https://www.googleapis.com/auth/firebase: View and administer all your Firebase data and settings - https://www.googleapis.com/auth/cloud-platform: See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account. - Oauth2c: - type: oauth2 - description: Oauth 2.0 authorization code authentication - flows: - authorizationCode: - authorizationUrl: https://accounts.google.com/o/oauth2/auth - tokenUrl: https://accounts.google.com/o/oauth2/token - scopes: *ref_0 + _.xgafv: + description: V1 error format. + in: query + name: $.xgafv + schema: + type: string + enum: + - '1' + - '2' x-stackQL-resources: + default_bucket: + id: firebase.storage.default_bucket + name: default_bucket + title: Default_bucket + methods: + get_default_bucket: + operation: + $ref: '#/paths/~1v1beta~1projects~1{projectsId}~1defaultBucket/get' + response: + mediaType: application/json + openAPIDocKey: '200' + delete_default_bucket: + operation: + $ref: '#/paths/~1v1beta~1projects~1{projectsId}~1defaultBucket/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + create: + operation: + $ref: '#/paths/~1v1beta~1projects~1{projectsId}~1defaultBucket/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: >- + #/components/x-stackQL-resources/default_bucket/methods/get_default_bucket + insert: + - $ref: '#/components/x-stackQL-resources/default_bucket/methods/create' + update: [] + replace: [] + delete: + - $ref: >- + #/components/x-stackQL-resources/default_bucket/methods/delete_default_bucket buckets: - id: firebase.firebasestorage.buckets + id: firebase.storage.buckets name: buckets title: Buckets methods: - projects_buckets_list: + get: operation: - $ref: '#/paths/~1v1beta~1projects~1{projectsId}~1buckets/get' + $ref: '#/paths/~1v1beta~1projects~1{projectsId}~1buckets~1{bucketsId}/get' response: mediaType: application/json openAPIDocKey: '200' - projects_buckets_get: + list: operation: - $ref: '#/paths/~1v1beta~1projects~1{projectsId}~1buckets~1{bucketsId}/get' + $ref: '#/paths/~1v1beta~1projects~1{projectsId}~1buckets/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.buckets sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/buckets/methods/projects_buckets_get' - - $ref: '#/components/x-stackQL-resources/buckets/methods/projects_buckets_list' + - $ref: '#/components/x-stackQL-resources/buckets/methods/get' + - $ref: '#/components/x-stackQL-resources/buckets/methods/list' insert: [] update: [] + replace: [] delete: [] - buckets__firebase: - id: firebase.firebasestorage.buckets__firebase - name: buckets__firebase - title: Buckets__firebase + buckets_firebase: + id: firebase.storage.buckets_firebase + name: buckets_firebase + title: Buckets_firebase methods: - projects_buckets_removeFirebase: + add_firebase: operation: - $ref: '#/paths/~1v1beta~1projects~1{projectsId}~1buckets~1{bucketsId}:removeFirebase/post' + $ref: >- + #/paths/~1v1beta~1projects~1{projectsId}~1buckets~1{bucketsId}:addFirebase/post response: mediaType: application/json openAPIDocKey: '200' - projects_buckets_addFirebase: + remove_firebase: operation: - $ref: '#/paths/~1v1beta~1projects~1{projectsId}~1buckets~1{bucketsId}:addFirebase/post' + $ref: >- + #/paths/~1v1beta~1projects~1{projectsId}~1buckets~1{bucketsId}:removeFirebase/post response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: [] - insert: [] + insert: + - $ref: >- + #/components/x-stackQL-resources/buckets_firebase/methods/add_firebase update: [] - delete: [] + replace: [] + delete: + - $ref: >- + #/components/x-stackQL-resources/buckets_firebase/methods/remove_firebase paths: - /v1beta/projects/{projectsId}/buckets: + /v1beta/projects/{projectsId}/defaultBucket: parameters: &ref_1 - - $ref: '#/components/parameters/fields' + - $ref: '#/components/parameters/access_token' + - $ref: '#/components/parameters/alt' - $ref: '#/components/parameters/callback' - - $ref: '#/components/parameters/oauth_token' + - $ref: '#/components/parameters/fields' - $ref: '#/components/parameters/key' - - $ref: '#/components/parameters/access_token' + - $ref: '#/components/parameters/oauth_token' - $ref: '#/components/parameters/prettyPrint' - - $ref: '#/components/parameters/_.xgafv' - - $ref: '#/components/parameters/alt' - $ref: '#/components/parameters/quotaUser' - $ref: '#/components/parameters/upload_protocol' - $ref: '#/components/parameters/uploadType' + - $ref: '#/components/parameters/_.xgafv' get: - description: Lists the linked storage buckets for a project. - operationId: firebasestorage.projects.buckets.list + description: Gets the default bucket. + operationId: firebasestorage.projects.getDefaultBucket security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -306,33 +311,50 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ListBucketsResponse' + $ref: '#/components/schemas/DefaultBucket' parameters: - in: path name: projectsId required: true schema: type: string - - in: query - name: pageSize - schema: - type: integer - - in: query - name: pageToken + delete: + description: Unlinks and deletes the default bucket. + operationId: firebasestorage.projects.deleteDefaultBucket + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Empty' + parameters: + - in: path + name: projectsId + required: true schema: type: string - x-stackQL-resource: buckets - x-stackQL-verb: select - /v1beta/projects/{projectsId}/buckets/{bucketsId}:removeFirebase: - parameters: *ref_1 post: - description: Unlinks a linked Google Cloud Storage bucket from a Firebase project. - operationId: firebasestorage.projects.buckets.removeFirebase + description: >- + Creates a Spark tier-eligible Cloud Storage bucket and links it to your + Firebase project. If the default bucket already exists, this method will + re-link it to your Firebase project. See + https://firebase.google.com/pricing for pricing details. + operationId: firebasestorage.projects.defaultBucket.create requestBody: content: application/json: schema: - $ref: '#/components/schemas/RemoveFirebaseRequest' + $ref: '#/components/schemas/DefaultBucket' security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -348,7 +370,34 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Empty' + $ref: '#/components/schemas/DefaultBucket' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + /v1beta/projects/{projectsId}/buckets/{bucketsId}: + parameters: *ref_1 + get: + description: Gets a single linked storage bucket. + operationId: firebasestorage.projects.buckets.get + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Bucket' parameters: - in: path name: projectsId @@ -360,8 +409,42 @@ paths: required: true schema: type: string - x-stackQL-resource: buckets__firebase - x-stackQL-verb: delete + /v1beta/projects/{projectsId}/buckets: + parameters: *ref_1 + get: + description: Lists the linked storage buckets for a project. + operationId: firebasestorage.projects.buckets.list + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/firebase + Oauth2c: + - https://www.googleapis.com/auth/firebase + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/ListBucketsResponse' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: query + name: pageSize + schema: + type: integer + format: int32 + - in: query + name: pageToken + schema: + type: string /v1beta/projects/{projectsId}/buckets/{bucketsId}:addFirebase: parameters: *ref_1 post: @@ -399,13 +482,16 @@ paths: required: true schema: type: string - x-stackQL-resource: buckets__firebase - x-stackQL-verb: insert - /v1beta/projects/{projectsId}/buckets/{bucketsId}: + /v1beta/projects/{projectsId}/buckets/{bucketsId}:removeFirebase: parameters: *ref_1 - get: - description: Gets a single linked storage bucket. - operationId: firebasestorage.projects.buckets.get + post: + description: Unlinks a linked Google Cloud Storage bucket from a Firebase project. + operationId: firebasestorage.projects.buckets.removeFirebase + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RemoveFirebaseRequest' security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -421,7 +507,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Bucket' + $ref: '#/components/schemas/Empty' parameters: - in: path name: projectsId @@ -433,5 +519,3 @@ paths: required: true schema: type: string - x-stackQL-resource: buckets - x-stackQL-verb: select diff --git a/providers/src/firebase/v00.00.00000/services/testing.yaml b/providers/src/firebase/v00.00.00000/services/testing.yaml new file mode 100644 index 00000000..2c3029a3 --- /dev/null +++ b/providers/src/firebase/v00.00.00000/services/testing.yaml @@ -0,0 +1,3182 @@ +openapi: 3.1.0 +info: + contact: + name: StackQL Studios + url: https://github.com/stackql/google-discovery-to-openapi + email: info@stackql.io + title: Cloud Testing API + description: >- + Allows developers to run automated tests for their mobile applications on + Google infrastructure. + version: v1 + x-discovery-doc-revision: '20250822' + x-generated-date: '2025-08-28' +externalDocs: + url: https://firebase.google.com/docs/test-lab/ +servers: + - url: https://testing.googleapis.com +components: + securitySchemes: + Oauth2: + type: oauth2 + description: Oauth 2.0 implicit authentication + flows: + implicit: + authorizationUrl: https://accounts.google.com/o/oauth2/auth + scopes: &ref_0 + https://www.googleapis.com/auth/cloud-platform: >- + See, edit, configure, and delete your Google Cloud data and see + the email address for your Google Account. + https://www.googleapis.com/auth/cloud-platform.read-only: >- + View your data across Google Cloud services and see the email + address of your Google Account + Oauth2c: + type: oauth2 + description: Oauth 2.0 authorization code authentication + flows: + authorizationCode: + authorizationUrl: https://accounts.google.com/o/oauth2/auth + tokenUrl: https://accounts.google.com/o/oauth2/token + scopes: *ref_0 + schemas: + TestMatrix: + id: TestMatrix + description: >- + TestMatrix captures all details about a test. It contains the + environment configuration, test specification, test executions and + overall state and outcome. + type: object + properties: + testMatrixId: + description: Output only. Unique id set by the service. + type: string + projectId: + description: The cloud project that owns the test matrix. + type: string + clientInfo: + description: Information about the client which invoked the test. + $ref: '#/components/schemas/ClientInfo' + testSpecification: + description: Required. How to run the test. + $ref: '#/components/schemas/TestSpecification' + environmentMatrix: + description: Required. The devices the tests are being executed on. + $ref: '#/components/schemas/EnvironmentMatrix' + testExecutions: + description: >- + Output only. The list of test executions that the service creates + for this matrix. + type: array + items: + $ref: '#/components/schemas/TestExecution' + resultStorage: + description: Required. Where the results for the matrix are written. + $ref: '#/components/schemas/ResultStorage' + state: + description: Output only. Indicates the current progress of the test matrix. + type: string + enumDescriptions: + - Do not use. For proto versioning only. + - The execution or matrix is being validated. + - >- + The execution or matrix is waiting for resources to become + available. + - >- + The execution is currently being processed. Can only be set on an + execution. + - >- + The execution or matrix has terminated normally. On a matrix this + means that the matrix level processing completed normally, but + individual executions may be in an ERROR state. + - >- + The execution or matrix has stopped because it encountered an + infrastructure failure. + - >- + The execution was not run because it corresponds to a unsupported + environment. Can only be set on an execution. + - >- + The execution was not run because the provided inputs are + incompatible with the requested environment. Example: requested + AndroidVersion is lower than APK's minSdkVersion Can only be set + on an execution. + - >- + The execution was not run because the provided inputs are + incompatible with the requested architecture. Example: requested + device does not support running the native code in the supplied + APK Can only be set on an execution. + - The user cancelled the execution. Can only be set on an execution. + - >- + The execution or matrix was not run because the provided inputs + are not valid. Examples: input file is not of the expected type, + is malformed/corrupt, or was flagged as malware + enum: + - TEST_STATE_UNSPECIFIED + - VALIDATING + - PENDING + - RUNNING + - FINISHED + - ERROR + - UNSUPPORTED_ENVIRONMENT + - INCOMPATIBLE_ENVIRONMENT + - INCOMPATIBLE_ARCHITECTURE + - CANCELLED + - INVALID + timestamp: + description: Output only. The time this test matrix was initially created. + type: string + format: google-datetime + invalidMatrixDetails: + description: >- + Output only. Describes why the matrix is considered invalid. Only + useful for matrices in the INVALID state. + type: string + enumDescriptions: + - Do not use. For proto versioning only. + - The matrix is INVALID, but there are no further details available. + - The input app APK could not be parsed. + - The input test APK could not be parsed. + - The AndroidManifest.xml could not be found. + - The APK manifest does not declare a package name. + - >- + The APK application ID (aka package name) is invalid. See also + https://developer.android.com/studio/build/application-id + - The test package and app package are the same. + - The test apk does not declare an instrumentation. + - The input app apk does not have a signature. + - >- + The test runner class specified by user or in the test APK's + manifest file is not compatible with Android Test Orchestrator. + Orchestrator is only compatible with AndroidJUnitRunner version + 1.1 or higher. Orchestrator can be disabled by using + DO_NOT_USE_ORCHESTRATOR OrchestratorOption. + - >- + The test APK does not contain the test runner class specified by + the user or in the manifest file. This can be caused by one of the + following reasons: - the user provided a runner class name that's + incorrect, or - the test runner isn't built into the test APK + (might be in the app APK instead). + - A main launcher activity could not be found. + - The app declares one or more permissions that are not allowed. + - There is a conflict in the provided robo_directives. + - >- + There is at least one invalid resource name in the provided robo + directives + - >- + Invalid definition of action in the robo directives (e.g. a click + or ignore action includes an input text field) + - >- + There is no test loop intent filter, or the one that is given is + not formatted correctly. + - >- + The request contains a scenario label that was not declared in the + manifest. + - There was an error when parsing a label's value. + - >- + The request contains a scenario number that was not declared in + the manifest. + - Device administrator applications are not allowed. + - >- + The zipped XCTest was malformed. The zip did not contain a single + .xctestrun file and the contents of the DerivedData/Build/Products + directory. + - >- + The zipped XCTest was built for the iOS simulator rather than for + a physical device. + - The .xctestrun file did not specify any test targets. + - >- + One or more of the test targets defined in the .xctestrun file + specifies "UseDestinationArtifacts", which is disallowed. + - >- + XC tests which run on physical devices must have + "IsAppHostedTestBundle" == "true" in the xctestrun file. + - An Info.plist file in the XCTest zip could not be parsed. + - >- + The APK is marked as "testOnly". Deprecated and not currently + used. + - The input IPA could not be parsed. + - The application doesn't register the game loop URL scheme. + - The iOS application bundle (.app) couldn't be processed. + - >- + APK contains no code. See also + https://developer.android.com/guide/topics/manifest/application-element.html#code + - >- + Either the provided input APK path was malformed, the APK file + does not exist, or the user does not have permission to access the + APK file. + - APK is built for a preview SDK which is unsupported + - The matrix expanded to contain too many executions. + - Not enough test quota to run the executions in this matrix. + - >- + A required cloud service api is not activated. See: + https://firebase.google.com/docs/test-lab/android/continuous#requirements + - There was an unknown permission issue running this test. + enumDeprecated: + - false + - false + - false + - false + - false + - false + - false + - false + - false + - false + - false + - false + - false + - false + - false + - false + - false + - false + - false + - false + - false + - false + - false + - false + - false + - false + - false + - false + - true + - false + - false + - false + - false + - false + - false + - false + - false + - false + - false + enum: + - INVALID_MATRIX_DETAILS_UNSPECIFIED + - DETAILS_UNAVAILABLE + - MALFORMED_APK + - MALFORMED_TEST_APK + - NO_MANIFEST + - NO_PACKAGE_NAME + - INVALID_PACKAGE_NAME + - TEST_SAME_AS_APP + - NO_INSTRUMENTATION + - NO_SIGNATURE + - INSTRUMENTATION_ORCHESTRATOR_INCOMPATIBLE + - NO_TEST_RUNNER_CLASS + - NO_LAUNCHER_ACTIVITY + - FORBIDDEN_PERMISSIONS + - INVALID_ROBO_DIRECTIVES + - INVALID_RESOURCE_NAME + - INVALID_DIRECTIVE_ACTION + - TEST_LOOP_INTENT_FILTER_NOT_FOUND + - SCENARIO_LABEL_NOT_DECLARED + - SCENARIO_LABEL_MALFORMED + - SCENARIO_NOT_DECLARED + - DEVICE_ADMIN_RECEIVER + - MALFORMED_XC_TEST_ZIP + - BUILT_FOR_IOS_SIMULATOR + - NO_TESTS_IN_XC_TEST_ZIP + - USE_DESTINATION_ARTIFACTS + - TEST_NOT_APP_HOSTED + - PLIST_CANNOT_BE_PARSED + - TEST_ONLY_APK + - MALFORMED_IPA + - MISSING_URL_SCHEME + - MALFORMED_APP_BUNDLE + - NO_CODE_APK + - INVALID_INPUT_APK + - INVALID_APK_PREVIEW_SDK + - MATRIX_TOO_LARGE + - TEST_QUOTA_EXCEEDED + - SERVICE_NOT_ACTIVATED + - UNKNOWN_PERMISSION_ERROR + extendedInvalidMatrixDetails: + description: >- + Output only. Details about why a matrix was deemed invalid. If + multiple checks can be safely performed, they will be reported but + no assumptions should be made about the length of this list. + readOnly: true + type: array + items: + $ref: '#/components/schemas/MatrixErrorDetail' + flakyTestAttempts: + description: >- + The number of times a TestExecution should be re-attempted if one or + more of its test cases fail for any reason. The maximum number of + reruns allowed is 10. Default is 0, which implies no reruns. + type: integer + format: int32 + outcomeSummary: + description: >- + Output Only. The overall outcome of the test. Only set when the test + matrix state is FINISHED. + type: string + enumDescriptions: + - Do not use. For proto versioning only. + - >- + The test matrix run was successful, for instance: - All the test + cases passed. - Robo did not detect a crash of the application + under test. + - >- + A run failed, for instance: - One or more test cases failed. - A + test timed out. - The application under test crashed. + - >- + Something unexpected happened. The run should still be considered + unsuccessful but this is likely a transient problem and re-running + the test might be successful. + - >- + All tests were skipped, for instance: - All device configurations + were incompatible. + enum: + - OUTCOME_SUMMARY_UNSPECIFIED + - SUCCESS + - FAILURE + - INCONCLUSIVE + - SKIPPED + failFast: + description: >- + If true, only a single attempt at most will be made to run each + execution/shard in the matrix. Flaky test attempts are not affected. + Normally, 2 or more attempts are made if a potential infrastructure + issue is detected. This feature is for latency sensitive workloads. + The incidence of execution failures may be significantly greater for + fail-fast matrices and support is more limited because of that + expectation. + type: boolean + ClientInfo: + id: ClientInfo + description: Information about the client which invoked the test. + type: object + properties: + name: + description: Required. Client name, such as gcloud. + type: string + clientInfoDetails: + description: The list of detailed information about client. + type: array + items: + $ref: '#/components/schemas/ClientInfoDetail' + ClientInfoDetail: + id: ClientInfoDetail + description: >- + Key-value pair of detailed information about the client which invoked + the test. Examples: {'Version', '1.0'}, {'Release Track', 'BETA'}. + type: object + properties: + key: + description: Required. The key of detailed client information. + type: string + value: + description: Required. The value of detailed client information. + type: string + TestSpecification: + id: TestSpecification + description: A description of how to run the test. + type: object + properties: + testTimeout: + description: >- + Max time a test execution is allowed to run before it is + automatically cancelled. The default value is 5 min. + type: string + format: google-duration + testSetup: + description: >- + Test setup requirements for Android e.g. files to install, bootstrap + scripts. + $ref: '#/components/schemas/TestSetup' + iosTestSetup: + description: Test setup requirements for iOS. + $ref: '#/components/schemas/IosTestSetup' + androidInstrumentationTest: + description: An Android instrumentation test. + $ref: '#/components/schemas/AndroidInstrumentationTest' + androidRoboTest: + description: An Android robo test. + $ref: '#/components/schemas/AndroidRoboTest' + androidTestLoop: + description: An Android Application with a Test Loop. + $ref: '#/components/schemas/AndroidTestLoop' + iosXcTest: + description: An iOS XCTest, via an .xctestrun file. + $ref: '#/components/schemas/IosXcTest' + iosTestLoop: + description: An iOS application with a test loop. + $ref: '#/components/schemas/IosTestLoop' + iosRoboTest: + description: An iOS Robo test. + $ref: '#/components/schemas/IosRoboTest' + disableVideoRecording: + description: Disables video recording. May reduce test latency. + type: boolean + disablePerformanceMetrics: + description: Disables performance metrics recording. May reduce test latency. + type: boolean + TestSetup: + id: TestSetup + description: >- + A description of how to set up the Android device prior to running the + test. + type: object + properties: + filesToPush: + description: List of files to push to the device before starting the test. + type: array + items: + $ref: '#/components/schemas/DeviceFile' + directoriesToPull: + description: >- + List of directories on the device to upload to GCS at the end of the + test; they must be absolute paths under /sdcard, /storage or + /data/local/tmp. Path names are restricted to characters a-z A-Z 0-9 + _ - . + and / Note: The paths /sdcard and /data will be made + available and treated as implicit path substitutions. E.g. if + /sdcard on a particular device does not map to external storage, the + system will replace it with the external storage path prefix for + that device. + type: array + items: + type: string + initialSetupApks: + description: >- + Optional. Initial setup APKs to install before the app under test is + installed. Currently capped at 100. + type: array + items: + $ref: '#/components/schemas/Apk' + additionalApks: + description: >- + APKs to install in addition to those being directly tested. These + will be installed after the app under test. Currently capped at 100. + type: array + items: + $ref: '#/components/schemas/Apk' + account: + description: >- + The device will be logged in on this account for the duration of the + test. + $ref: '#/components/schemas/Account' + networkProfile: + description: >- + The network traffic profile used for running the test. Available + network profiles can be queried by using the NETWORK_CONFIGURATION + environment type when calling + TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog. + type: string + environmentVariables: + description: >- + Environment variables to set for the test (only applicable for + instrumentation tests). + type: array + items: + $ref: '#/components/schemas/EnvironmentVariable' + systrace: + description: >- + Systrace configuration for the run. Deprecated: Systrace used Python + 2 which was sunsetted on 2020-01-01. Systrace is no longer supported + in the Cloud Testing API, and no Systrace file will be provided in + the results. + deprecated: true + $ref: '#/components/schemas/SystraceSetup' + dontAutograntPermissions: + description: >- + Whether to prevent all runtime permissions to be granted at app + install + type: boolean + DeviceFile: + id: DeviceFile + description: A single device file description. + type: object + properties: + obbFile: + description: A reference to an opaque binary blob file. + $ref: '#/components/schemas/ObbFile' + regularFile: + description: A reference to a regular file. + $ref: '#/components/schemas/RegularFile' + ObbFile: + id: ObbFile + description: >- + An opaque binary blob file to install on the device before the test + starts. + type: object + properties: + obbFileName: + description: >- + Required. OBB file name which must conform to the format as + specified by Android e.g. + [main|patch].0300110.com.example.android.obb which will be installed + into \/Android/obb/\/ on the device. + type: string + obb: + description: Required. Opaque Binary Blob (OBB) file(s) to install on the device. + $ref: '#/components/schemas/FileReference' + FileReference: + id: FileReference + description: A reference to a file, used for user inputs. + type: object + properties: + gcsPath: + description: >- + A path to a file in Google Cloud Storage. Example: + gs://build-app-1414623860166/app%40debug-unaligned.apk These paths + are expected to be url encoded (percent encoding) + type: string + RegularFile: + id: RegularFile + description: A file or directory to install on the device before the test starts. + type: object + properties: + content: + description: Required. The source file. + $ref: '#/components/schemas/FileReference' + devicePath: + description: >- + Required. Where to put the content on the device. Must be an + absolute, allowlisted path. If the file exists, it will be replaced. + The following device-side directories and any of their + subdirectories are allowlisted: ${EXTERNAL_STORAGE}, /sdcard + ${ANDROID_DATA}/local/tmp, or /data/local/tmp Specifying a path + outside of these directory trees is invalid. The paths /sdcard and + /data will be made available and treated as implicit path + substitutions. E.g. if /sdcard on a particular device does not map + to external storage, the system will replace it with the external + storage path prefix for that device and copy the file there. It is + strongly advised to use the Environment API in app and test code to + access files on the device in a portable way. + type: string + Apk: + id: Apk + description: An Android package file to install. + type: object + properties: + location: + description: >- + The path to an APK to be installed on the device before the test + begins. + $ref: '#/components/schemas/FileReference' + packageName: + description: >- + The java package for the APK to be installed. Value is determined by + examining the application's manifest. + type: string + Account: + id: Account + description: Identifies an account and how to log into it. + type: object + properties: + googleAuto: + description: An automatic google login account. + $ref: '#/components/schemas/GoogleAuto' + GoogleAuto: + id: GoogleAuto + description: >- + Enables automatic Google account login. If set, the service + automatically generates a Google test account and adds it to the device, + before executing the test. Note that test accounts might be reused. Many + applications show their full set of functionalities when an account is + present on the device. Logging into the device with these generated + accounts allows testing more functionalities. + type: object + properties: {} + EnvironmentVariable: + id: EnvironmentVariable + description: A key-value pair passed as an environment variable to the test. + type: object + properties: + key: + description: Key for the environment variable. + type: string + value: + description: Value for the environment variable. + type: string + SystraceSetup: + id: SystraceSetup + type: object + properties: + durationSeconds: + description: >- + Systrace duration in seconds. Should be between 1 and 30 seconds. 0 + disables systrace. + deprecated: true + type: integer + format: int32 + IosTestSetup: + id: IosTestSetup + description: A description of how to set up an iOS device prior to running the test. + type: object + properties: + networkProfile: + description: >- + The network traffic profile used for running the test. Available + network profiles can be queried by using the NETWORK_CONFIGURATION + environment type when calling + TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog. + type: string + additionalIpas: + description: iOS apps to install in addition to those being directly tested. + type: array + items: + $ref: '#/components/schemas/FileReference' + pushFiles: + description: List of files to push to the device before starting the test. + type: array + items: + $ref: '#/components/schemas/IosDeviceFile' + pullDirectories: + description: >- + List of directories on the device to upload to Cloud Storage at the + end of the test. Directories should either be in a shared directory + (such as /private/var/mobile/Media) or within an accessible + directory inside the app's filesystem (such as /Documents) by + specifying the bundle ID. + type: array + items: + $ref: '#/components/schemas/IosDeviceFile' + IosDeviceFile: + id: IosDeviceFile + description: A file or directory to install on the device before the test starts. + type: object + properties: + content: + description: The source file + $ref: '#/components/schemas/FileReference' + bundleId: + description: >- + The bundle id of the app where this file lives. iOS apps sandbox + their own filesystem, so app files must specify which app installed + on the device. + type: string + devicePath: + description: >- + Location of the file on the device, inside the app's sandboxed + filesystem + type: string + AndroidInstrumentationTest: + id: AndroidInstrumentationTest + description: >- + A test of an Android application that can control an Android component + independently of its normal lifecycle. Android instrumentation tests run + an application APK and test APK inside the same process on a virtual or + physical AndroidDevice. They also specify a test runner class, such as + com.google.GoogleTestRunner, which can vary on the specific + instrumentation framework chosen. See for more information on types of + Android tests. + type: object + properties: + appApk: + description: The APK for the application under test. + $ref: '#/components/schemas/FileReference' + appBundle: + description: A multi-apk app bundle for the application under test. + $ref: '#/components/schemas/AppBundle' + testApk: + description: Required. The APK containing the test code to be executed. + $ref: '#/components/schemas/FileReference' + appPackageId: + description: >- + The java package for the application under test. The default value + is determined by examining the application's manifest. + type: string + testPackageId: + description: >- + The java package for the test to be executed. The default value is + determined by examining the application's manifest. + type: string + testRunnerClass: + description: >- + The InstrumentationTestRunner class. The default value is determined + by examining the application's manifest. + type: string + testTargets: + description: >- + Each target must be fully qualified with the package name or class + name, in one of these formats: - "package package_name" - "class + package_name.class_name" - "class + package_name.class_name#method_name" If empty, all targets in the + module will be run. + type: array + items: + type: string + orchestratorOption: + description: >- + The option of whether running each test within its own invocation of + instrumentation with Android Test Orchestrator or not. ** + Orchestrator is only compatible with AndroidJUnitRunner version 1.1 + or higher! ** Orchestrator offers the following benefits: - No + shared state - Crashes are isolated - Logs are scoped per test See + for more information about Android Test Orchestrator. If not set, + the test will be run without the orchestrator. + type: string + enumDescriptions: + - >- + Default value: the server will choose the mode. Currently implies + that the test will run without the orchestrator. In the future, + all instrumentation tests will be run with the orchestrator. Using + the orchestrator is highly encouraged because of all the benefits + it offers. + - >- + Run test using orchestrator. ** Only compatible with + AndroidJUnitRunner version 1.1 or higher! ** Recommended. + - Run test without using orchestrator. + enum: + - ORCHESTRATOR_OPTION_UNSPECIFIED + - USE_ORCHESTRATOR + - DO_NOT_USE_ORCHESTRATOR + shardingOption: + description: The option to run tests in multiple shards in parallel. + $ref: '#/components/schemas/ShardingOption' + AppBundle: + id: AppBundle + description: >- + An Android App Bundle file format, containing a BundleConfig.pb file, a + base module directory, zero or more dynamic feature module directories. + See https://developer.android.com/guide/app-bundle/build for guidance on + building App Bundles. + type: object + properties: + bundleLocation: + description: .aab file representing the app bundle under test. + $ref: '#/components/schemas/FileReference' + apks: + description: >- + .apk files generated by bundletool to install as a single android + app. + $ref: '#/components/schemas/ApkSplits' + ApkSplits: + id: ApkSplits + description: A single dynamic feature apk. + type: object + properties: + bundleSplits: + description: >- + A list of .apk files generated by bundletool to install to the + device under test as a single android app with adb install-multiple. + If specified, requires one or more bundle_splits. The first split + specified represents the base APK, while subsequent splits represent + feature apks. + type: array + items: + $ref: '#/components/schemas/FileReference' + ShardingOption: + id: ShardingOption + description: Options for enabling sharding. + type: object + properties: + uniformSharding: + description: Uniformly shards test cases given a total number of shards. + $ref: '#/components/schemas/UniformSharding' + manualSharding: + description: >- + Shards test cases into the specified groups of packages, classes, + and/or methods. + $ref: '#/components/schemas/ManualSharding' + smartSharding: + description: Shards test based on previous test case timing records. + $ref: '#/components/schemas/SmartSharding' + UniformSharding: + id: UniformSharding + description: >- + Uniformly shards test cases given a total number of shards. For + instrumentation tests, it will be translated to "-e numShard" and "-e + shardIndex" AndroidJUnitRunner arguments. With uniform sharding enabled, + specifying either of these sharding arguments via + `environment_variables` is invalid. Based on the sharding mechanism + AndroidJUnitRunner uses, there is no guarantee that test cases will be + distributed uniformly across all shards. + type: object + properties: + numShards: + description: >- + Required. The total number of shards to create. This must always be + a positive number that is no greater than the total number of test + cases. When you select one or more physical devices, the number of + shards must be <= 50. When you select one or more ARM virtual + devices, it must be <= 200. When you select only x86 virtual + devices, it must be <= 500. + type: integer + format: int32 + ManualSharding: + id: ManualSharding + description: >- + Shards test cases into the specified groups of packages, classes, and/or + methods. With manual sharding enabled, specifying test targets via + environment_variables or in InstrumentationTest is invalid. + type: object + properties: + testTargetsForShard: + description: >- + Required. Group of packages, classes, and/or test methods to be run + for each manually-created shard. You must specify at least one shard + if this field is present. When you select one or more physical + devices, the number of repeated test_targets_for_shard must be <= + 50. When you select one or more ARM virtual devices, it must be <= + 200. When you select only x86 virtual devices, it must be <= 500. + type: array + items: + $ref: '#/components/schemas/TestTargetsForShard' + TestTargetsForShard: + id: TestTargetsForShard + description: Test targets for a shard. + type: object + properties: + testTargets: + description: >- + Group of packages, classes, and/or test methods to be run for each + shard. The targets need to be specified in AndroidJUnitRunner + argument format. For example, "package com.my.packages" "class + com.my.package.MyClass". The number of test_targets must be greater + than 0. + type: array + items: + type: string + SmartSharding: + id: SmartSharding + description: Shards test based on previous test case timing records. + type: object + properties: + targetedShardDuration: + description: >- + The amount of time tests within a shard should take. Default: 300 + seconds (5 minutes). The minimum allowed: 120 seconds (2 minutes). + The shard count is dynamically set based on time, up to the maximum + shard limit (described below). To guarantee at least one test case + for each shard, the number of shards will not exceed the number of + test cases. Shard duration will be exceeded if: - The maximum shard + limit is reached and there is more calculated test time remaining to + allocate into shards. - Any individual test is estimated to be + longer than the targeted shard duration. Shard duration is not + guaranteed because smart sharding uses test case history and default + durations which may not be accurate. The rules for finding the test + case timing records are: - If the service has processed a test case + in the last 30 days, the record of the latest successful test case + will be used. - For new test cases, the average duration of other + known test cases will be used. - If there are no previous test case + timing records available, the default test case duration is 15 + seconds. Because the actual shard duration can exceed the targeted + shard duration, we recommend that you set the targeted value at + least 5 minutes less than the maximum allowed test timeout (45 + minutes for physical devices and 60 minutes for virtual), or that + you use the custom test timeout value that you set. This approach + avoids cancelling the shard before all tests can finish. Note that + there is a limit for maximum number of shards. When you select one + or more physical devices, the number of shards must be <= 50. When + you select one or more ARM virtual devices, it must be <= 200. When + you select only x86 virtual devices, it must be <= 500. To guarantee + at least one test case for per shard, the number of shards will not + exceed the number of test cases. Each shard created counts toward + daily test quota. + type: string + format: google-duration + AndroidRoboTest: + id: AndroidRoboTest + description: >- + A test of an android application that explores the application on a + virtual or physical Android Device, finding culprits and crashes as it + goes. + type: object + properties: + appApk: + description: The APK for the application under test. + $ref: '#/components/schemas/FileReference' + appBundle: + description: A multi-apk app bundle for the application under test. + $ref: '#/components/schemas/AppBundle' + appPackageId: + description: >- + The java package for the application under test. The default value + is determined by examining the application's manifest. + type: string + appInitialActivity: + description: The initial activity that should be used to start the app. + type: string + maxDepth: + description: >- + The max depth of the traversal stack Robo can explore. Needs to be + at least 2 to make Robo explore the app beyond the first activity. + Default is 50. + deprecated: true + type: integer + format: int32 + maxSteps: + description: The max number of steps Robo can execute. Default is no limit. + deprecated: true + type: integer + format: int32 + roboDirectives: + description: >- + A set of directives Robo should apply during the crawl. This allows + users to customize the crawl. For example, the username and password + for a test account can be provided. + type: array + items: + $ref: '#/components/schemas/RoboDirective' + roboMode: + description: >- + The mode in which Robo should run. Most clients should allow the + server to populate this field automatically. + type: string + enumDescriptions: + - This means that the server should choose the mode. Recommended. + - Runs Robo in UIAutomator-only mode without app resigning + - Runs Robo in standard Espresso with UIAutomator fallback + enum: + - ROBO_MODE_UNSPECIFIED + - ROBO_VERSION_1 + - ROBO_VERSION_2 + roboScript: + description: >- + A JSON file with a sequence of actions Robo should perform as a + prologue for the crawl. + $ref: '#/components/schemas/FileReference' + startingIntents: + description: >- + The intents used to launch the app for the crawl. If none are + provided, then the main launcher activity is launched. If some are + provided, then only those provided are launched (the main launcher + activity must be provided explicitly). + type: array + items: + $ref: '#/components/schemas/RoboStartingIntent' + RoboDirective: + id: RoboDirective + description: >- + Directs Robo to interact with a specific UI element if it is encountered + during the crawl. Currently, Robo can perform text entry or element + click. + type: object + properties: + resourceName: + description: >- + Required. The android resource name of the target UI element. For + example, in Java: R.string.foo in xml: @string/foo Only the "foo" + part is needed. Reference doc: + https://developer.android.com/guide/topics/resources/accessing-resources.html + type: string + inputText: + description: >- + The text that Robo is directed to set. If left empty, the directive + will be treated as a CLICK on the element matching the + resource_name. + type: string + actionType: + description: >- + Required. The type of action that Robo should perform on the + specified element. + type: string + enumDescriptions: + - DO NOT USE. For proto versioning only. + - >- + Direct Robo to click on the specified element. No-op if specified + element is not clickable. + - >- + Direct Robo to enter text on the specified element. No-op if + specified element is not enabled or does not allow text entry. + - Direct Robo to ignore interactions with a specific element. + enum: + - ACTION_TYPE_UNSPECIFIED + - SINGLE_CLICK + - ENTER_TEXT + - IGNORE + RoboStartingIntent: + id: RoboStartingIntent + description: Message for specifying the start activities to crawl. + type: object + properties: + launcherActivity: + description: An intent that starts the main launcher activity. + $ref: '#/components/schemas/LauncherActivityIntent' + startActivity: + description: An intent that starts an activity with specific details. + $ref: '#/components/schemas/StartActivityIntent' + noActivity: + description: Skips the starting activity + $ref: '#/components/schemas/NoActivityIntent' + timeout: + description: Timeout in seconds for each intent. + type: string + format: google-duration + LauncherActivityIntent: + id: LauncherActivityIntent + description: Specifies an intent that starts the main launcher activity. + type: object + properties: {} + StartActivityIntent: + id: StartActivityIntent + description: A starting intent specified by an action, uri, and categories. + type: object + properties: + action: + description: Action name. Required for START_ACTIVITY. + type: string + uri: + description: URI for the action. + type: string + categories: + description: Intent categories to set on the intent. + type: array + items: + type: string + NoActivityIntent: + id: NoActivityIntent + description: Skips the starting activity + type: object + properties: {} + AndroidTestLoop: + id: AndroidTestLoop + description: >- + A test of an Android Application with a Test Loop. The intent \ will be + implicitly added, since Games is the only user of this api, for the time + being. + type: object + properties: + appApk: + description: The APK for the application under test. + $ref: '#/components/schemas/FileReference' + appBundle: + description: A multi-apk app bundle for the application under test. + $ref: '#/components/schemas/AppBundle' + appPackageId: + description: >- + The java package for the application under test. The default is + determined by examining the application's manifest. + type: string + scenarios: + description: >- + The list of scenarios that should be run during the test. The + default is all test loops, derived from the application's manifest. + type: array + items: + type: integer + format: int32 + scenarioLabels: + description: >- + The list of scenario labels that should be run during the test. The + scenario labels should map to labels defined in the application's + manifest. For example, player_experience and + com.google.test.loops.player_experience add all of the loops labeled + in the manifest with the com.google.test.loops.player_experience + name to the execution. Scenarios can also be specified in the + scenarios field. + type: array + items: + type: string + IosXcTest: + id: IosXcTest + description: >- + A test of an iOS application that uses the XCTest framework. Xcode + supports the option to "build for testing", which generates an + .xctestrun file that contains a test specification (arguments, test + methods, etc). This test type accepts a zip file containing the + .xctestrun file and the corresponding contents of the Build/Products + directory that contains all the binaries needed to run the tests. + type: object + properties: + testsZip: + description: >- + Required. The .zip containing the .xctestrun file and the contents + of the DerivedData/Build/Products directory. The .xctestrun file in + this zip is ignored if the xctestrun field is specified. + $ref: '#/components/schemas/FileReference' + xctestrun: + description: >- + An .xctestrun file that will override the .xctestrun file in the + tests zip. Because the .xctestrun file contains environment + variables along with test methods to run and/or ignore, this can be + useful for sharding tests. Default is taken from the tests zip. + $ref: '#/components/schemas/FileReference' + xcodeVersion: + description: >- + The Xcode version that should be used for the test. Use the + TestEnvironmentDiscoveryService to get supported options. Defaults + to the latest Xcode version Firebase Test Lab supports. + type: string + appBundleId: + description: Output only. The bundle id for the application under test. + type: string + testSpecialEntitlements: + description: >- + The option to test special app entitlements. Setting this would + re-sign the app having special entitlements with an explicit + application-identifier. Currently supports testing aps-environment + entitlement. + type: boolean + IosTestLoop: + id: IosTestLoop + description: >- + A test of an iOS application that implements one or more game loop + scenarios. This test type accepts an archived application (.ipa file) + and a list of integer scenarios that will be executed on the app + sequentially. + type: object + properties: + appIpa: + description: Required. The .ipa of the application to test. + $ref: '#/components/schemas/FileReference' + scenarios: + description: >- + The list of scenarios that should be run during the test. Defaults + to the single scenario 0 if unspecified. + type: array + items: + type: integer + format: int32 + appBundleId: + description: Output only. The bundle id for the application under test. + type: string + IosRoboTest: + id: IosRoboTest + description: A test that explores an iOS application on an iOS device. + type: object + properties: + appIpa: + description: >- + Required. The ipa stored at this file should be used to run the + test. + $ref: '#/components/schemas/FileReference' + appBundleId: + description: >- + The bundle ID for the app-under-test. This is determined by + examining the application's "Info.plist" file. + type: string + roboScript: + description: >- + An optional Roboscript to customize the crawl. See + https://firebase.google.com/docs/test-lab/android/robo-scripts-reference + for more information about Roboscripts. The maximum allowed file + size of the roboscript is 10MiB. + $ref: '#/components/schemas/FileReference' + EnvironmentMatrix: + id: EnvironmentMatrix + description: The matrix of environments in which the test is to be executed. + type: object + properties: + androidMatrix: + description: A matrix of Android devices. + $ref: '#/components/schemas/AndroidMatrix' + androidDeviceList: + description: >- + A list of Android devices; the test will be run only on the + specified devices. + $ref: '#/components/schemas/AndroidDeviceList' + iosDeviceList: + description: A list of iOS devices. + $ref: '#/components/schemas/IosDeviceList' + AndroidMatrix: + id: AndroidMatrix + description: >- + A set of Android device configuration permutations is defined by the the + cross-product of the given axes. Internally, the given AndroidMatrix + will be expanded into a set of AndroidDevices. Only supported + permutations will be instantiated. Invalid permutations (e.g., + incompatible models/versions) are ignored. + type: object + properties: + androidModelIds: + description: >- + Required. The ids of the set of Android device to be used. Use the + TestEnvironmentDiscoveryService to get supported options. + type: array + items: + type: string + androidVersionIds: + description: >- + Required. The ids of the set of Android OS version to be used. Use + the TestEnvironmentDiscoveryService to get supported options. + type: array + items: + type: string + locales: + description: >- + Required. The set of locales the test device will enable for + testing. Use the TestEnvironmentDiscoveryService to get supported + options. + type: array + items: + type: string + orientations: + description: >- + Required. The set of orientations to test with. Use the + TestEnvironmentDiscoveryService to get supported options. + type: array + items: + type: string + AndroidDeviceList: + id: AndroidDeviceList + description: >- + A list of Android device configurations in which the test is to be + executed. + type: object + properties: + androidDevices: + description: Required. A list of Android devices. + type: array + items: + $ref: '#/components/schemas/AndroidDevice' + AndroidDevice: + id: AndroidDevice + description: A single Android device. + type: object + properties: + androidModelId: + description: >- + Required. The id of the Android device to be used. Use the + TestEnvironmentDiscoveryService to get supported options. + type: string + androidVersionId: + description: >- + Required. The id of the Android OS version to be used. Use the + TestEnvironmentDiscoveryService to get supported options. + type: string + locale: + description: >- + Required. The locale the test device used for testing. Use the + TestEnvironmentDiscoveryService to get supported options. + type: string + orientation: + description: >- + Required. How the device is oriented during the test. Use the + TestEnvironmentDiscoveryService to get supported options. + type: string + IosDeviceList: + id: IosDeviceList + description: A list of iOS device configurations in which the test is to be executed. + type: object + properties: + iosDevices: + description: Required. A list of iOS devices. + type: array + items: + $ref: '#/components/schemas/IosDevice' + IosDevice: + id: IosDevice + description: A single iOS device. + type: object + properties: + iosModelId: + description: >- + Required. The id of the iOS device to be used. Use the + TestEnvironmentDiscoveryService to get supported options. + type: string + iosVersionId: + description: >- + Required. The id of the iOS major software version to be used. Use + the TestEnvironmentDiscoveryService to get supported options. + type: string + locale: + description: >- + Required. The locale the test device used for testing. Use the + TestEnvironmentDiscoveryService to get supported options. + type: string + orientation: + description: >- + Required. How the device is oriented during the test. Use the + TestEnvironmentDiscoveryService to get supported options. + type: string + TestExecution: + id: TestExecution + description: A single test executed in a single environment. + type: object + properties: + id: + description: Output only. Unique id set by the service. + type: string + matrixId: + description: Output only. Id of the containing TestMatrix. + type: string + projectId: + description: Output only. The cloud project that owns the test execution. + type: string + testSpecification: + description: Output only. How to run the test. + $ref: '#/components/schemas/TestSpecification' + shard: + description: Output only. Details about the shard. + $ref: '#/components/schemas/Shard' + environment: + description: Output only. How the host machine(s) are configured. + $ref: '#/components/schemas/Environment' + state: + description: >- + Output only. Indicates the current progress of the test execution + (e.g., FINISHED). + type: string + enumDescriptions: + - Do not use. For proto versioning only. + - The execution or matrix is being validated. + - >- + The execution or matrix is waiting for resources to become + available. + - >- + The execution is currently being processed. Can only be set on an + execution. + - >- + The execution or matrix has terminated normally. On a matrix this + means that the matrix level processing completed normally, but + individual executions may be in an ERROR state. + - >- + The execution or matrix has stopped because it encountered an + infrastructure failure. + - >- + The execution was not run because it corresponds to a unsupported + environment. Can only be set on an execution. + - >- + The execution was not run because the provided inputs are + incompatible with the requested environment. Example: requested + AndroidVersion is lower than APK's minSdkVersion Can only be set + on an execution. + - >- + The execution was not run because the provided inputs are + incompatible with the requested architecture. Example: requested + device does not support running the native code in the supplied + APK Can only be set on an execution. + - The user cancelled the execution. Can only be set on an execution. + - >- + The execution or matrix was not run because the provided inputs + are not valid. Examples: input file is not of the expected type, + is malformed/corrupt, or was flagged as malware + enum: + - TEST_STATE_UNSPECIFIED + - VALIDATING + - PENDING + - RUNNING + - FINISHED + - ERROR + - UNSUPPORTED_ENVIRONMENT + - INCOMPATIBLE_ENVIRONMENT + - INCOMPATIBLE_ARCHITECTURE + - CANCELLED + - INVALID + toolResultsStep: + description: Output only. Where the results for this execution are written. + $ref: '#/components/schemas/ToolResultsStep' + timestamp: + description: Output only. The time this test execution was initially created. + type: string + format: google-datetime + testDetails: + description: Output only. Additional details about the running test. + $ref: '#/components/schemas/TestDetails' + Shard: + id: Shard + description: Output only. Details about the shard. + type: object + properties: + shardIndex: + description: Output only. The index of the shard among all the shards. + readOnly: true + type: integer + format: int32 + numShards: + description: Output only. The total number of shards. + readOnly: true + type: integer + format: int32 + testTargetsForShard: + description: >- + Output only. Test targets for each shard. Only set for manual + sharding. + readOnly: true + $ref: '#/components/schemas/TestTargetsForShard' + estimatedShardDuration: + description: >- + Output only. The estimated shard duration based on previous test + case timing records, if available. + readOnly: true + type: string + format: google-duration + Environment: + id: Environment + description: The environment in which the test is run. + type: object + properties: + androidDevice: + description: An Android device which must be used with an Android test. + $ref: '#/components/schemas/AndroidDevice' + iosDevice: + description: An iOS device which must be used with an iOS test. + $ref: '#/components/schemas/IosDevice' + ToolResultsStep: + id: ToolResultsStep + description: >- + Represents a tool results step resource. This has the results of a + TestExecution. + type: object + properties: + projectId: + description: Output only. The cloud project that owns the tool results step. + type: string + historyId: + description: Output only. A tool results history ID. + type: string + executionId: + description: Output only. A tool results execution ID. + type: string + stepId: + description: Output only. A tool results step ID. + type: string + TestDetails: + id: TestDetails + description: Additional details about the progress of the running test. + type: object + properties: + progressMessages: + description: >- + Output only. Human-readable, detailed descriptions of the test's + progress. For example: "Provisioning a device", "Starting Test". + During the course of execution new data may be appended to the end + of progress_messages. + type: array + items: + type: string + errorMessage: + description: >- + Output only. If the TestState is ERROR, then this string will + contain human-readable details about the error. + type: string + ResultStorage: + id: ResultStorage + description: Locations where the results of running the test are stored. + type: object + properties: + googleCloudStorage: + description: Required. + $ref: '#/components/schemas/GoogleCloudStorage' + toolResultsHistory: + description: >- + The tool results history that contains the tool results execution + that results are written to. If not provided, the service will + choose an appropriate value. + $ref: '#/components/schemas/ToolResultsHistory' + toolResultsExecution: + description: Output only. The tool results execution that results are written to. + $ref: '#/components/schemas/ToolResultsExecution' + resultsUrl: + description: Output only. URL to the results in the Firebase Web Console. + type: string + GoogleCloudStorage: + id: GoogleCloudStorage + description: A storage location within Google cloud storage (GCS). + type: object + properties: + gcsPath: + description: >- + Required. The path to a directory in GCS that will eventually + contain the results for this test. The requesting user must have + write access on the bucket in the supplied path. + type: string + ToolResultsHistory: + id: ToolResultsHistory + description: Represents a tool results history resource. + type: object + properties: + projectId: + description: Required. The cloud project that owns the tool results history. + type: string + historyId: + description: Required. A tool results history ID. + type: string + ToolResultsExecution: + id: ToolResultsExecution + description: >- + Represents a tool results execution resource. This has the results of a + TestMatrix. + type: object + properties: + projectId: + description: Output only. The cloud project that owns the tool results execution. + type: string + historyId: + description: Output only. A tool results history ID. + type: string + executionId: + description: Output only. A tool results execution ID. + type: string + MatrixErrorDetail: + id: MatrixErrorDetail + description: Describes a single error or issue with a matrix. + type: object + properties: + reason: + description: >- + Output only. The reason for the error. This is a constant value in + UPPER_SNAKE_CASE that identifies the cause of the error. + readOnly: true + type: string + message: + description: >- + Output only. A human-readable message about how the error in the + TestMatrix. Expands on the `reason` field with additional details + and possible options to fix the issue. + readOnly: true + type: string + CancelTestMatrixResponse: + id: CancelTestMatrixResponse + description: Response containing the current state of the specified test matrix. + type: object + properties: + testState: + description: >- + The current rolled-up state of the test matrix. If this state is + already final, then the cancelation request will have no effect. + type: string + enumDescriptions: + - Do not use. For proto versioning only. + - The execution or matrix is being validated. + - >- + The execution or matrix is waiting for resources to become + available. + - >- + The execution is currently being processed. Can only be set on an + execution. + - >- + The execution or matrix has terminated normally. On a matrix this + means that the matrix level processing completed normally, but + individual executions may be in an ERROR state. + - >- + The execution or matrix has stopped because it encountered an + infrastructure failure. + - >- + The execution was not run because it corresponds to a unsupported + environment. Can only be set on an execution. + - >- + The execution was not run because the provided inputs are + incompatible with the requested environment. Example: requested + AndroidVersion is lower than APK's minSdkVersion Can only be set + on an execution. + - >- + The execution was not run because the provided inputs are + incompatible with the requested architecture. Example: requested + device does not support running the native code in the supplied + APK Can only be set on an execution. + - The user cancelled the execution. Can only be set on an execution. + - >- + The execution or matrix was not run because the provided inputs + are not valid. Examples: input file is not of the expected type, + is malformed/corrupt, or was flagged as malware + enum: + - TEST_STATE_UNSPECIFIED + - VALIDATING + - PENDING + - RUNNING + - FINISHED + - ERROR + - UNSUPPORTED_ENVIRONMENT + - INCOMPATIBLE_ENVIRONMENT + - INCOMPATIBLE_ARCHITECTURE + - CANCELLED + - INVALID + GetApkDetailsResponse: + id: GetApkDetailsResponse + description: Response containing the details of the specified Android application. + type: object + properties: + apkDetail: + description: Details of the Android App. + $ref: '#/components/schemas/ApkDetail' + ApkDetail: + id: ApkDetail + description: >- + Android application details based on application manifest and archive + contents. + type: object + properties: + apkManifest: + $ref: '#/components/schemas/ApkManifest' + ApkManifest: + id: ApkManifest + description: >- + An Android app manifest. See + http://developer.android.com/guide/topics/manifest/manifest-intro.html + type: object + properties: + packageName: + description: >- + Full Java-style package name for this application, e.g. + "com.example.foo". + type: string + minSdkVersion: + description: Minimum API level required for the application to run. + type: integer + format: int32 + maxSdkVersion: + description: Maximum API level on which the application is designed to run. + type: integer + format: int32 + targetSdkVersion: + description: Specifies the API Level on which the application is designed to run. + type: integer + format: int32 + applicationLabel: + description: User-readable name for the application. + type: string + intentFilters: + type: array + items: + $ref: '#/components/schemas/IntentFilter' + usesPermissionTags: + description: Permissions declared to be used by the application + type: array + items: + $ref: '#/components/schemas/UsesPermissionTag' + usesPermission: + type: array + items: + type: string + versionCode: + description: Version number used internally by the app. + type: string + format: int64 + versionName: + description: Version number shown to users. + type: string + metadata: + description: Meta-data tags defined in the manifest. + type: array + items: + $ref: '#/components/schemas/Metadata' + usesFeature: + description: Feature usage tags defined in the manifest. + type: array + items: + $ref: '#/components/schemas/UsesFeature' + services: + description: Services contained in the tag. + type: array + items: + $ref: '#/components/schemas/Service' + IntentFilter: + id: IntentFilter + description: >- + The section of an tag. + https://developer.android.com/guide/topics/manifest/intent-filter-element.html + type: object + properties: + actionNames: + description: The android:name value of the tag. + type: array + items: + type: string + categoryNames: + description: The android:name value of the tag. + type: array + items: + type: string + mimeType: + description: The android:mimeType value of the tag. + type: string + UsesPermissionTag: + id: UsesPermissionTag + description: >- + The tag within a manifest. + https://developer.android.com/guide/topics/manifest/uses-permission-element.html + type: object + properties: + name: + description: The android:name value + type: string + maxSdkVersion: + description: The android:name value + type: integer + format: int32 + Metadata: + id: Metadata + description: >- + A tag within a manifest. + https://developer.android.com/guide/topics/manifest/meta-data-element.html + type: object + properties: + name: + description: The android:name value + type: string + value: + description: The android:value value + type: string + UsesFeature: + id: UsesFeature + description: >- + A tag within a manifest. + https://developer.android.com/guide/topics/manifest/uses-feature-element.html + type: object + properties: + name: + description: The android:name value + type: string + isRequired: + description: The android:required value + type: boolean + Service: + id: Service + description: >- + The section of an tag. + https://developer.android.com/guide/topics/manifest/service-element + type: object + properties: + name: + description: The android:name value + type: string + intentFilter: + description: Intent filters in the service + type: array + items: + $ref: '#/components/schemas/IntentFilter' + DeviceSession: + id: DeviceSession + description: Protobuf message describing the device message, used from several RPCs. + type: object + properties: + name: + description: >- + Optional. Name of the DeviceSession, e.g. + "projects/{project_id}/deviceSessions/{session_id}" + type: string + displayName: + description: >- + Output only. The title of the DeviceSession to be presented in the + UI. + readOnly: true + type: string + state: + description: Output only. Current state of the DeviceSession. + readOnly: true + type: string + enumDescriptions: + - Default value. This value is unused. + - >- + Initial state of a session request. The session is being validated + for correctness and a device is not yet requested. + - The session has been validated and is in the queue for a device. + - >- + The session has been granted and the device is accepting + connections. + - >- + The session duration exceeded the device’s reservation time period + and timed out automatically. + - >- + The user is finished with the session and it was canceled by the + user while the request was still getting allocated or after + allocation and during device usage period. + - >- + Unable to complete the session because the device was unavailable + and it failed to allocate through the scheduler. For example, a + device not in the catalog was requested or the request expired in + the allocation queue. + - >- + Unable to complete the session for an internal reason, such as an + infrastructure failure. + enum: + - SESSION_STATE_UNSPECIFIED + - REQUESTED + - PENDING + - ACTIVE + - EXPIRED + - FINISHED + - UNAVAILABLE + - ERROR + stateHistories: + description: >- + Output only. The historical state transitions of the session_state + message including the current session state. + readOnly: true + type: array + items: + $ref: '#/components/schemas/SessionStateEvent' + ttl: + description: >- + Optional. The amount of time that a device will be initially + allocated for. This can eventually be extended with the + UpdateDeviceSession RPC. Default: 15 minutes. + type: string + format: google-duration + expireTime: + description: >- + Optional. If the device is still in use at this time, any + connections will be ended and the SessionState will transition from + ACTIVE to FINISHED. + type: string + format: google-datetime + inactivityTimeout: + description: >- + Output only. The interval of time that this device must be + interacted with before it transitions from ACTIVE to + TIMEOUT_INACTIVITY. + readOnly: true + type: string + format: google-duration + createTime: + description: Output only. The time that the Session was created. + readOnly: true + type: string + format: google-datetime + activeStartTime: + description: Output only. The timestamp that the session first became ACTIVE. + readOnly: true + type: string + format: google-datetime + androidDevice: + description: Required. The requested device + $ref: '#/components/schemas/AndroidDevice' + SessionStateEvent: + id: SessionStateEvent + description: >- + A message encapsulating a series of Session states and the time that the + DeviceSession first entered those states. + type: object + properties: + sessionState: + description: Output only. The session_state tracked by this event + readOnly: true + type: string + enumDescriptions: + - Default value. This value is unused. + - >- + Initial state of a session request. The session is being validated + for correctness and a device is not yet requested. + - The session has been validated and is in the queue for a device. + - >- + The session has been granted and the device is accepting + connections. + - >- + The session duration exceeded the device’s reservation time period + and timed out automatically. + - >- + The user is finished with the session and it was canceled by the + user while the request was still getting allocated or after + allocation and during device usage period. + - >- + Unable to complete the session because the device was unavailable + and it failed to allocate through the scheduler. For example, a + device not in the catalog was requested or the request expired in + the allocation queue. + - >- + Unable to complete the session for an internal reason, such as an + infrastructure failure. + enum: + - SESSION_STATE_UNSPECIFIED + - REQUESTED + - PENDING + - ACTIVE + - EXPIRED + - FINISHED + - UNAVAILABLE + - ERROR + eventTime: + description: >- + Output only. The time that the session_state first encountered that + state. + readOnly: true + type: string + format: google-datetime + stateMessage: + description: Output only. A human-readable message to explain the state. + readOnly: true + type: string + ListDeviceSessionsResponse: + id: ListDeviceSessionsResponse + description: A list of device sessions. + type: object + properties: + deviceSessions: + description: >- + The sessions matching the specified filter in the given cloud + project. + type: array + items: + $ref: '#/components/schemas/DeviceSession' + nextPageToken: + description: >- + A token, which can be sent as `page_token` to retrieve the next + page. If this field is omitted, there are no subsequent pages. + type: string + CancelDeviceSessionRequest: + id: CancelDeviceSessionRequest + description: The request object for cancelling a Device Session. + type: object + properties: {} + Empty: + id: Empty + description: >- + A generic empty message that you can re-use to avoid defining duplicated + empty messages in your APIs. A typical example is to use it as the + request or the response type of an API method. For instance: service Foo + { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } + type: object + properties: {} + TestEnvironmentCatalog: + id: TestEnvironmentCatalog + description: A description of a test environment. + type: object + properties: + androidDeviceCatalog: + description: Supported Android devices. + $ref: '#/components/schemas/AndroidDeviceCatalog' + iosDeviceCatalog: + description: Supported iOS devices. + $ref: '#/components/schemas/IosDeviceCatalog' + networkConfigurationCatalog: + description: Supported network configurations. + $ref: '#/components/schemas/NetworkConfigurationCatalog' + softwareCatalog: + description: The software test environment provided by TestExecutionService. + $ref: '#/components/schemas/ProvidedSoftwareCatalog' + deviceIpBlockCatalog: + description: The IP blocks used by devices in the test environment. + $ref: '#/components/schemas/DeviceIpBlockCatalog' + AndroidDeviceCatalog: + id: AndroidDeviceCatalog + description: The currently supported Android devices. + type: object + properties: + models: + description: The set of supported Android device models. + type: array + items: + $ref: '#/components/schemas/AndroidModel' + versions: + description: The set of supported Android OS versions. + type: array + items: + $ref: '#/components/schemas/AndroidVersion' + runtimeConfiguration: + description: The set of supported runtime configurations. + $ref: '#/components/schemas/AndroidRuntimeConfiguration' + AndroidModel: + id: AndroidModel + description: A description of an Android device tests may be run on. + type: object + properties: + id: + description: >- + The unique opaque id for this model. Use this for invoking the + TestExecutionService. + type: string + name: + description: >- + The human-readable marketing name for this device model. Examples: + "Nexus 5", "Galaxy S5". + type: string + manufacturer: + description: The manufacturer of this device. + type: string + brand: + description: >- + The company that this device is branded with. Example: "Google", + "Samsung". + type: string + codename: + description: >- + The name of the industrial design. This corresponds to + android.os.Build.DEVICE. + type: string + form: + description: Whether this device is virtual or physical. + type: string + enumDescriptions: + - Do not use. For proto versioning only. + - >- + Android virtual device using Compute Engine native virtualization. + Firebase Test Lab only. + - Actual hardware. + - >- + Android virtual device using emulator in nested virtualization. + Equivalent to Android Studio. + enum: + - DEVICE_FORM_UNSPECIFIED + - VIRTUAL + - PHYSICAL + - EMULATOR + formFactor: + description: Whether this device is a phone, tablet, wearable, etc. + type: string + enumDescriptions: + - Do not use. For proto versioning only. + - This device has the shape of a phone. + - This device has the shape of a tablet. + - This device has the shape of a watch or other wearable. + - This device has a television form factor. + - This device has an automotive form factor. + - This device has a desktop form factor. + - This device has an Extended Reality form factor. + enum: + - DEVICE_FORM_FACTOR_UNSPECIFIED + - PHONE + - TABLET + - WEARABLE + - TV + - AUTOMOTIVE + - DESKTOP + - XR + perVersionInfo: + description: Version-specific information of an Android model. + type: array + items: + $ref: '#/components/schemas/PerAndroidVersionInfo' + screenX: + description: Screen size in the horizontal (X) dimension measured in pixels. + type: integer + format: int32 + screenY: + description: Screen size in the vertical (Y) dimension measured in pixels. + type: integer + format: int32 + screenDensity: + description: Screen density in DPI. This corresponds to ro.sf.lcd_density + type: integer + format: int32 + lowFpsVideoRecording: + description: >- + True if and only if tests with this model are recorded by stitching + together screenshots. See use_low_spec_video_recording in device + config. + type: boolean + supportedVersionIds: + description: The set of Android versions this device supports. + type: array + items: + type: string + supportedAbis: + description: >- + The list of supported ABIs for this device. This corresponds to + either android.os.Build.SUPPORTED_ABIS (for API level 21 and above) + or android.os.Build.CPU_ABI/CPU_ABI2. The most preferred ABI is the + first element in the list. Elements are optionally prefixed by + "version_id:" (where version_id is the id of an AndroidVersion), + denoting an ABI that is supported only on a particular version. + type: array + items: + type: string + tags: + description: >- + Tags for this dimension. Examples: "default", "preview", + "deprecated". + type: array + items: + type: string + thumbnailUrl: + description: URL of a thumbnail image (photo) of the device. + type: string + labInfo: + description: Output only. Lab info of this device. + readOnly: true + $ref: '#/components/schemas/LabInfo' + accessDeniedReasons: + description: >- + Reasons for access denial. This model is accessible if this list is + empty, otherwise the model is viewable only. + type: array + items: + type: string + enumDescriptions: + - Do not use. For proto versioning only. + - >- + The model is for viewing purposes only. Access and utilization + require acceptance of an End User License Agreement (EULA). + enum: + - ACCESS_DENIED_REASON_UNSPECIFIED + - EULA_NOT_ACCEPTED + PerAndroidVersionInfo: + id: PerAndroidVersionInfo + description: A version-specific information of an Android model. + type: object + properties: + versionId: + description: An Android version. + type: string + deviceCapacity: + description: The number of online devices for an Android version. + type: string + enumDescriptions: + - The value of device capacity is unknown or unset. + - >- + Devices that are high in capacity (The lab has a large number of + these devices). These devices are generally suggested for running + a large number of simultaneous tests (e.g. more than 100 tests). + Please note that high capacity devices do not guarantee short wait + times due to several factors: 1. Traffic (how heavily they are + used at any given moment) 2. High capacity devices are prioritized + for certain usages, which may cause user tests to be slower than + selecting other similar device types. + - >- + Devices that are medium in capacity (The lab has a decent number + of these devices, though not as many as high capacity devices). + These devices are suitable for fewer test runs (e.g. fewer than + 100 tests) and only for low shard counts (e.g. less than 10 + shards). + - >- + Devices that are low in capacity (The lab has a small number of + these devices). These devices may be used if users need to test on + this specific device model and version. Please note that due to + low capacity, the tests may take much longer to finish, especially + if a large number of tests are invoked at once. These devices are + not suitable for test sharding. + - >- + Devices that are completely missing from the lab. These devices + are unavailable either temporarily or permanently and should not + be requested. If the device is also marked as deprecated, this + state is very likely permanent. + enum: + - DEVICE_CAPACITY_UNSPECIFIED + - DEVICE_CAPACITY_HIGH + - DEVICE_CAPACITY_MEDIUM + - DEVICE_CAPACITY_LOW + - DEVICE_CAPACITY_NONE + interactiveDeviceAvailabilityEstimate: + description: >- + Output only. The estimated wait time for a single interactive device + session using Direct Access. + readOnly: true + type: string + format: google-duration + directAccessVersionInfo: + description: >- + Output only. Identifies supported clients for DirectAccess for this + Android version. + readOnly: true + $ref: '#/components/schemas/DirectAccessVersionInfo' + DirectAccessVersionInfo: + id: DirectAccessVersionInfo + description: >- + Denotes whether Direct Access is supported, and by which client + versions. DirectAccessService is currently available as a preview to + select developers. You can register today on behalf of you and your team + at https://developer.android.com/studio/preview/android-device-streaming + type: object + properties: + directAccessSupported: + description: >- + Whether direct access is supported at all. Clients are expected to + filter down the device list to only android models and versions + which support Direct Access when that is the user intent. + type: boolean + minimumAndroidStudioVersion: + description: >- + Output only. Indicates client-device compatibility, where a device + is known to work only with certain workarounds implemented in the + Android Studio client. Expected format "major.minor.micro.patch", + e.g. "5921.22.2211.8881706". + type: string + LabInfo: + id: LabInfo + description: Lab specific information for a device. + type: object + properties: + name: + description: >- + Lab name where the device is hosted. If empty, the device is hosted + in a Google owned lab. + type: string + regionCode: + description: >- + The Unicode country/region code (CLDR) of the lab where the device + is hosted. E.g. "US" for United States, "CH" for Switzerland. + type: string + AndroidVersion: + id: AndroidVersion + description: A version of the Android OS. + type: object + properties: + id: + description: >- + An opaque id for this Android version. Use this id to invoke the + TestExecutionService. + type: string + versionString: + description: >- + A string representing this version of the Android OS. Examples: + "4.3", "4.4". + type: string + apiLevel: + description: 'The API level for this Android version. Examples: 18, 19.' + type: integer + format: int32 + codeName: + description: >- + The code name for this Android version. Examples: "JellyBean", + "KitKat". + type: string + releaseDate: + description: The date this Android version became available in the market. + $ref: '#/components/schemas/Date' + distribution: + description: Market share for this version. + $ref: '#/components/schemas/Distribution' + tags: + description: >- + Tags for this dimension. Examples: "default", "preview", + "deprecated". + type: array + items: + type: string + Date: + id: Date + description: >- + Represents a whole or partial calendar date, such as a birthday. The + time of day and time zone are either specified elsewhere or are + insignificant. The date is relative to the Gregorian Calendar. This can + represent one of the following: * A full date, with non-zero year, + month, and day values. * A month and day, with a zero year (for example, + an anniversary). * A year on its own, with a zero month and a zero day. + * A year and month, with a zero day (for example, a credit card + expiration date). Related types: * google.type.TimeOfDay * + google.type.DateTime * google.protobuf.Timestamp + type: object + properties: + year: + description: >- + Year of the date. Must be from 1 to 9999, or 0 to specify a date + without a year. + type: integer + format: int32 + month: + description: >- + Month of a year. Must be from 1 to 12, or 0 to specify a year + without a month and day. + type: integer + format: int32 + day: + description: >- + Day of a month. Must be from 1 to 31 and valid for the year and + month, or 0 to specify a year by itself or a year and month where + the day isn't significant. + type: integer + format: int32 + Distribution: + id: Distribution + description: >- + Data about the relative number of devices running a given configuration + of the Android platform. + type: object + properties: + measurementTime: + description: Output only. The time this distribution was measured. + type: string + format: google-datetime + marketShare: + description: >- + Output only. The estimated fraction (0-1) of the total market with + this configuration. + type: number + format: double + AndroidRuntimeConfiguration: + id: AndroidRuntimeConfiguration + description: Android configuration that can be selected at the time a test is run. + type: object + properties: + locales: + description: The set of available locales. + type: array + items: + $ref: '#/components/schemas/Locale' + orientations: + description: The set of available orientations. + type: array + items: + $ref: '#/components/schemas/Orientation' + Locale: + id: Locale + description: A location/region designation for language. + type: object + properties: + id: + description: 'The id for this locale. Example: "en_US".' + type: string + name: + description: 'A human-friendly name for this language/locale. Example: "English".' + type: string + region: + description: >- + A human-friendly string representing the region for this locale. + Example: "United States". Not present for every locale. + type: string + tags: + description: 'Tags for this dimension. Example: "default".' + type: array + items: + type: string + Orientation: + id: Orientation + description: Screen orientation of the device. + type: object + properties: + id: + description: 'The id for this orientation. Example: "portrait".' + type: string + name: + description: 'A human-friendly name for this orientation. Example: "portrait".' + type: string + tags: + description: 'Tags for this dimension. Example: "default".' + type: array + items: + type: string + IosDeviceCatalog: + id: IosDeviceCatalog + description: The currently supported iOS devices. + type: object + properties: + models: + description: The set of supported iOS device models. + type: array + items: + $ref: '#/components/schemas/IosModel' + versions: + description: The set of supported iOS software versions. + type: array + items: + $ref: '#/components/schemas/IosVersion' + xcodeVersions: + description: The set of supported Xcode versions. + type: array + items: + $ref: '#/components/schemas/XcodeVersion' + runtimeConfiguration: + description: The set of supported runtime configurations. + $ref: '#/components/schemas/IosRuntimeConfiguration' + IosModel: + id: IosModel + description: A description of an iOS device tests may be run on. + type: object + properties: + id: + description: >- + The unique opaque id for this model. Use this for invoking the + TestExecutionService. + type: string + name: + description: >- + The human-readable name for this device model. Examples: "iPhone + 4s", "iPad Mini 2". + type: string + supportedVersionIds: + description: The set of iOS major software versions this device supports. + type: array + items: + type: string + tags: + description: >- + Tags for this dimension. Examples: "default", "preview", + "deprecated". + type: array + items: + type: string + deviceCapabilities: + description: >- + Device capabilities. Copied from + https://developer.apple.com/library/archive/documentation/DeviceInformation/Reference/iOSDeviceCompatibility/DeviceCompatibilityMatrix/DeviceCompatibilityMatrix.html + type: array + items: + type: string + screenX: + description: Screen size in the horizontal (X) dimension measured in pixels. + type: integer + format: int32 + screenY: + description: Screen size in the vertical (Y) dimension measured in pixels. + type: integer + format: int32 + screenDensity: + description: Screen density in DPI. + type: integer + format: int32 + formFactor: + description: Whether this device is a phone, tablet, wearable, etc. + type: string + enumDescriptions: + - Do not use. For proto versioning only. + - This device has the shape of a phone. + - This device has the shape of a tablet. + - This device has the shape of a watch or other wearable. + - This device has a television form factor. + - This device has an automotive form factor. + - This device has a desktop form factor. + - This device has an Extended Reality form factor. + enum: + - DEVICE_FORM_FACTOR_UNSPECIFIED + - PHONE + - TABLET + - WEARABLE + - TV + - AUTOMOTIVE + - DESKTOP + - XR + perVersionInfo: + description: Version-specific information of an iOS model. + type: array + items: + $ref: '#/components/schemas/PerIosVersionInfo' + PerIosVersionInfo: + id: PerIosVersionInfo + description: A version-specific information of an iOS model. + type: object + properties: + versionId: + description: An iOS version. + type: string + deviceCapacity: + description: The number of online devices for an iOS version. + type: string + enumDescriptions: + - The value of device capacity is unknown or unset. + - >- + Devices that are high in capacity (The lab has a large number of + these devices). These devices are generally suggested for running + a large number of simultaneous tests (e.g. more than 100 tests). + Please note that high capacity devices do not guarantee short wait + times due to several factors: 1. Traffic (how heavily they are + used at any given moment) 2. High capacity devices are prioritized + for certain usages, which may cause user tests to be slower than + selecting other similar device types. + - >- + Devices that are medium in capacity (The lab has a decent number + of these devices, though not as many as high capacity devices). + These devices are suitable for fewer test runs (e.g. fewer than + 100 tests) and only for low shard counts (e.g. less than 10 + shards). + - >- + Devices that are low in capacity (The lab has a small number of + these devices). These devices may be used if users need to test on + this specific device model and version. Please note that due to + low capacity, the tests may take much longer to finish, especially + if a large number of tests are invoked at once. These devices are + not suitable for test sharding. + - >- + Devices that are completely missing from the lab. These devices + are unavailable either temporarily or permanently and should not + be requested. If the device is also marked as deprecated, this + state is very likely permanent. + enum: + - DEVICE_CAPACITY_UNSPECIFIED + - DEVICE_CAPACITY_HIGH + - DEVICE_CAPACITY_MEDIUM + - DEVICE_CAPACITY_LOW + - DEVICE_CAPACITY_NONE + IosVersion: + id: IosVersion + description: An iOS version. + type: object + properties: + id: + description: >- + An opaque id for this iOS version. Use this id to invoke the + TestExecutionService. + type: string + majorVersion: + description: 'An integer representing the major iOS version. Examples: "8", "9".' + type: integer + format: int32 + minorVersion: + description: 'An integer representing the minor iOS version. Examples: "1", "2".' + type: integer + format: int32 + tags: + description: >- + Tags for this dimension. Examples: "default", "preview", + "deprecated". + type: array + items: + type: string + supportedXcodeVersionIds: + description: The available Xcode versions for this version. + type: array + items: + type: string + XcodeVersion: + id: XcodeVersion + description: An Xcode version that an iOS version is compatible with. + type: object + properties: + version: + description: 'The id for this version. Example: "9.2".' + type: string + tags: + description: 'Tags for this Xcode version. Example: "default".' + type: array + items: + type: string + IosRuntimeConfiguration: + id: IosRuntimeConfiguration + description: iOS configuration that can be selected at the time a test is run. + type: object + properties: + locales: + description: The set of available locales. + type: array + items: + $ref: '#/components/schemas/Locale' + orientations: + description: The set of available orientations. + type: array + items: + $ref: '#/components/schemas/Orientation' + NetworkConfigurationCatalog: + id: NetworkConfigurationCatalog + type: object + properties: + configurations: + type: array + items: + $ref: '#/components/schemas/NetworkConfiguration' + NetworkConfiguration: + id: NetworkConfiguration + type: object + properties: + id: + description: The unique opaque id for this network traffic configuration. + type: string + upRule: + description: The emulation rule applying to the upload traffic. + $ref: '#/components/schemas/TrafficRule' + downRule: + description: The emulation rule applying to the download traffic. + $ref: '#/components/schemas/TrafficRule' + TrafficRule: + id: TrafficRule + description: Network emulation parameters. + type: object + properties: + delay: + description: Packet delay, must be >= 0. + type: string + format: google-duration + packetLossRatio: + description: Packet loss ratio (0.0 - 1.0). + type: number + format: float + packetDuplicationRatio: + description: Packet duplication ratio (0.0 - 1.0). + type: number + format: float + bandwidth: + description: Bandwidth in kbits/second. + type: number + format: float + burst: + description: Burst size in kbits. + type: number + format: float + ProvidedSoftwareCatalog: + id: ProvidedSoftwareCatalog + description: The currently provided software environment on the devices under test. + type: object + properties: + orchestratorVersion: + description: >- + Deprecated: Use AndroidX Test Orchestrator going forward. A string + representing the current version of Android Test Orchestrator that + is used in the environment. The package is available at + https://maven.google.com/web/index.html#com.android.support.test:orchestrator. + deprecated: true + type: string + androidxOrchestratorVersion: + description: >- + A string representing the current version of AndroidX Test + Orchestrator that is used in the environment. The package is + available at + https://maven.google.com/web/index.html#androidx.test:orchestrator. + type: string + DeviceIpBlockCatalog: + id: DeviceIpBlockCatalog + description: List of IP blocks used by the Firebase Test Lab + type: object + properties: + ipBlocks: + description: The device IP blocks used by Firebase Test Lab + type: array + items: + $ref: '#/components/schemas/DeviceIpBlock' + DeviceIpBlock: + id: DeviceIpBlock + description: A single device IP block + type: object + properties: + block: + description: 'An IP address block in CIDR notation eg: 34.68.194.64/29' + type: string + form: + description: Whether this block is used by physical or virtual devices + type: string + enumDescriptions: + - Do not use. For proto versioning only. + - >- + Android virtual device using Compute Engine native virtualization. + Firebase Test Lab only. + - Actual hardware. + - >- + Android virtual device using emulator in nested virtualization. + Equivalent to Android Studio. + enum: + - DEVICE_FORM_UNSPECIFIED + - VIRTUAL + - PHYSICAL + - EMULATOR + addedDate: + description: The date this block was added to Firebase Test Lab + $ref: '#/components/schemas/Date' + parameters: + access_token: + description: OAuth access token. + in: query + name: access_token + schema: + type: string + alt: + description: Data format for response. + in: query + name: alt + schema: + type: string + enum: + - json + - media + - proto + callback: + description: JSONP + in: query + name: callback + schema: + type: string + fields: + description: Selector specifying which fields to include in a partial response. + in: query + name: fields + schema: + type: string + key: + description: >- + API key. Your API key identifies your project and provides you with API + access, quota, and reports. Required unless you provide an OAuth 2.0 + token. + in: query + name: key + schema: + type: string + oauth_token: + description: OAuth 2.0 token for the current user. + in: query + name: oauth_token + schema: + type: string + prettyPrint: + description: Returns response with indentations and line breaks. + in: query + name: prettyPrint + schema: + type: boolean + quotaUser: + description: >- + Available to use for quota purposes for server-side applications. Can be + any arbitrary string assigned to a user, but should not exceed 40 + characters. + in: query + name: quotaUser + schema: + type: string + upload_protocol: + description: Upload protocol for media (e.g. "raw", "multipart"). + in: query + name: upload_protocol + schema: + type: string + uploadType: + description: Legacy upload protocol for media (e.g. "media", "multipart"). + in: query + name: uploadType + schema: + type: string + _.xgafv: + description: V1 error format. + in: query + name: $.xgafv + schema: + type: string + enum: + - '1' + - '2' + x-stackQL-resources: + test_matrices: + id: firebase.testing.test_matrices + name: test_matrices + title: Test_matrices + methods: + create: + operation: + $ref: '#/paths/~1v1~1projects~1{projectId}~1testMatrices/post' + response: + mediaType: application/json + openAPIDocKey: '200' + get: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectId}~1testMatrices~1{testMatrixId}/get + response: + mediaType: application/json + openAPIDocKey: '200' + cancel: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectId}~1testMatrices~1{testMatrixId}:cancel/post + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/test_matrices/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/test_matrices/methods/create' + update: [] + replace: [] + delete: [] + device_sessions: + id: firebase.testing.device_sessions + name: device_sessions + title: Device_sessions + methods: + create: + operation: + $ref: '#/paths/~1v1~1projects~1{projectsId}~1deviceSessions/post' + response: + mediaType: application/json + openAPIDocKey: '200' + list: + operation: + $ref: '#/paths/~1v1~1projects~1{projectsId}~1deviceSessions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.deviceSessions + get: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1deviceSessions~1{deviceSessionsId}/get + response: + mediaType: application/json + openAPIDocKey: '200' + patch: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1deviceSessions~1{deviceSessionsId}/patch + response: + mediaType: application/json + openAPIDocKey: '200' + cancel: + operation: + $ref: >- + #/paths/~1v1~1projects~1{projectsId}~1deviceSessions~1{deviceSessionsId}:cancel/post + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/device_sessions/methods/get' + - $ref: '#/components/x-stackQL-resources/device_sessions/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/device_sessions/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/device_sessions/methods/patch' + replace: [] + delete: [] + application_detail_service_apk_details: + id: firebase.testing.application_detail_service_apk_details + name: application_detail_service_apk_details + title: Application_detail_service_apk_details + methods: + get_apk_details: + operation: + $ref: '#/paths/~1v1~1applicationDetailService~1getApkDetails/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: >- + #/components/x-stackQL-resources/application_detail_service_apk_details/methods/get_apk_details + insert: [] + update: [] + replace: [] + delete: [] + test_environment_catalog: + id: firebase.testing.test_environment_catalog + name: test_environment_catalog + title: Test_environment_catalog + methods: + get: + operation: + $ref: '#/paths/~1v1~1testEnvironmentCatalog~1{environmentType}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: >- + #/components/x-stackQL-resources/test_environment_catalog/methods/get + insert: [] + update: [] + replace: [] + delete: [] +paths: + /v1/projects/{projectId}/testMatrices: + parameters: &ref_1 + - $ref: '#/components/parameters/access_token' + - $ref: '#/components/parameters/alt' + - $ref: '#/components/parameters/callback' + - $ref: '#/components/parameters/fields' + - $ref: '#/components/parameters/key' + - $ref: '#/components/parameters/oauth_token' + - $ref: '#/components/parameters/prettyPrint' + - $ref: '#/components/parameters/quotaUser' + - $ref: '#/components/parameters/upload_protocol' + - $ref: '#/components/parameters/uploadType' + - $ref: '#/components/parameters/_.xgafv' + post: + description: >- + Creates and runs a matrix of tests according to the given + specifications. Unsupported environments will be returned in the state + UNSUPPORTED. A test matrix is limited to use at most 2000 devices in + parallel. The returned matrix will not yet contain the executions that + will be created for this matrix. Execution creation happens later on and + will require a call to GetTestMatrix. May return any of the following + canonical error codes: - PERMISSION_DENIED - if the user is not + authorized to write to project - INVALID_ARGUMENT - if the request is + malformed or if the matrix tries to use too many simultaneous devices. + operationId: testing.projects.testMatrices.create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TestMatrix' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/TestMatrix' + parameters: + - in: path + name: projectId + required: true + schema: + type: string + - in: query + name: requestId + schema: + type: string + /v1/projects/{projectId}/testMatrices/{testMatrixId}: + parameters: *ref_1 + get: + description: >- + Checks the status of a test matrix and the executions once they are + created. The test matrix will contain the list of test executions to run + if and only if the resultStorage.toolResultsExecution fields have been + populated. Note: Flaky test executions may be added to the matrix at a + later stage. May return any of the following canonical error codes: - + PERMISSION_DENIED - if the user is not authorized to read project - + INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the Test + Matrix does not exist + operationId: testing.projects.testMatrices.get + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform.read-only + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform.read-only + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/TestMatrix' + parameters: + - in: path + name: projectId + required: true + schema: + type: string + - in: path + name: testMatrixId + required: true + schema: + type: string + /v1/projects/{projectId}/testMatrices/{testMatrixId}:cancel: + parameters: *ref_1 + post: + description: >- + Cancels unfinished test executions in a test matrix. This call returns + immediately and cancellation proceeds asynchronously. If the matrix is + already final, this operation will have no effect. May return any of the + following canonical error codes: - PERMISSION_DENIED - if the user is + not authorized to read project - INVALID_ARGUMENT - if the request is + malformed - NOT_FOUND - if the Test Matrix does not exist + operationId: testing.projects.testMatrices.cancel + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/CancelTestMatrixResponse' + parameters: + - in: path + name: projectId + required: true + schema: + type: string + - in: path + name: testMatrixId + required: true + schema: + type: string + /v1/projects/{projectsId}/deviceSessions: + parameters: *ref_1 + post: + description: POST /v1/projects/{project_id}/deviceSessions + operationId: testing.projects.deviceSessions.create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DeviceSession' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/DeviceSession' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + get: + description: >- + GET /v1/projects/{project_id}/deviceSessions Lists device Sessions owned + by the project user. + operationId: testing.projects.deviceSessions.list + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/ListDeviceSessionsResponse' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: query + name: pageSize + schema: + type: integer + format: int32 + - in: query + name: pageToken + schema: + type: string + - in: query + name: filter + schema: + type: string + /v1/projects/{projectsId}/deviceSessions/{deviceSessionsId}: + parameters: *ref_1 + get: + description: >- + GET /v1/projects/{project_id}/deviceSessions/{device_session_id} Return + a DeviceSession, which documents the allocation status and whether the + device is allocated. Clients making requests from this API must poll + GetDeviceSession. + operationId: testing.projects.deviceSessions.get + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/DeviceSession' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: deviceSessionsId + required: true + schema: + type: string + patch: + description: >- + PATCH + /v1/projects/{projectId}/deviceSessions/deviceSessionId}:updateDeviceSession + Updates the current device session to the fields described by the + update_mask. + operationId: testing.projects.deviceSessions.patch + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DeviceSession' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/DeviceSession' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: deviceSessionsId + required: true + schema: + type: string + - in: query + name: updateMask + schema: + type: string + format: google-fieldmask + /v1/projects/{projectsId}/deviceSessions/{deviceSessionsId}:cancel: + parameters: *ref_1 + post: + description: >- + POST /v1/projects/{project_id}/deviceSessions/{device_session_id}:cancel + Changes the DeviceSession to state FINISHED and terminates all + connections. Canceled sessions are not deleted and can be retrieved or + listed by the user until they expire based on the 28 day deletion + policy. + operationId: testing.projects.deviceSessions.cancel + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CancelDeviceSessionRequest' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/Empty' + parameters: + - in: path + name: projectsId + required: true + schema: + type: string + - in: path + name: deviceSessionsId + required: true + schema: + type: string + /v1/applicationDetailService/getApkDetails: + parameters: *ref_1 + post: + description: Gets the details of an Android application APK. + operationId: testing.applicationDetailService.getApkDetails + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/FileReference' + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetApkDetailsResponse' + parameters: + - in: query + name: bundleLocation.gcsPath + schema: + type: string + /v1/testEnvironmentCatalog/{environmentType}: + parameters: *ref_1 + get: + description: >- + Gets the catalog of supported test environments. May return any of the + following canonical error codes: - INVALID_ARGUMENT - if the request is + malformed - NOT_FOUND - if the environment type does not exist - + INTERNAL - if an internal error occurred + operationId: testing.testEnvironmentCatalog.get + security: + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform + - Oauth2: + - https://www.googleapis.com/auth/cloud-platform.read-only + Oauth2c: + - https://www.googleapis.com/auth/cloud-platform.read-only + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/TestEnvironmentCatalog' + parameters: + - in: path + name: environmentType + required: true + schema: + type: string + - in: query + name: projectId + schema: + type: string + - in: query + name: includeViewableModels + schema: + type: boolean diff --git a/providers/src/firebase/v00.00.00000/services/toolresults.yaml b/providers/src/firebase/v00.00.00000/services/toolresults.yaml index 180f3a13..8c2b5eb0 100644 --- a/providers/src/firebase/v00.00.00000/services/toolresults.yaml +++ b/providers/src/firebase/v00.00.00000/services/toolresults.yaml @@ -7,126 +7,850 @@ info: title: Cloud Tool Results API description: API to publish and access results from developer tools. version: v1beta3 - x-discovery-doc-revision: '20230105' - x-generated-date: '2023-01-06' + x-discovery-doc-revision: '20250827' + x-generated-date: '2025-08-28' externalDocs: url: https://firebase.google.com/docs/test-lab/ servers: - url: https://toolresults.googleapis.com components: + securitySchemes: + Oauth2: + type: oauth2 + description: Oauth 2.0 implicit authentication + flows: + implicit: + authorizationUrl: https://accounts.google.com/o/oauth2/auth + scopes: &ref_0 + https://www.googleapis.com/auth/cloud-platform: >- + See, edit, configure, and delete your Google Cloud data and see + the email address for your Google Account. + Oauth2c: + type: oauth2 + description: Oauth 2.0 authorization code authentication + flows: + authorizationCode: + authorizationUrl: https://accounts.google.com/o/oauth2/auth + tokenUrl: https://accounts.google.com/o/oauth2/token + scopes: *ref_0 schemas: - ListTestCasesResponse: + ListStepAccessibilityClustersResponse: + id: ListStepAccessibilityClustersResponse + description: Response message for AccessibilityService.ListStepAccessibilityClusters. type: object - id: ListTestCasesResponse properties: - testCases: + name: + description: >- + A full resource name of the step. For example, + projects/my-project/histories/bh.1234567890abcdef/executions/ + 1234567890123456789/steps/bs.1234567890abcdef Always presents. + type: string + clusters: + description: >- + A sequence of accessibility suggestions, grouped into clusters. + Within the sequence, clusters that belong to the same + SuggestionCategory should be adjacent. Within each category, + clusters should be ordered by their SuggestionPriority (ERRORs + first). The categories should be ordered by their highest priority + cluster. type: array - description: List of test cases. items: - $ref: '#/components/schemas/TestCase' - nextPageToken: + $ref: '#/components/schemas/SuggestionClusterProto' + SuggestionClusterProto: + id: SuggestionClusterProto + description: >- + A set of similar suggestions that we suspect are closely related. This + proto and most of the nested protos are branched from + foxandcrown.prelaunchreport.service.SuggestionClusterProto, replacing + PLR's dependencies with FTL's. + type: object + properties: + category: + description: >- + Category in which these types of suggestions should appear. Always + set. type: string - description: Response message for StepService.ListTestCases. - DeviceOutOfMemory: + enumDescriptions: + - '' + - '' + - '' + - '' + - '' + enum: + - unknownCategory + - contentLabeling + - touchTargetSize + - lowContrast + - implementation + suggestions: + description: >- + A sequence of suggestions. All of the suggestions within a cluster + must have the same SuggestionPriority and belong to the same + SuggestionCategory. Suggestions with the same screenshot URL should + be adjacent. + type: array + items: + $ref: '#/components/schemas/SuggestionProto' + SuggestionProto: + id: SuggestionProto type: object - description: A warning that device ran out of memory - properties: {} - id: DeviceOutOfMemory - TestTiming: + properties: + title: + description: >- + General title for the suggestion, in the user's language, without + markup. Always set. + type: string + shortMessage: + description: >- + Concise message, in the user's language, representing the + suggestion, which may contain markup. Always set. + $ref: '#/components/schemas/SafeHtmlProto' + longMessage: + description: >- + Message, in the user's language, explaining the suggestion, which + may contain markup. Always set. + $ref: '#/components/schemas/SafeHtmlProto' + priority: + description: Relative importance of a suggestion. Always set. + type: string + enumDescriptions: + - '' + - '' + - '' + - '' + enum: + - unknownPriority + - error + - warning + - info + helpUrl: + description: >- + Reference to a help center article concerning this type of + suggestion. Always set. + type: string + resourceName: + description: >- + Reference to a view element, identified by its resource name, if it + has one. + type: string + pseudoResourceId: + description: >- + A somewhat human readable identifier of the source view, if it does + not have a resource_name. This is a path within the accessibility + hierarchy, an element with resource name; similar to an XPath. + type: string + region: + description: >- + Region within the screenshot that is relevant to this suggestion. + Optional. + $ref: '#/components/schemas/RegionProto' + secondaryPriority: + description: >- + Relative importance of a suggestion as compared with other + suggestions that have the same priority and category. This is a + meaningless value that can be used to order suggestions that are in + the same category and have the same priority. The larger values have + higher priority (i.e., are more important). Optional. + type: number + format: double + screenId: + description: >- + ID of the screen for the suggestion. It is used for getting the + corresponding screenshot path. For example, screen_id "1" + corresponds to "1.png" file in GCS. Always set. + type: string + SafeHtmlProto: + id: SafeHtmlProto + description: >- + IMPORTANT: It is unsafe to accept this message from an untrusted source, + since it's trivial for an attacker to forge serialized messages that + don't fulfill the type's safety contract -- for example, it could + contain attacker controlled script. A system which receives a + SafeHtmlProto implicitly trusts the producer of the SafeHtmlProto. So, + it's generally safe to return this message in RPC responses, but + generally unsafe to accept it in RPC requests. type: object - id: TestTiming - description: Testing timing break down to know phases. properties: - testProcessDuration: - description: 'How long it took to run the test process. - In response: present if previously set. - In create/update request: optional' - $ref: '#/components/schemas/Duration' - MergedResult: + privateDoNotAccessOrElseSafeHtmlWrappedValue: + description: >- + IMPORTANT: Never set or read this field, even from tests, it is + private. See documentation at the top of .proto file for programming + language packages with which to create or read this message. + type: string + RegionProto: + id: RegionProto + description: A rectangular region. + type: object properties: - outcome: - $ref: '#/components/schemas/Outcome' - description: Outcome of the resource + topPx: + description: The top of the rectangle, in pixels. Always set. + type: integer + format: int32 + leftPx: + description: The left side of the rectangle, in pixels. Always set. + type: integer + format: int32 + heightPx: + description: The height, in pixels. Always set. + type: integer + format: int32 + widthPx: + description: The width, in pixels. Always set. + type: integer + format: int32 + Step: + id: Step + description: >- + A Step represents a single operation performed as part of Execution. A + step can be used to represent the execution of a tool ( for example a + test runner execution or an execution of a compiler). Steps can overlap + (for instance two steps might have the same start time if some + operations are done in parallel). Here is an example, let's consider + that we have a continuous build is executing a test runner for each + iteration. The workflow would look like: - user creates a Execution with + id 1 - user creates a TestExecutionStep with id 100 for Execution 1 - + user update TestExecutionStep with id 100 to add a raw xml log + the + service parses the xml logs and returns a TestExecutionStep with updated + TestResult(s). - user update the status of TestExecutionStep with id 100 + to COMPLETE A Step can be updated until its state is set to COMPLETE at + which points it becomes immutable. + type: object + properties: + testExecutionStep: + description: An execution of a test runner. + $ref: '#/components/schemas/TestExecutionStep' + toolExecutionStep: + description: An execution of a tool (used for steps we don't explicitly support). + $ref: '#/components/schemas/ToolExecutionStep' + stepId: + description: >- + A unique identifier within a Execution for this Step. Returns + INVALID_ARGUMENT if this field is set or overwritten by the caller. + - In response: always set - In create/update request: never set + type: string + creationTime: + description: >- + The time when the step was created. - In response: always set - In + create/update request: never set + $ref: '#/components/schemas/Timestamp' + completionTime: + description: >- + The time when the step status was set to complete. This value will + be set automatically when state transitions to COMPLETE. - In + response: set if the execution state is COMPLETE. - In create/update + request: never set + $ref: '#/components/schemas/Timestamp' + name: + description: >- + A short human-readable name to display in the UI. Maximum of 100 + characters. For example: Clean build A PRECONDITION_FAILED will be + returned upon creating a new step if it shares its name and + dimension_value with an existing step. If two steps represent a + similar action, but have different dimension values, they should + share the same name. For instance, if the same set of tests is run + on two different platforms, the two steps should have the same name. + - In response: always set - In create request: always set - In + update request: never set + type: string + description: + description: >- + A description of this tool For example: mvn clean package -D + skipTests=true - In response: present if set by create/update + request - In create/update request: optional + type: string state: + description: >- + The initial state is IN_PROGRESS. The only legal state transitions + are * IN_PROGRESS -> COMPLETE A PRECONDITION_FAILED will be returned + if an invalid transition is requested. It is valid to create Step + with a state set to COMPLETE. The state can only be set to COMPLETE + once. A PRECONDITION_FAILED will be returned if the state is set to + COMPLETE multiple times. - In response: always set - In + create/update request: optional + type: string + enumDescriptions: + - >- + Should never be in this state. Exists for proto deserialization + backward compatibility. + - >- + The Execution/Step is created, ready to run, but not running yet. + If an Execution/Step is created without initial state, it is + assumed that the Execution/Step is in PENDING state. + - The Execution/Step is in progress. + - >- + The finalized, immutable state. Steps/Executions in this state + cannot be modified. enum: - unknownState - pending - inProgress - complete - enumDescriptions: - - Should never be in this state. Exists for proto deserialization backward compatibility. - - The Execution/Step is created, ready to run, but not running yet. If an Execution/Step is created without initial state, it is assumed that the Execution/Step is in PENDING state. - - The Execution/Step is in progress. - - The finalized, immutable state. Steps/Executions in this state cannot be modified. - type: string - description: State of the resource + outcome: + description: >- + Classification of the result, for example into SUCCESS or FAILURE - + In response: present if set by create/update request - In + create/update request: optional + $ref: '#/components/schemas/Outcome' + hasImages: + description: >- + Whether any of the outputs of this step are images whose thumbnails + can be fetched with ListThumbnails. - In response: always set - In + create/update request: never set + type: boolean + labels: + description: >- + Arbitrary user-supplied key/value pairs that are associated with the + step. Users are responsible for managing the key namespace such that + keys don't accidentally collide. An INVALID_ARGUMENT will be + returned if the number of labels exceeds 100 or if the length of any + of the keys or values exceeds 100 characters. - In response: always + set - In create request: optional - In update request: optional; any + new key/value pair will be added to the map, and any new value for + an existing key will update that key's value + type: array + items: + $ref: '#/components/schemas/StepLabelsEntry' + dimensionValue: + description: >- + If the execution containing this step has any dimension_definition + set, then this field allows the child to specify the values of the + dimensions. The keys must exactly match the dimension_definition of + the execution. For example, if the execution has + `dimension_definition = ['attempt', 'device']` then a step must + define values for those dimensions, eg. `dimension_value = + ['attempt': '1', 'device': 'Nexus 6']` If a step does not + participate in one dimension of the matrix, the value for that + dimension should be empty string. For example, if one of the tests + is executed by a runner which does not support retries, the step + could have `dimension_value = ['attempt': '', 'device': 'Nexus 6']` + If the step does not participate in any dimensions of the matrix, it + may leave dimension_value unset. A PRECONDITION_FAILED will be + returned if any of the keys do not exist in the dimension_definition + of the execution. A PRECONDITION_FAILED will be returned if another + step in this execution already has the same name and + dimension_value, but differs on other data fields, for example, step + field is different. A PRECONDITION_FAILED will be returned if + dimension_value is set, and there is a dimension_definition in the + execution which is not specified as one of the keys. - In response: + present if set by create - In create request: optional - In update + request: never set + type: array + items: + $ref: '#/components/schemas/StepDimensionValueEntry' + runDuration: + description: >- + How long it took for this step to run. If unset, this is set to the + difference between creation_time and completion_time when the step + is set to the COMPLETE state. In some cases, it is appropriate to + set this value separately: For instance, if a step is created, but + the operation it represents is queued for a few minutes before it + executes, it would be appropriate not to include the time spent + queued in its run_duration. PRECONDITION_FAILED will be returned if + one attempts to set a run_duration on a step which already has this + field set. - In response: present if previously set; always present + on COMPLETE step - In create request: optional - In update request: + optional + $ref: '#/components/schemas/Duration' + deviceUsageDuration: + description: >- + How much the device resource is used to perform the test. This is + the device usage used for billing purpose, which is different from + the run_duration, for example, infrastructure failure won't be + charged for device usage. PRECONDITION_FAILED will be returned if + one attempts to set a device_usage on a step which already has this + field set. - In response: present if previously set. - In create + request: optional - In update request: optional + $ref: '#/components/schemas/Duration' + multiStep: + description: >- + Details when multiple steps are run with the same configuration as a + group. These details can be used identify which group this step is + part of. It also identifies the groups 'primary step' which indexes + all the group members. - In response: present if previously set. - + In create request: optional, set iff this step was performed more + than once. - In update request: optional + $ref: '#/components/schemas/MultiStep' + TestExecutionStep: + id: TestExecutionStep + description: >- + A step that represents running tests. It accepts ant-junit xml files + which will be parsed into structured test results by the service. Xml + file paths are updated in order to append more files, however they can't + be deleted. Users can also add test results manually by using the + test_result field. + type: object + properties: testSuiteOverviews: - description: 'The combined and rolled-up result of each test suite that was run as part of this environment. Combining: When the test cases from a suite are run in different steps (sharding), the results are added back together in one overview. (e.g., if shard1 has 2 failures and shard2 has 1 failure than the overview failure_count = 3). Rollup: When test cases from the same suite are run multiple times (flaky), the results are combined (e.g., if testcase1.run1 fails, testcase1.run2 passes, and both testcase2.run1 and testcase2.run2 fail then the overview flaky_count = 1 and failure_count = 1).' + description: >- + List of test suite overview contents. This could be parsed from + xUnit XML log by server, or uploaded directly by user. This + references should only be called when test suites are fully parsed + or uploaded. The maximum allowed number of test suite overviews per + step is 1000. - In response: always set - In create request: + optional - In update request: never (use publishXunitXmlFiles custom + method instead) type: array items: $ref: '#/components/schemas/TestSuiteOverview' - id: MergedResult - description: Merged test result for environment. If the environment has only one step (no reruns or shards), then the merged result is the same as the step result. If the environment has multiple shards and/or reruns, then the results of shards and reruns that belong to the same environment are merged into one environment result. + toolExecution: + description: >- + Represents the execution of the test runner. The exit code of this + tool will be used to determine if the test passed. - In response: + always set - In create/update request: optional + $ref: '#/components/schemas/ToolExecution' + testIssues: + description: >- + Issues observed during the test execution. For example, if the + mobile app under test crashed during the test, the error message and + the stack trace content can be recorded here to assist debugging. - + In response: present if set by create or update - In create/update + request: optional + type: array + items: + $ref: '#/components/schemas/TestIssue' + testTiming: + description: >- + The timing break down of the test execution. - In response: present + if set by create or update - In create/update request: optional + $ref: '#/components/schemas/TestTiming' + TestSuiteOverview: + id: TestSuiteOverview + description: >- + A summary of a test suite result either parsed from XML or uploaded + directly by a user. Note: the API related comments are for StepService + only. This message is also being used in ExecutionService in a read only + mode for the corresponding step. type: object - StepLabelsEntry: + properties: + xmlSource: + description: >- + If this test suite was parsed from XML, this is the URI where the + original XML file is stored. Note: Multiple test suites can share + the same xml_source Returns INVALID_ARGUMENT if the uri format is + not supported. - In create/response: optional - In update request: + never + $ref: '#/components/schemas/FileReference' + name: + description: >- + The name of the test suite. - In create/response: always set - In + update request: never + type: string + totalCount: + description: >- + Number of test cases, typically set by the service by parsing the + xml_source. - In create/response: always set - In update request: + never + type: integer + format: int32 + failureCount: + description: >- + Number of failed test cases, typically set by the service by parsing + the xml_source. May also be set by the user. - In create/response: + always set - In update request: never + type: integer + format: int32 + errorCount: + description: >- + Number of test cases in error, typically set by the service by + parsing the xml_source. - In create/response: always set - In update + request: never + type: integer + format: int32 + skippedCount: + description: >- + Number of test cases not run, typically set by the service by + parsing the xml_source. - In create/response: always set - In update + request: never + type: integer + format: int32 + flakyCount: + description: >- + Number of flaky test cases, set by the service by rolling up flaky + test attempts. Present only for rollup test suite overview at + environment level. A step cannot have flaky test cases. + type: integer + format: int32 + elapsedTime: + description: Elapsed time of test suite. + $ref: '#/components/schemas/Duration' + FileReference: + id: FileReference + description: A reference to a file. type: object properties: - key: + fileUri: + description: >- + The URI of a file stored in Google Cloud Storage. For example: + http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil + format: gs://mybucket/path/to/test.xml with version-specific info, + gs://mybucket/path/to/test.xml#1360383693690000 An INVALID_ARGUMENT + error will be returned if the URI format is not supported. - In + response: always set - In create/update request: always set type: string - value: + Duration: + id: Duration + description: ' A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". It is related to Timestamp in that the difference between two Timestamp values is a Duration and it can be added or subtracted from a Timestamp. Range is approximately +-10,000 years.' + type: object + properties: + seconds: + description: >- + Signed seconds of the span of time. Must be from -315,576,000,000 to + +315,576,000,000 inclusive. Note: these bounds are computed from: 60 + sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years type: string - id: StepLabelsEntry - NonSdkApiUsageViolation: + format: int64 + nanos: + description: >- + Signed fractions of a second at nanosecond resolution of the span of + time. Durations less than one second are represented with a 0 + `seconds` field and a positive or negative `nanos` field. For + durations of one second or more, a non-zero value for the `nanos` + field must be of the same sign as the `seconds` field. Must be from + -999,999,999 to +999,999,999 inclusive. + type: integer + format: int32 + ToolExecution: + id: ToolExecution + description: >- + An execution of an arbitrary tool. It could be a test runner or a tool + copying artifacts or deploying code. + type: object properties: - apiSignatures: + commandLineArguments: + description: >- + The full tokenized command line including the program name + (equivalent to argv in a C program). - In response: present if set + by create request - In create request: optional - In update request: + never set type: array - description: Signatures of a subset of those hidden API's. items: type: string - uniqueApis: - description: Total number of unique hidden API's accessed. + toolLogs: + description: >- + References to any plain text logs output the tool execution. This + field can be set before the tool has exited in order to be able to + have access to a live view of the logs while the tool is running. + The maximum allowed number of tool logs per step is 1000. - In + response: present if set by create/update request - In create + request: optional - In update request: optional, any value provided + will be appended to the existing list + type: array + items: + $ref: '#/components/schemas/FileReference' + exitCode: + description: >- + Tool execution exit code. This field will be set once the tool has + exited. - In response: present if set by create/update request - In + create request: optional - In update request: optional, a + FAILED_PRECONDITION error will be returned if an exit_code is + already set. + $ref: '#/components/schemas/ToolExitCode' + toolOutputs: + description: >- + References to opaque files of any format output by the tool + execution. The maximum allowed number of tool outputs per step is + 1000. - In response: present if set by create/update request - In + create request: optional - In update request: optional, any value + provided will be appended to the existing list + type: array + items: + $ref: '#/components/schemas/ToolOutputReference' + ToolExitCode: + id: ToolExitCode + description: Exit code from a tool execution. + type: object + properties: + number: + description: >- + Tool execution exit code. A value of 0 means that the execution was + successful. - In response: always set - In create/update request: + always set type: integer format: int32 - id: NonSdkApiUsageViolation + ToolOutputReference: + id: ToolOutputReference + description: A reference to a ToolExecution output file. type: object - description: Additional details for a non-sdk API usage violation. - IosTest: - id: IosTest properties: - iosRoboTest: - description: An iOS Robo test. - $ref: '#/components/schemas/IosRoboTest' - iosAppInfo: - $ref: '#/components/schemas/IosAppInfo' - description: Information about the application under test. - testTimeout: - $ref: '#/components/schemas/Duration' - description: Max time a test is allowed to run before it is automatically cancelled. - iosXcTest: - description: An iOS XCTest. - $ref: '#/components/schemas/IosXcTest' - iosTestLoop: - $ref: '#/components/schemas/IosTestLoop' - description: An iOS test loop. + output: + description: >- + A FileReference to an output file. - In response: always set - In + create/update request: always set + $ref: '#/components/schemas/FileReference' + creationTime: + description: >- + The creation time of the file. - In response: present if set by + create/update request - In create/update request: optional + $ref: '#/components/schemas/Timestamp' + testCase: + description: >- + The test case to which this output file belongs. - In response: + present if set by create/update request - In create/update request: + optional + $ref: '#/components/schemas/TestCaseReference' + Timestamp: + id: Timestamp + description: >- + A Timestamp represents a point in time independent of any time zone or + local calendar, encoded as a count of seconds and fractions of seconds + at nanosecond resolution. The count is relative to an epoch at UTC + midnight on January 1, 1970, in the proleptic Gregorian calendar which + extends the Gregorian calendar backwards to year one. All minutes are 60 + seconds long. Leap seconds are "smeared" so that no leap second table is + needed for interpretation, using a [24-hour linear + smear](https://developers.google.com/time/smear). The range is from + 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting + to that range, we ensure that we can convert to and from [RFC + 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. type: object - description: A iOS mobile test specification - IndividualOutcome: + properties: + seconds: + description: >- + Represents seconds of UTC time since Unix epoch + 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + 9999-12-31T23:59:59Z inclusive. + type: string + format: int64 + nanos: + description: >- + Non-negative fractions of a second at nanosecond resolution. + Negative second values with fractions must still have non-negative + nanos values that count forward in time. Must be from 0 to + 999,999,999 inclusive. + type: integer + format: int32 + TestCaseReference: + id: TestCaseReference + description: >- + A reference to a test case. Test case references are canonically ordered + lexicographically by these three factors: * First, by test_suite_name. * + Second, by class_name. * Third, by name. type: object - description: Step Id and outcome of each individual step that was run as a group with other steps with the same configuration. - id: IndividualOutcome properties: - stepId: + name: + description: The name of the test case. Required. type: string - runDuration: + className: + description: The name of the class. + type: string + testSuiteName: + description: The name of the test suite to which this test case belongs. + type: string + TestIssue: + id: TestIssue + description: An issue detected occurring during a test execution. + type: object + properties: + errorMessage: + description: A brief human-readable message describing the issue. Required. + type: string + stackTrace: + description: Deprecated in favor of stack trace fields inside specific warnings. + deprecated: true + $ref: '#/components/schemas/StackTrace' + warning: + description: >- + Warning message with additional details of the issue. Should always + be a message from com.google.devtools.toolresults.v1.warnings + $ref: '#/components/schemas/Any' + severity: + description: Severity of issue. Required. + type: string + enumDescriptions: + - Default unspecified severity. Do not use. For versioning only. + - >- + Non critical issue, providing users with some info about the test + run. + - >- + Non critical issue, providing users with some hints on improving + their testing experience, e.g., suggesting to use Game Loops. + - Potentially critical issue. + - Critical issue. + enum: + - unspecifiedSeverity + - info + - suggestion + - warning + - severe + type: + description: Type of issue. Required. + type: string + enumDescriptions: + - Default unspecified type. Do not use. For versioning only. + - Issue is a fatal exception. + - Issue is a native crash. + - Issue is an ANR crash. + - Issue is an unused robo directive. + - Issue is a suggestion to use orchestrator. + - Issue with finding a launcher activity + - Issue with resolving a user-provided intent to start an activity + - A Robo script was not fully executed. + - A Robo script was fully and successfully executed. + - The APK failed to install. + - The app-under-test has deep links, but none were provided to Robo. + - App accessed a non-sdk Api. + - App accessed a non-sdk Api (new detailed report) + - >- + Robo crawl encountered at least one screen with elements that are + not Android UI widgets. + - Robo crawl encountered at least one probable login screen. + - Robo signed in with Google. + - iOS App crashed with an exception. + - iOS App crashed without an exception (e.g. killed). + - Robo crawl involved performing some monkey actions. + - Robo crawl used a Robo directive. + - Robo crawl used a Robo directive to ignore an UI element. + - Robo did not crawl some potentially important parts of the app. + - Robo crawl involved some in-app purchases. + - Crash dialog was detected during the test execution + - UI element depth is greater than the threshold + - Blank screen is found in the Robo crawl + - Overlapping UI elements are found in the Robo crawl + - An uncaught Unity exception was detected (these don't crash apps). + - Device running out of memory was detected + - Problems detected while collecting logcat + - >- + Robo detected a splash screen provided by app (vs. Android OS + splash screen). + - There was an issue with the assets in this test. + enum: + - unspecifiedType + - fatalException + - nativeCrash + - anr + - unusedRoboDirective + - compatibleWithOrchestrator + - launcherActivityNotFound + - startActivityNotFound + - incompleteRoboScriptExecution + - completeRoboScriptExecution + - failedToInstall + - availableDeepLinks + - nonSdkApiUsageViolation + - nonSdkApiUsageReport + - encounteredNonAndroidUiWidgetScreen + - encounteredLoginScreen + - performedGoogleLogin + - iosException + - iosCrash + - performedMonkeyActions + - usedRoboDirective + - usedRoboIgnoreDirective + - insufficientCoverage + - inAppPurchases + - crashDialogError + - uiElementsTooDeep + - blankScreen + - overlappingUiElements + - unityException + - deviceOutOfMemory + - logcatCollectionError + - detectedAppSplashScreen + - assetIssue + category: + description: Category of issue. Required. + type: string + enumDescriptions: + - Default unspecified category. Do not use. For versioning only. + - >- + Issue is not specific to a particular test kind (e.g., a native + crash). + - Issue is specific to Robo run. + enum: + - unspecifiedCategory + - common + - robo + StackTrace: + id: StackTrace + description: A stacktrace. + type: object + properties: + exception: + description: The stack trace message. Required + type: string + Any: + id: Any + description: ' `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := ptypes.MarshalAny(foo) ... foo := &pb.Foo{} if err := ptypes.UnmarshalAny(any, foo); err != nil { ... } The pack methods provided by protobuf library will by default use ''type.googleapis.com/full.type.name'' as the type URL and the unpack methods only use the fully qualified type name after the last ''/'' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". # JSON The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message google.protobuf.Duration): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" }' + type: object + properties: + typeUrl: + description: >- + A URL/resource name that uniquely identifies the type of the + serialized protocol buffer message. This string must contain at + least one "/" character. The last segment of the URL's path must + represent the fully qualified name of the type (as in + `path/google.protobuf.Duration`). The name should be in a canonical + form (e.g., leading "." is not accepted). In practice, teams usually + precompile into the binary all types that they expect it to use in + the context of Any. However, for URLs which use the scheme `http`, + `https`, or no scheme, one can optionally set up a type server that + maps type URLs to message definitions as follows: * If no scheme is + provided, `https` is assumed. * An HTTP GET on the URL must yield a + google.protobuf.Type value in binary format, or produce an error. * + Applications are allowed to cache lookup results based on the URL, + or have them precompiled into a binary to avoid any lookup. + Therefore, binary compatibility needs to be preserved on changes to + types. (Use versioned type names to manage breaking changes.) Note: + this functionality is not currently available in the official + protobuf release, and it is not used for type URLs beginning with + type.googleapis.com. Schemes other than `http`, `https` (or the + empty scheme) might be used with implementation specific semantics. + type: string + value: + description: >- + Must be a valid serialized protocol buffer of the above specified + type. + type: string + format: byte + TestTiming: + id: TestTiming + description: Testing timing break down to know phases. + type: object + properties: + testProcessDuration: + description: >- + How long it took to run the test process. - In response: present if + previously set. - In create/update request: optional $ref: '#/components/schemas/Duration' - description: How long it took for this step to run. - outcomeSummary: + ToolExecutionStep: + id: ToolExecutionStep + description: >- + Generic tool step to be used for binaries we do not explicitly support. + For example: running cp to copy artifacts from one location to another. + type: object + properties: + toolExecution: + description: >- + A Tool execution. - In response: present if set by create/update + request - In create/update request: optional + $ref: '#/components/schemas/ToolExecution' + Outcome: + id: Outcome + description: Interprets a result so that humans and machines can act on it. + type: object + properties: + summary: + description: The simplest way to interpret a result. Required + type: string enumDescriptions: - Do not use. For proto versioning only. - - 'The test matrix run was successful, for instance: - All the test cases passed. - Robo did not detect a crash of the application under test.' - - 'A run failed, for instance: - One or more test case failed. - A test timed out. - The application under test crashed.' - - Something unexpected happened. The run should still be considered unsuccessful but this is likely a transient problem and re-running the test might be successful. - - 'All tests were skipped, for instance: - All device configurations were incompatible.' - - A group of steps that were run with the same configuration had both failure and success outcomes. - type: string + - >- + The test matrix run was successful, for instance: - All the test + cases passed. - Robo did not detect a crash of the application + under test. + - >- + A run failed, for instance: - One or more test case failed. - A + test timed out. - The application under test crashed. + - >- + Something unexpected happened. The run should still be considered + unsuccessful but this is likely a transient problem and re-running + the test might be successful. + - >- + All tests were skipped, for instance: - All device configurations + were incompatible. + - >- + A group of steps that were run with the same configuration had + both failure and success outcomes. enum: - unset - success @@ -134,21 +858,180 @@ components: - inconclusive - skipped - flaky + successDetail: + description: >- + More information about a SUCCESS outcome. Returns INVALID_ARGUMENT + if this field is set but the summary is not SUCCESS. Optional + $ref: '#/components/schemas/SuccessDetail' + failureDetail: + description: >- + More information about a FAILURE outcome. Returns INVALID_ARGUMENT + if this field is set but the summary is not FAILURE. Optional + $ref: '#/components/schemas/FailureDetail' + inconclusiveDetail: + description: >- + More information about an INCONCLUSIVE outcome. Returns + INVALID_ARGUMENT if this field is set but the summary is not + INCONCLUSIVE. Optional + $ref: '#/components/schemas/InconclusiveDetail' + skippedDetail: + description: >- + More information about a SKIPPED outcome. Returns INVALID_ARGUMENT + if this field is set but the summary is not SKIPPED. Optional + $ref: '#/components/schemas/SkippedDetail' + SuccessDetail: + id: SuccessDetail + description: Details for an outcome with a SUCCESS outcome summary. LINT.IfChange + type: object + properties: + otherNativeCrash: + description: If a native process other than the app crashed. + type: boolean + FailureDetail: + id: FailureDetail + description: Details for an outcome with a FAILURE outcome summary. + type: object + properties: + crashed: + description: >- + If the failure was severe because the system (app) under test + crashed. + type: boolean + timedOut: + description: If the test overran some time limit, and that is why it failed. + type: boolean + notInstalled: + description: >- + If an app is not installed and thus no test can be run with the app. + This might be caused by trying to run a test on an unsupported + platform. + type: boolean + otherNativeCrash: + description: If a native process (including any other than the app) crashed. + type: boolean + unableToCrawl: + description: >- + If the robo was unable to crawl the app; perhaps because the app did + not start. + type: boolean + failedRoboscript: + description: >- + If the Roboscript failed to complete successfully, e.g., because a + Roboscript action or assertion failed or a Roboscript action could + not be matched during the entire crawl. + type: boolean + deviceOutOfMemory: + description: >- + If the device ran out of memory during a test, causing the test to + crash. + type: boolean + InconclusiveDetail: + id: InconclusiveDetail + description: Details for an outcome with an INCONCLUSIVE outcome summary. + type: object + properties: + infrastructureFailure: + description: >- + If the test runner could not determine success or failure because + the test depends on a component other than the system under test + which failed. For example, a mobile test requires provisioning a + device where the test executes, and that provisioning can fail. + type: boolean + abortedByUser: + description: >- + If the end user aborted the test execution before a pass or fail + could be determined. For example, the user pressed ctrl-c which sent + a kill signal to the test runner while the test was running. + type: boolean + hasErrorLogs: + description: >- + If results are being provided to the user in certain cases of + infrastructure failures + type: boolean + SkippedDetail: + id: SkippedDetail + description: Details for an outcome with a SKIPPED outcome summary. + type: object + properties: + incompatibleDevice: + description: >- + If the requested OS version doesn't run on the specific device + model. + type: boolean + incompatibleAppVersion: + description: If the App doesn't support the specific API level. + type: boolean + incompatibleArchitecture: + description: >- + If the App doesn't run on the specific architecture, for example, + x86. + type: boolean + StepLabelsEntry: + id: StepLabelsEntry + type: object + properties: + key: + type: string + value: + type: string + StepDimensionValueEntry: + id: StepDimensionValueEntry + type: object + properties: + key: + type: string + value: + type: string + MultiStep: + id: MultiStep + description: >- + Details when multiple steps are run with the same configuration as a + group. + type: object + properties: + primaryStepId: + description: Step Id of the primary (original) step, which might be this step. + type: string multistepNumber: + description: >- + Unique int given to each step. Ranges from 0(inclusive) to total + number of steps(exclusive). The primary step is 0. type: integer format: int32 - description: Unique int given to each step. Ranges from 0(inclusive) to total number of steps(exclusive). The primary step is 0. + primaryStep: + description: Present if it is a primary (original) step. + $ref: '#/components/schemas/PrimaryStep' PrimaryStep: + id: PrimaryStep + description: >- + Stores rollup test status of multiple steps that were run as a group and + outcome of each individual step. type: object properties: rollUp: + description: >- + Rollup test status of multiple steps that were run with the same + configuration as a group. + type: string enumDescriptions: - Do not use. For proto versioning only. - - 'The test matrix run was successful, for instance: - All the test cases passed. - Robo did not detect a crash of the application under test.' - - 'A run failed, for instance: - One or more test case failed. - A test timed out. - The application under test crashed.' - - Something unexpected happened. The run should still be considered unsuccessful but this is likely a transient problem and re-running the test might be successful. - - 'All tests were skipped, for instance: - All device configurations were incompatible.' - - A group of steps that were run with the same configuration had both failure and success outcomes. + - >- + The test matrix run was successful, for instance: - All the test + cases passed. - Robo did not detect a crash of the application + under test. + - >- + A run failed, for instance: - One or more test case failed. - A + test timed out. - The application under test crashed. + - >- + Something unexpected happened. The run should still be considered + unsuccessful but this is likely a transient problem and re-running + the test might be successful. + - >- + All tests were skipped, for instance: - All device configurations + were incompatible. + - >- + A group of steps that were run with the same configuration had + both failure and success outcomes. enum: - unset - success @@ -156,531 +1039,555 @@ components: - inconclusive - skipped - flaky - description: Rollup test status of multiple steps that were run with the same configuration as a group. - type: string individualOutcome: description: Step Id and outcome of each individual step. - items: - $ref: '#/components/schemas/IndividualOutcome' - type: array - id: PrimaryStep - description: Stores rollup test status of multiple steps that were run as a group and outcome of each individual step. - ListScreenshotClustersResponse: - id: ListScreenshotClustersResponse - properties: - clusters: - description: The set of clusters associated with an execution Always set - type: array - items: - $ref: '#/components/schemas/ScreenshotCluster' - type: object - ListPerfSampleSeriesResponse: - id: ListPerfSampleSeriesResponse - properties: - perfSampleSeries: - items: - $ref: '#/components/schemas/PerfSampleSeries' - description: The resulting PerfSampleSeries sorted by id - type: array - type: object - NonSdkApiInsight: - properties: - upgradeInsight: - $ref: '#/components/schemas/UpgradeInsight' - description: An insight indicating that the hidden API usage originates from the use of a library that needs to be upgraded. - pendingGoogleUpdateInsight: - $ref: '#/components/schemas/PendingGoogleUpdateInsight' - description: An insight indicating that the hidden API usage originates from a Google-provided library. - exampleTraceMessages: type: array items: - type: string - description: Optional sample stack traces, for which this insight applies (there should be at least one). - matcherId: - description: A unique ID, to be used for determining the effectiveness of this particular insight in the context of a matcher. (required) - type: string - description: Non-SDK API insights (to address debugging solutions). - type: object - id: NonSdkApiInsight - Environment: - id: Environment + $ref: '#/components/schemas/IndividualOutcome' + IndividualOutcome: + id: IndividualOutcome + description: >- + Step Id and outcome of each individual step that was run as a group with + other steps with the same configuration. type: object properties: - environmentResult: - description: Merged result of the environment. - $ref: '#/components/schemas/MergedResult' - displayName: - description: 'A short human-readable name to display in the UI. Maximum of 100 characters. For example: Nexus 5, API 27.' - type: string - creationTime: - description: Output only. The time when the Environment was created. - $ref: '#/components/schemas/Timestamp' - executionId: - description: Output only. An Execution id. - type: string - dimensionValue: - type: array - items: - $ref: '#/components/schemas/EnvironmentDimensionValueEntry' - description: 'Dimension values describing the environment. Dimension values always consist of "Model", "Version", "Locale", and "Orientation". - In response: always set - In create request: always set - In update request: never set' - completionTime: - $ref: '#/components/schemas/Timestamp' - description: Output only. The time when the Environment status was set to complete. This value will be set automatically when state transitions to COMPLETE. - resultsStorage: - $ref: '#/components/schemas/ResultsStorage' - description: The location where output files are stored in the user bucket. - environmentId: - type: string - description: Output only. An Environment id. - projectId: - description: Output only. A Project id. - type: string - shardSummaries: - description: Output only. Summaries of shards. Only one shard will present unless sharding feature is enabled in TestExecutionService. - items: - $ref: '#/components/schemas/ShardSummary' - type: array - historyId: + stepId: type: string - description: Output only. A History id. - description: An Environment represents the set of test runs (Steps) from the parent Execution that are configured with the same set of dimensions (Model, Version, Locale, and Orientation). Multiple such runs occur particularly because of features like sharding (splitting up a test suite to run in parallel across devices) and reruns (running a test multiple times to check for different outcomes). - UsedRoboDirective: - id: UsedRoboDirective - properties: - resourceName: + outcomeSummary: type: string - description: The name of the resource that was used. - type: object - description: Additional details of a used Robo directive. - Thumbnail: - id: Thumbnail - type: object - properties: - widthPx: - format: int32 - description: The width of the thumbnail, in pixels. Always set. + enumDescriptions: + - Do not use. For proto versioning only. + - >- + The test matrix run was successful, for instance: - All the test + cases passed. - Robo did not detect a crash of the application + under test. + - >- + A run failed, for instance: - One or more test case failed. - A + test timed out. - The application under test crashed. + - >- + Something unexpected happened. The run should still be considered + unsuccessful but this is likely a transient problem and re-running + the test might be successful. + - >- + All tests were skipped, for instance: - All device configurations + were incompatible. + - >- + A group of steps that were run with the same configuration had + both failure and success outcomes. + enum: + - unset + - success + - failure + - inconclusive + - skipped + - flaky + multistepNumber: + description: >- + Unique int given to each step. Ranges from 0(inclusive) to total + number of steps(exclusive). The primary step is 0. type: integer - contentType: - description: The thumbnail's content type, i.e. "image/png". Always set. - type: string - data: - format: byte - description: The thumbnail file itself. That is, the bytes here are precisely the bytes that make up the thumbnail file; they can be served as an image as-is (with the appropriate content type.) Always set. - type: string - heightPx: format: int32 - type: integer - description: The height of the thumbnail, in pixels. Always set. - description: A single thumbnail, with its size and format. - PerfSample: - id: PerfSample - description: Resource representing a single performance measure or data point - type: object - properties: - sampleTime: - $ref: '#/components/schemas/Timestamp' - description: Timestamp of collection. - value: - description: Value observed - format: double - type: number - CrashDialogError: - description: Crash dialog was detected during the test execution - id: CrashDialogError + runDuration: + description: How long it took for this step to run. + $ref: '#/components/schemas/Duration' + ListStepsResponse: + id: ListStepsResponse + description: Response message for StepService.List. type: object properties: - crashPackage: + steps: + description: Steps. + type: array + items: + $ref: '#/components/schemas/Step' + nextPageToken: + description: >- + A continuation token to resume the query at the next item. If set, + indicates that there are more steps to read, by calling list again + with this value in the page_token field. type: string - description: The name of the package that caused the dialog. - IosTestLoop: + PublishXunitXmlFilesRequest: + id: PublishXunitXmlFilesRequest + description: Request message for StepService.PublishXunitXmlFiles. type: object - id: IosTestLoop properties: - bundleId: - type: string - description: Bundle ID of the app. - description: A game loop test of an iOS application. - ProjectSettings: + xunitXmlFiles: + description: >- + URI of the Xunit XML files to publish. The maximum size of the file + this reference is pointing to is 50MB. Required. + type: array + items: + $ref: '#/components/schemas/FileReference' + TestCase: + id: TestCase type: object properties: - name: - description: 'The name of the project''s settings. Always of the form: projects/{project-id}/settings In update request: never set In response: always set' + testCaseId: + description: A unique identifier within a Step for this Test Case. type: string - defaultBucket: - description: 'The name of the Google Cloud Storage bucket to which results are written. By default, this is unset. In update request: optional In response: optional' + elapsedTime: + description: The elapsed run time of the test case. Required. + $ref: '#/components/schemas/Duration' + startTime: + description: The start time of the test case. + $ref: '#/components/schemas/Timestamp' + endTime: + description: The end time of the test case. + $ref: '#/components/schemas/Timestamp' + stackTraces: + description: >- + The stack trace details if the test case failed or encountered an + error. The maximum size of the stack traces is 100KiB, beyond which + the stack track will be truncated. Zero if the test case passed. + type: array + items: + $ref: '#/components/schemas/StackTrace' + status: + description: The status of the test case. Required. type: string - description: Per-project settings for the Tool Results service. - id: ProjectSettings - PerfEnvironment: - id: PerfEnvironment - properties: - cpuInfo: - $ref: '#/components/schemas/CPUInfo' - description: CPU related environment info - memoryInfo: - $ref: '#/components/schemas/MemoryInfo' - description: Memory related environment info - type: object - description: Encapsulates performance environment info - UnusedRoboDirective: - id: UnusedRoboDirective - type: object - description: Additional details of an unused robodirective. - properties: - resourceName: - description: The name of the resource that was unused. + enumDescriptions: + - Test passed. + - Test failed. + - Test encountered an error + - Test skipped + - >- + Test flaked. Present only for rollup test cases; test cases from + steps that were run with the same configuration had both failure + and success outcomes. + enum: + - passed + - failed + - error + - skipped + - flaky + skippedMessage: + description: Why the test case was skipped. Present only for skipped test case type: string - ListEnvironmentsResponse: - id: ListEnvironmentsResponse + testCaseReference: + description: >- + Test case reference, e.g. name, class name and test suite name. + Required. + $ref: '#/components/schemas/TestCaseReference' + toolOutputs: + description: >- + References to opaque files of any format output by the tool + execution. @OutputOnly + type: array + items: + $ref: '#/components/schemas/ToolOutputReference' + ListTestCasesResponse: + id: ListTestCasesResponse + description: Response message for StepService.ListTestCases. + type: object properties: - executionId: - description: A Execution id Always set. - type: string + testCases: + description: List of test cases. + type: array + items: + $ref: '#/components/schemas/TestCase' nextPageToken: type: string - description: A continuation token to resume the query at the next item. Will only be set if there are more Environments to fetch. - projectId: - description: A Project id. Always set. - type: string - environments: - items: - $ref: '#/components/schemas/Environment' - description: Environments. Always set. + ListStepThumbnailsResponse: + id: ListStepThumbnailsResponse + description: A response containing the thumbnails in a step. + type: object + properties: + thumbnails: + description: >- + A list of image data. Images are returned in a deterministic order; + they are ordered by these factors, in order of importance: * First, + by their associated test case. Images without a test case are + considered greater than images with one. * Second, by their creation + time. Images without a creation time are greater than images with + one. * Third, by the order in which they were added to the step (by + calls to CreateStep or UpdateStep). type: array - historyId: + items: + $ref: '#/components/schemas/Image' + nextPageToken: + description: >- + A continuation token to resume the query at the next item. If set, + indicates that there are more thumbnails to read, by calling list + again with this value in the page_token field. type: string - description: A History id. Always set. + Image: + id: Image + description: An image, with a link to the main image and a thumbnail. type: object - description: Response message for EnvironmentService.ListEnvironments. - InsufficientCoverage: + properties: + stepId: + description: The step to which the image is attached. Always set. + type: string + sourceImage: + description: >- + A reference to the full-size, original image. This is the same as + the tool_outputs entry for the image under its Step. Always set. + $ref: '#/components/schemas/ToolOutputReference' + thumbnail: + description: The thumbnail. + $ref: '#/components/schemas/Thumbnail' + error: + description: An error explaining why the thumbnail could not be rendered. + $ref: '#/components/schemas/Status' + Thumbnail: + id: Thumbnail + description: A single thumbnail, with its size and format. type: object - id: InsufficientCoverage - properties: {} - description: A warning that Robo did not crawl potentially important parts of the app. - TestSuiteOverview: - description: 'A summary of a test suite result either parsed from XML or uploaded directly by a user. Note: the API related comments are for StepService only. This message is also being used in ExecutionService in a read only mode for the corresponding step.' properties: - failureCount: - description: 'Number of failed test cases, typically set by the service by parsing the xml_source. May also be set by the user. - In create/response: always set - In update request: never' - type: integer - format: int32 - name: + contentType: + description: The thumbnail's content type, i.e. "image/png". Always set. type: string - description: 'The name of the test suite. - In create/response: always set - In update request: never' - skippedCount: - type: integer - format: int32 - description: 'Number of test cases not run, typically set by the service by parsing the xml_source. - In create/response: always set - In update request: never' - totalCount: - format: int32 - type: integer - description: 'Number of test cases, typically set by the service by parsing the xml_source. - In create/response: always set - In update request: never' - xmlSource: - description: 'If this test suite was parsed from XML, this is the URI where the original XML file is stored. Note: Multiple test suites can share the same xml_source Returns INVALID_ARGUMENT if the uri format is not supported. - In create/response: optional - In update request: never' - $ref: '#/components/schemas/FileReference' - errorCount: - description: 'Number of test cases in error, typically set by the service by parsing the xml_source. - In create/response: always set - In update request: never' + heightPx: + description: The height of the thumbnail, in pixels. Always set. type: integer format: int32 - elapsedTime: - description: Elapsed time of test suite. - $ref: '#/components/schemas/Duration' - flakyCount: + widthPx: + description: The width of the thumbnail, in pixels. Always set. type: integer format: int32 - description: Number of flaky test cases, set by the service by rolling up flaky test attempts. Present only for rollup test suite overview at environment level. A step cannot have flaky test cases. - id: TestSuiteOverview + data: + description: >- + The thumbnail file itself. That is, the bytes here are precisely the + bytes that make up the thumbnail file; they can be served as an + image as-is (with the appropriate content type.) Always set. + type: string + format: byte + Status: + id: Status + description: >- + 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](https://github.com/grpc). Each `Status` message + contains three pieces of data: error code, error message, and error + details. You can find out more about this error model and how to work + with it in the [API Design + Guide](https://cloud.google.com/apis/design/errors). type: object - Timestamp: - description: A Timestamp represents a point in time independent of any time zone or local calendar, encoded as a count of seconds and fractions of seconds at nanosecond resolution. The count is relative to an epoch at UTC midnight on January 1, 1970, in the proleptic Gregorian calendar which extends the Gregorian calendar backwards to year one. All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap second table is needed for interpretation, using a [24-hour linear smear](https://developers.google.com/time/smear). The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. - id: Timestamp properties: - nanos: + code: + description: The status code, which should be an enum value of google.rpc.Code. type: integer format: int32 - description: Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive. - seconds: + message: + description: >- + 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 field, or localized by the client. type: string - format: int64 - description: Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive. - type: object - NativeCrash: - properties: - stackTrace: - $ref: '#/components/schemas/StackTrace' - description: The stack trace of the native crash. Optional. + details: + description: >- + A list of messages that carry the error details. There is a common + set of message types for APIs to use. + type: array + items: + type: object + additionalProperties: + type: any + description: Properties of the object. Contains field @type with type URL. + Execution: + id: Execution + description: >- + An Execution represents a collection of Steps. For instance, it could + represent: - a mobile test executed across a range of device + configurations - a jenkins job with a build step followed by a test step + The maximum size of an execution message is 1 MiB. An Execution can be + updated until its state is set to COMPLETE at which point it becomes + immutable. type: object - description: Additional details for a native crash. - id: NativeCrash - Image: - id: Image properties: - thumbnail: - description: The thumbnail. - $ref: '#/components/schemas/Thumbnail' - sourceImage: - $ref: '#/components/schemas/ToolOutputReference' - description: A reference to the full-size, original image. This is the same as the tool_outputs entry for the image under its Step. Always set. - error: - description: An error explaining why the thumbnail could not be rendered. - $ref: '#/components/schemas/Status' - stepId: + executionId: + description: >- + A unique identifier within a History for this Execution. Returns + INVALID_ARGUMENT if this field is set or overwritten by the caller. + - In response always set - In create/update request: never set type: string - description: The step to which the image is attached. Always set. + state: + description: >- + The initial state is IN_PROGRESS. The only legal state transitions + is from IN_PROGRESS to COMPLETE. A PRECONDITION_FAILED will be + returned if an invalid transition is requested. The state can only + be set to COMPLETE once. A FAILED_PRECONDITION will be returned if + the state is set to COMPLETE multiple times. If the state is set to + COMPLETE, all the in-progress steps within the execution will be set + as COMPLETE. If the outcome of the step is not set, the outcome will + be set to INCONCLUSIVE. - In response always set - In create/update + request: optional + type: string + enumDescriptions: + - >- + Should never be in this state. Exists for proto deserialization + backward compatibility. + - >- + The Execution/Step is created, ready to run, but not running yet. + If an Execution/Step is created without initial state, it is + assumed that the Execution/Step is in PENDING state. + - The Execution/Step is in progress. + - >- + The finalized, immutable state. Steps/Executions in this state + cannot be modified. + enum: + - unknownState + - pending + - inProgress + - complete + creationTime: + description: >- + The time when the Execution was created. This value will be set + automatically when CreateExecution is called. - In response: always + set - In create/update request: never set + $ref: '#/components/schemas/Timestamp' + completionTime: + description: >- + The time when the Execution status transitioned to COMPLETE. This + value will be set automatically when state transitions to COMPLETE. + - In response: set if the execution state is COMPLETE. - In + create/update request: never set + $ref: '#/components/schemas/Timestamp' + outcome: + description: >- + Classify the result, for example into SUCCESS or FAILURE - In + response: present if set by create/update request - In create/update + request: optional + $ref: '#/components/schemas/Outcome' + dimensionDefinitions: + description: >- + The dimensions along which different steps in this execution may + vary. This must remain fixed over the life of the execution. Returns + INVALID_ARGUMENT if this field is set in an update request. Returns + INVALID_ARGUMENT if the same name occurs in more than one + dimension_definition. Returns INVALID_ARGUMENT if the size of the + list is over 100. - In response: present if set by create - In + create request: optional - In update request: never set + type: array + items: + $ref: '#/components/schemas/MatrixDimensionDefinition' + specification: + description: >- + Lightweight information about execution request. - In response: + present if set by create - In create: optional - In update: optional + $ref: '#/components/schemas/Specification' + testExecutionMatrixId: + description: >- + TestExecution Matrix ID that the TestExecutionService uses. - In + response: present if set by create - In create: optional - In + update: never set + type: string + MatrixDimensionDefinition: + id: MatrixDimensionDefinition + description: One dimension of the matrix of different runs of a step. type: object - description: An image, with a link to the main image and a thumbnail. - ToolExecutionStep: - properties: - toolExecution: - description: 'A Tool execution. - In response: present if set by create/update request - In create/update request: optional' - $ref: '#/components/schemas/ToolExecution' - id: ToolExecutionStep + properties: {} + Specification: + id: Specification + description: The details about how to run the execution. type: object - description: 'Generic tool step to be used for binaries we do not explicitly support. For example: running cp to copy artifacts from one location to another.' - ResultsStorage: + properties: + androidTest: + description: An Android mobile test execution specification. + $ref: '#/components/schemas/AndroidTest' + iosTest: + description: An iOS mobile test execution specification. + $ref: '#/components/schemas/IosTest' + AndroidTest: + id: AndroidTest + description: An Android mobile test specification. type: object - description: The storage for test results. - id: ResultsStorage properties: - xunitXmlFile: - $ref: '#/components/schemas/FileReference' - description: The path to the Xunit XML file. - resultsStoragePath: - description: The root directory for test results. - $ref: '#/components/schemas/FileReference' - StepSummary: - id: StepSummary - description: Lightweight summary of a step within this execution. - properties: {} + androidAppInfo: + description: Information about the application under test. + $ref: '#/components/schemas/AndroidAppInfo' + testTimeout: + description: >- + Max time a test is allowed to run before it is automatically + cancelled. + $ref: '#/components/schemas/Duration' + androidInstrumentationTest: + description: An Android instrumentation test. + $ref: '#/components/schemas/AndroidInstrumentationTest' + androidRoboTest: + description: An Android robo test. + $ref: '#/components/schemas/AndroidRoboTest' + androidTestLoop: + description: An Android test loop. + $ref: '#/components/schemas/AndroidTestLoop' + AndroidAppInfo: + id: AndroidAppInfo + description: Android app information. type: object - UpgradeInsight: - description: This insight is a recommendation to upgrade a given library to the specified version, in order to avoid dependencies on non-SDK APIs. properties: - upgradeToVersion: - description: 'The suggested version to upgrade to. Optional: In case we are not sure which version solves this problem' + name: + description: The name of the app. Optional type: string packageName: + description: The package name of the app. Required. type: string - description: The name of the package to be upgraded. - id: UpgradeInsight - type: object - ToolExitCode: - properties: - number: - type: integer - description: 'Tool execution exit code. A value of 0 means that the execution was successful. - In response: always set - In create/update request: always set' - format: int32 - type: object - id: ToolExitCode - description: Exit code from a tool execution. - BatchCreatePerfSamplesResponse: - id: BatchCreatePerfSamplesResponse - type: object - properties: - perfSamples: - items: - $ref: '#/components/schemas/PerfSample' - type: array - BatchCreatePerfSamplesRequest: - id: BatchCreatePerfSamplesRequest + versionName: + description: The version name of the app. Optional. + type: string + versionCode: + description: The internal version code of the app. Optional. + type: string + AndroidInstrumentationTest: + id: AndroidInstrumentationTest + description: >- + A test of an Android application that can control an Android component + independently of its normal lifecycle. See for more information on types + of Android tests. type: object - description: The request must provide up to a maximum of 5000 samples to be created; a larger sample size will cause an INVALID_ARGUMENT error properties: - perfSamples: + testPackageId: + description: The java package for the test to be executed. Required + type: string + testRunnerClass: + description: The InstrumentationTestRunner class. Required + type: string + testTargets: + description: >- + Each target must be fully qualified with the package name or class + name, in one of these formats: - "package package_name" - "class + package_name.class_name" - "class + package_name.class_name#method_name" If empty, all targets in the + module will be run. type: array - description: The set of PerfSamples to create should not include existing timestamps items: - $ref: '#/components/schemas/PerfSample' - Duration: + type: string + useOrchestrator: + description: >- + The flag indicates whether Android Test Orchestrator will be used to + run test or not. + type: boolean + AndroidRoboTest: + id: AndroidRoboTest + description: >- + A test of an android application that explores the application on a + virtual or physical Android device, finding culprits and crashes as it + goes. type: object properties: - nanos: - description: Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive. - format: int32 - type: integer - seconds: - format: int64 - description: 'Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years' - type: string - description: ' A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". It is related to Timestamp in that the difference between two Timestamp values is a Duration and it can be added or subtracted from a Timestamp. Range is approximately +-10,000 years.' - id: Duration - TestIssue: - description: An issue detected occurring during a test execution. - properties: - stackTrace: - $ref: '#/components/schemas/StackTrace' - description: Deprecated in favor of stack trace fields inside specific warnings. - category: - enum: - - unspecifiedCategory - - common - - robo - enumDescriptions: - - Default unspecified category. Do not use. For versioning only. - - Issue is not specific to a particular test kind (e.g., a native crash). - - Issue is specific to Robo run. - description: Category of issue. Required. - type: string - errorMessage: - description: A brief human-readable message describing the issue. Required. + appInitialActivity: + description: The initial activity that should be used to start the app. Optional type: string - warning: - description: Warning message with additional details of the issue. Should always be a message from com.google.devtools.toolresults.v1.warnings - $ref: '#/components/schemas/Any' - severity: - enumDescriptions: - - Default unspecified severity. Do not use. For versioning only. - - Non critical issue, providing users with some info about the test run. - - Non critical issue, providing users with some hints on improving their testing experience, e.g., suggesting to use Game Loops. - - Potentially critical issue. - - Critical issue. - description: Severity of issue. Required. - enum: - - unspecifiedSeverity - - info - - suggestion - - warning - - severe + bootstrapPackageId: + description: The java package for the bootstrap. Optional type: string - type: - enum: - - unspecifiedType - - fatalException - - nativeCrash - - anr - - unusedRoboDirective - - compatibleWithOrchestrator - - launcherActivityNotFound - - startActivityNotFound - - incompleteRoboScriptExecution - - completeRoboScriptExecution - - failedToInstall - - availableDeepLinks - - nonSdkApiUsageViolation - - nonSdkApiUsageReport - - encounteredNonAndroidUiWidgetScreen - - encounteredLoginScreen - - performedGoogleLogin - - iosException - - iosCrash - - performedMonkeyActions - - usedRoboDirective - - usedRoboIgnoreDirective - - insufficientCoverage - - inAppPurchases - - crashDialogError - - uiElementsTooDeep - - blankScreen - - overlappingUiElements - - unityException - - deviceOutOfMemory - - logcatCollectionError - - detectedAppSplashScreen - enumDescriptions: - - Default unspecified type. Do not use. For versioning only. - - Issue is a fatal exception. - - Issue is a native crash. - - Issue is an ANR crash. - - Issue is an unused robo directive. - - Issue is a suggestion to use orchestrator. - - Issue with finding a launcher activity - - Issue with resolving a user-provided intent to start an activity - - A Robo script was not fully executed. - - A Robo script was fully and successfully executed. - - The APK failed to install. - - The app-under-test has deep links, but none were provided to Robo. - - App accessed a non-sdk Api. - - App accessed a non-sdk Api (new detailed report) - - Robo crawl encountered at least one screen with elements that are not Android UI widgets. - - Robo crawl encountered at least one probable login screen. - - Robo signed in with Google. - - iOS App crashed with an exception. - - iOS App crashed without an exception (e.g. killed). - - Robo crawl involved performing some monkey actions. - - Robo crawl used a Robo directive. - - Robo crawl used a Robo directive to ignore an UI element. - - Robo did not crawl some potentially important parts of the app. - - Robo crawl involved some in-app purchases. - - Crash dialog was detected during the test execution - - UI element depth is greater than the threshold - - Blank screen is found in the Robo crawl - - Overlapping UI elements are found in the Robo crawl - - An uncaught Unity exception was detected (these don't crash apps). - - Device running out of memory was detected - - Problems detected while collecting logcat - - Robo detected a splash screen provided by app (vs. Android OS splash screen). - description: Type of issue. Required. + bootstrapRunnerClass: + description: The runner class for the bootstrap. Optional type: string - type: object - id: TestIssue - AvailableDeepLinks: - id: AvailableDeepLinks + maxDepth: + description: The max depth of the traversal stack Robo can explore. Optional + type: integer + format: int32 + maxSteps: + description: >- + The max number of steps/actions Robo can execute. Default is no + limit (0). Optional + type: integer + format: int32 + AndroidTestLoop: + id: AndroidTestLoop + description: >- + Test Loops are tests that can be launched by the app itself, determining + when to run by listening for an intent. type: object properties: {} - description: A suggestion to use deep links for a Robo run. - InconclusiveDetail: + IosTest: + id: IosTest + description: A iOS mobile test specification type: object - id: InconclusiveDetail - description: Details for an outcome with an INCONCLUSIVE outcome summary. properties: - infrastructureFailure: - description: If the test runner could not determine success or failure because the test depends on a component other than the system under test which failed. For example, a mobile test requires provisioning a device where the test executes, and that provisioning can fail. - type: boolean - abortedByUser: - type: boolean - description: If the end user aborted the test execution before a pass or fail could be determined. For example, the user pressed ctrl-c which sent a kill signal to the test runner while the test was running. - hasErrorLogs: - type: boolean - description: If results are being provided to the user in certain cases of infrastructure failures - PendingGoogleUpdateInsight: + iosAppInfo: + description: Information about the application under test. + $ref: '#/components/schemas/IosAppInfo' + testTimeout: + description: >- + Max time a test is allowed to run before it is automatically + cancelled. + $ref: '#/components/schemas/Duration' + iosXcTest: + description: An iOS XCTest. + $ref: '#/components/schemas/IosXcTest' + iosTestLoop: + description: An iOS test loop. + $ref: '#/components/schemas/IosTestLoop' + iosRoboTest: + description: An iOS Robo test. + $ref: '#/components/schemas/IosRoboTest' + IosAppInfo: + id: IosAppInfo + description: iOS app information type: object - id: PendingGoogleUpdateInsight - description: This insight indicates that the hidden API usage originates from a Google-provided library. Users need not take any action. properties: - nameOfGoogleLibrary: + name: + description: The name of the app. Required type: string - description: The name of the Google-provided library with the non-SDK API dependency. - Any: - id: Any + IosXcTest: + id: IosXcTest + description: A test of an iOS application that uses the XCTest framework. + type: object properties: - value: - format: byte - description: Must be a valid serialized protocol buffer of the above specified type. + bundleId: + description: Bundle ID of the app. type: string - typeUrl: - description: 'A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL''s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a google.protobuf.Type value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.' + xcodeVersion: + description: Xcode version that the test was run with. type: string - description: ' `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := ptypes.MarshalAny(foo) ... foo := &pb.Foo{} if err := ptypes.UnmarshalAny(any, foo); err != nil { ... } The pack methods provided by protobuf library will by default use ''type.googleapis.com/full.type.name'' as the type URL and the unpack methods only use the fully qualified type name after the last ''/'' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". # JSON The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message google.protobuf.Duration): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" }' - type: object - SuccessDetail: + IosTestLoop: + id: IosTestLoop + description: A game loop test of an iOS application. type: object - description: Details for an outcome with a SUCCESS outcome summary. LINT.IfChange - id: SuccessDetail properties: - otherNativeCrash: - type: boolean - description: If a native process other than the app crashed. - IosAppInfo: - description: iOS app information + bundleId: + description: Bundle ID of the app. + type: string + IosRoboTest: + id: IosRoboTest + description: A Robo test for an iOS application. + type: object + properties: {} + ListExecutionsResponse: + id: ListExecutionsResponse type: object properties: - name: - description: The name of the app. Required + executions: + description: Executions. Always set. + type: array + items: + $ref: '#/components/schemas/Execution' + nextPageToken: + description: >- + A continuation token to resume the query at the next item. Will only + be set if there are more Executions to fetch. type: string - id: IosAppInfo - StackTrace: - id: StackTrace + ScreenshotCluster: + id: ScreenshotCluster type: object - description: A stacktrace. properties: - exception: - description: The stack trace message. Required + clusterId: + description: A unique identifier for the cluster. @OutputOnly + type: string + keyScreen: + description: >- + A singular screen that represents the cluster as a whole. This + screen will act as the "cover" of the entire cluster. When users + look at the clusters, only the key screen from each cluster will be + shown. Which screen is the key screen is determined by the + ClusteringAlgorithm + $ref: '#/components/schemas/Screen' + activity: + description: A string that describes the activity of every screen in the cluster. type: string + screens: + description: Full list of screens. + type: array + items: + $ref: '#/components/schemas/Screen' Screen: + id: Screen + type: object properties: fileReference: - type: string description: File reference of the png file. Required. + type: string model: description: Model of the device that the screenshot was taken on. Required. type: string @@ -688,424 +1595,458 @@ components: description: OS version of the device that the screenshot was taken on. Required. type: string locale: - type: string description: Locale of the device that the screenshot was taken on. Required. + type: string + ListScreenshotClustersResponse: + id: ListScreenshotClustersResponse type: object - id: Screen - ListStepsResponse: properties: - nextPageToken: - type: string - description: A continuation token to resume the query at the next item. If set, indicates that there are more steps to read, by calling list again with this value in the page_token field. - steps: + clusters: + description: The set of clusters associated with an execution Always set type: array - description: Steps. items: - $ref: '#/components/schemas/Step' - type: object - id: ListStepsResponse - description: Response message for StepService.List. - AndroidRoboTest: + $ref: '#/components/schemas/ScreenshotCluster' + Environment: + id: Environment + description: >- + An Environment represents the set of test runs (Steps) from the parent + Execution that are configured with the same set of dimensions (Model, + Version, Locale, and Orientation). Multiple such runs occur particularly + because of features like sharding (splitting up a test suite to run in + parallel across devices) and reruns (running a test multiple times to + check for different outcomes). type: object - id: AndroidRoboTest - description: A test of an android application that explores the application on a virtual or physical Android device, finding culprits and crashes as it goes. properties: - maxSteps: - description: The max number of steps/actions Robo can execute. Default is no limit (0). Optional - format: int32 - type: integer - maxDepth: - type: integer - description: The max depth of the traversal stack Robo can explore. Optional - format: int32 - bootstrapRunnerClass: + projectId: + description: Output only. A Project id. type: string - description: The runner class for the bootstrap. Optional - appInitialActivity: + historyId: + description: Output only. A History id. type: string - description: The initial activity that should be used to start the app. Optional - bootstrapPackageId: + executionId: + description: Output only. An Execution id. + type: string + environmentId: + description: Output only. An Environment id. + type: string + dimensionValue: + description: >- + Dimension values describing the environment. Dimension values always + consist of "Model", "Version", "Locale", and "Orientation". - In + response: always set - In create request: always set - In update + request: never set + type: array + items: + $ref: '#/components/schemas/EnvironmentDimensionValueEntry' + displayName: + description: >- + A short human-readable name to display in the UI. Maximum of 100 + characters. For example: Nexus 5, API 27. type: string - description: The java package for the bootstrap. Optional - Execution: - id: Execution - description: 'An Execution represents a collection of Steps. For instance, it could represent: - a mobile test executed across a range of device configurations - a jenkins job with a build step followed by a test step The maximum size of an execution message is 1 MiB. An Execution can be updated until its state is set to COMPLETE at which point it becomes immutable.' - type: object - properties: - completionTime: - $ref: '#/components/schemas/Timestamp' - description: 'The time when the Execution status transitioned to COMPLETE. This value will be set automatically when state transitions to COMPLETE. - In response: set if the execution state is COMPLETE. - In create/update request: never set' creationTime: + description: Output only. The time when the Environment was created. $ref: '#/components/schemas/Timestamp' - description: 'The time when the Execution was created. This value will be set automatically when CreateExecution is called. - In response: always set - In create/update request: never set' - dimensionDefinitions: + completionTime: + description: >- + Output only. The time when the Environment status was set to + complete. This value will be set automatically when state + transitions to COMPLETE. + $ref: '#/components/schemas/Timestamp' + shardSummaries: + description: >- + Output only. Summaries of shards. Only one shard will present unless + sharding feature is enabled in TestExecutionService. type: array items: - $ref: '#/components/schemas/MatrixDimensionDefinition' - description: 'The dimensions along which different steps in this execution may vary. This must remain fixed over the life of the execution. Returns INVALID_ARGUMENT if this field is set in an update request. Returns INVALID_ARGUMENT if the same name occurs in more than one dimension_definition. Returns INVALID_ARGUMENT if the size of the list is over 100. - In response: present if set by create - In create request: optional - In update request: never set' - executionId: - type: string - description: 'A unique identifier within a History for this Execution. Returns INVALID_ARGUMENT if this field is set or overwritten by the caller. - In response always set - In create/update request: never set' - specification: - $ref: '#/components/schemas/Specification' - description: 'Lightweight information about execution request. - In response: present if set by create - In create: optional - In update: optional' - state: - type: string - enumDescriptions: - - Should never be in this state. Exists for proto deserialization backward compatibility. - - The Execution/Step is created, ready to run, but not running yet. If an Execution/Step is created without initial state, it is assumed that the Execution/Step is in PENDING state. - - The Execution/Step is in progress. - - The finalized, immutable state. Steps/Executions in this state cannot be modified. - enum: - - unknownState - - pending - - inProgress - - complete - description: 'The initial state is IN_PROGRESS. The only legal state transitions is from IN_PROGRESS to COMPLETE. A PRECONDITION_FAILED will be returned if an invalid transition is requested. The state can only be set to COMPLETE once. A FAILED_PRECONDITION will be returned if the state is set to COMPLETE multiple times. If the state is set to COMPLETE, all the in-progress steps within the execution will be set as COMPLETE. If the outcome of the step is not set, the outcome will be set to INCONCLUSIVE. - In response always set - In create/update request: optional' - testExecutionMatrixId: - type: string - description: 'TestExecution Matrix ID that the TestExecutionService uses. - In response: present if set by create - In create: optional - In update: never set' - outcome: - description: 'Classify the result, for example into SUCCESS or FAILURE - In response: present if set by create/update request - In create/update request: optional' - $ref: '#/components/schemas/Outcome' - GraphicsStatsBucket: - id: GraphicsStatsBucket - properties: - renderMillis: - description: Lower bound of render time in milliseconds. - type: string - format: int64 - frameCount: - type: string - format: int64 - description: Number of frames in the bucket. - type: object + $ref: '#/components/schemas/ShardSummary' + environmentResult: + description: Merged result of the environment. + $ref: '#/components/schemas/MergedResult' + resultsStorage: + description: The location where output files are stored in the user bucket. + $ref: '#/components/schemas/ResultsStorage' EnvironmentDimensionValueEntry: + id: EnvironmentDimensionValueEntry + type: object properties: key: type: string value: type: string + ShardSummary: + id: ShardSummary + description: Result summary for a shard in an environment. type: object - id: EnvironmentDimensionValueEntry - Step: - description: 'A Step represents a single operation performed as part of Execution. A step can be used to represent the execution of a tool ( for example a test runner execution or an execution of a compiler). Steps can overlap (for instance two steps might have the same start time if some operations are done in parallel). Here is an example, let''s consider that we have a continuous build is executing a test runner for each iteration. The workflow would look like: - user creates a Execution with id 1 - user creates an TestExecutionStep with id 100 for Execution 1 - user update TestExecutionStep with id 100 to add a raw xml log + the service parses the xml logs and returns a TestExecutionStep with updated TestResult(s). - user update the status of TestExecutionStep with id 100 to COMPLETE A Step can be updated until its state is set to COMPLETE at which points it becomes immutable. Next tag: 27' - type: object - id: Step properties: - creationTime: - description: 'The time when the step was created. - In response: always set - In create/update request: never set' - $ref: '#/components/schemas/Timestamp' - testExecutionStep: - description: An execution of a test runner. - $ref: '#/components/schemas/TestExecutionStep' - multiStep: - description: 'Details when multiple steps are run with the same configuration as a group. These details can be used identify which group this step is part of. It also identifies the groups ''primary step'' which indexes all the group members. - In response: present if previously set. - In create request: optional, set iff this step was performed more than once. - In update request: optional' - $ref: '#/components/schemas/MultiStep' - completionTime: - $ref: '#/components/schemas/Timestamp' - description: 'The time when the step status was set to complete. This value will be set automatically when state transitions to COMPLETE. - In response: set if the execution state is COMPLETE. - In create/update request: never set' - toolExecutionStep: - $ref: '#/components/schemas/ToolExecutionStep' - description: An execution of a tool (used for steps we don't explicitly support). - dimensionValue: + runs: + description: >- + Summaries of the steps belonging to the shard. With + flaky_test_attempts enabled from TestExecutionService, more than one + run (Step) can present. And the runs will be sorted by + multistep_number. type: array items: - $ref: '#/components/schemas/StepDimensionValueEntry' - description: 'If the execution containing this step has any dimension_definition set, then this field allows the child to specify the values of the dimensions. The keys must exactly match the dimension_definition of the execution. For example, if the execution has `dimension_definition = [''attempt'', ''device'']` then a step must define values for those dimensions, eg. `dimension_value = [''attempt'': ''1'', ''device'': ''Nexus 6'']` If a step does not participate in one dimension of the matrix, the value for that dimension should be empty string. For example, if one of the tests is executed by a runner which does not support retries, the step could have `dimension_value = [''attempt'': '''', ''device'': ''Nexus 6'']` If the step does not participate in any dimensions of the matrix, it may leave dimension_value unset. A PRECONDITION_FAILED will be returned if any of the keys do not exist in the dimension_definition of the execution. A PRECONDITION_FAILED will be returned if another step in this execution already has the same name and dimension_value, but differs on other data fields, for example, step field is different. A PRECONDITION_FAILED will be returned if dimension_value is set, and there is a dimension_definition in the execution which is not specified as one of the keys. - In response: present if set by create - In create request: optional - In update request: never set' - outcome: - description: 'Classification of the result, for example into SUCCESS or FAILURE - In response: present if set by create/update request - In create/update request: optional' - $ref: '#/components/schemas/Outcome' - deviceUsageDuration: - $ref: '#/components/schemas/Duration' - description: 'How much the device resource is used to perform the test. This is the device usage used for billing purpose, which is different from the run_duration, for example, infrastructure failure won''t be charged for device usage. PRECONDITION_FAILED will be returned if one attempts to set a device_usage on a step which already has this field set. - In response: present if previously set. - In create request: optional - In update request: optional' - stepId: - type: string - description: 'A unique identifier within a Execution for this Step. Returns INVALID_ARGUMENT if this field is set or overwritten by the caller. - In response: always set - In create/update request: never set' - hasImages: - type: boolean - description: 'Whether any of the outputs of this step are images whose thumbnails can be fetched with ListThumbnails. - In response: always set - In create/update request: never set' + $ref: '#/components/schemas/StepSummary' + shardResult: + description: Merged result of the shard. + $ref: '#/components/schemas/MergedResult' + StepSummary: + id: StepSummary + description: Lightweight summary of a step within this execution. + type: object + properties: {} + MergedResult: + id: MergedResult + description: >- + Merged test result for environment. If the environment has only one step + (no reruns or shards), then the merged result is the same as the step + result. If the environment has multiple shards and/or reruns, then the + results of shards and reruns that belong to the same environment are + merged into one environment result. + type: object + properties: state: + description: State of the resource type: string enumDescriptions: - - Should never be in this state. Exists for proto deserialization backward compatibility. - - The Execution/Step is created, ready to run, but not running yet. If an Execution/Step is created without initial state, it is assumed that the Execution/Step is in PENDING state. + - >- + Should never be in this state. Exists for proto deserialization + backward compatibility. + - >- + The Execution/Step is created, ready to run, but not running yet. + If an Execution/Step is created without initial state, it is + assumed that the Execution/Step is in PENDING state. - The Execution/Step is in progress. - - The finalized, immutable state. Steps/Executions in this state cannot be modified. + - >- + The finalized, immutable state. Steps/Executions in this state + cannot be modified. enum: - unknownState - pending - inProgress - complete - description: 'The initial state is IN_PROGRESS. The only legal state transitions are * IN_PROGRESS -> COMPLETE A PRECONDITION_FAILED will be returned if an invalid transition is requested. It is valid to create Step with a state set to COMPLETE. The state can only be set to COMPLETE once. A PRECONDITION_FAILED will be returned if the state is set to COMPLETE multiple times. - In response: always set - In create/update request: optional' - runDuration: - $ref: '#/components/schemas/Duration' - description: 'How long it took for this step to run. If unset, this is set to the difference between creation_time and completion_time when the step is set to the COMPLETE state. In some cases, it is appropriate to set this value separately: For instance, if a step is created, but the operation it represents is queued for a few minutes before it executes, it would be appropriate not to include the time spent queued in its run_duration. PRECONDITION_FAILED will be returned if one attempts to set a run_duration on a step which already has this field set. - In response: present if previously set; always present on COMPLETE step - In create request: optional - In update request: optional' - description: - description: 'A description of this tool For example: mvn clean package -D skipTests=true - In response: present if set by create/update request - In create/update request: optional' - type: string - name: - type: string - description: 'A short human-readable name to display in the UI. Maximum of 100 characters. For example: Clean build A PRECONDITION_FAILED will be returned upon creating a new step if it shares its name and dimension_value with an existing step. If two steps represent a similar action, but have different dimension values, they should share the same name. For instance, if the same set of tests is run on two different platforms, the two steps should have the same name. - In response: always set - In create request: always set - In update request: never set' - labels: + outcome: + description: Outcome of the resource + $ref: '#/components/schemas/Outcome' + testSuiteOverviews: + description: >- + The combined and rolled-up result of each test suite that was run as + part of this environment. Combining: When the test cases from a + suite are run in different steps (sharding), the results are added + back together in one overview. (e.g., if shard1 has 2 failures and + shard2 has 1 failure than the overview failure_count = 3). Rollup: + When test cases from the same suite are run multiple times (flaky), + the results are combined (e.g., if testcase1.run1 fails, + testcase1.run2 passes, and both testcase2.run1 and testcase2.run2 + fail then the overview flaky_count = 1 and failure_count = 1). type: array items: - $ref: '#/components/schemas/StepLabelsEntry' - description: 'Arbitrary user-supplied key/value pairs that are associated with the step. Users are responsible for managing the key namespace such that keys don''t accidentally collide. An INVALID_ARGUMENT will be returned if the number of labels exceeds 100 or if the length of any of the keys or values exceeds 100 characters. - In response: always set - In create request: optional - In update request: optional; any new key/value pair will be added to the map, and any new value for an existing key will update that key''s value' - AndroidInstrumentationTest: - type: object - description: A test of an Android application that can control an Android component independently of its normal lifecycle. See for more information on types of Android tests. - id: AndroidInstrumentationTest - properties: - testTargets: - items: - type: string - description: 'Each target must be fully qualified with the package name or class name, in one of these formats: - "package package_name" - "class package_name.class_name" - "class package_name.class_name#method_name" If empty, all targets in the module will be run.' - type: array - testRunnerClass: - type: string - description: The InstrumentationTestRunner class. Required - testPackageId: - description: The java package for the test to be executed. Required - type: string - useOrchestrator: - description: The flag indicates whether Android Test Orchestrator will be used to run test or not. - type: boolean - Specification: - description: The details about how to run the execution. + $ref: '#/components/schemas/TestSuiteOverview' + ResultsStorage: + id: ResultsStorage + description: The storage for test results. type: object properties: - androidTest: - $ref: '#/components/schemas/AndroidTest' - description: An Android mobile test execution specification. - iosTest: - $ref: '#/components/schemas/IosTest' - description: An iOS mobile test execution specification. - id: Specification - UnspecifiedWarning: - id: UnspecifiedWarning - type: object - description: Default unspecified warning. - properties: {} - AndroidTestLoop: - id: AndroidTestLoop - description: Test Loops are tests that can be launched by the app itself, determining when to run by listening for an intent. - type: object - properties: {} - MatrixDimensionDefinition: - id: MatrixDimensionDefinition - description: One dimension of the matrix of different runs of a step. - properties: {} - type: object - StartActivityNotFound: + resultsStoragePath: + description: The root directory for test results. + $ref: '#/components/schemas/FileReference' + xunitXmlFile: + description: The path to the Xunit XML file. + $ref: '#/components/schemas/FileReference' + ListEnvironmentsResponse: + id: ListEnvironmentsResponse + description: Response message for EnvironmentService.ListEnvironments. type: object - description: User provided intent failed to resolve to an activity. properties: - uri: + projectId: + description: A Project id. Always set. type: string - action: + historyId: + description: A History id. Always set. type: string - id: StartActivityNotFound - IosRoboTest: - type: object - properties: {} - description: A Robo test for an iOS application. - id: IosRoboTest - LogcatCollectionError: - description: A warning that there were issues in logcat collection. - type: object - properties: {} - id: LogcatCollectionError - SuggestionProto: - properties: - region: - $ref: '#/components/schemas/RegionProto' - description: Region within the screenshot that is relevant to this suggestion. Optional. - helpUrl: - description: Reference to a help center article concerning this type of suggestion. Always set. + executionId: + description: A Execution id Always set. type: string - shortMessage: - description: Concise message, in the user's language, representing the suggestion, which may contain markup. Always set. - $ref: '#/components/schemas/SafeHtmlProto' - screenId: - description: ID of the screen for the suggestion. It is used for getting the corresponding screenshot path. For example, screen_id "1" corresponds to "1.png" file in GCS. Always set. + environments: + description: Environments. Always set. + type: array + items: + $ref: '#/components/schemas/Environment' + nextPageToken: + description: >- + A continuation token to resume the query at the next item. Will only + be set if there are more Environments to fetch. type: string - resourceName: + History: + id: History + description: >- + A History represents a sorted list of Executions ordered by the + start_timestamp_millis field (descending). It can be used to group all + the Executions of a continuous build. Note that the ordering only + operates on one-dimension. If a repository has multiple branches, it + means that multiple histories will need to be used in order to order + Executions per branch. + type: object + properties: + historyId: + description: >- + A unique identifier within a project for this History. Returns + INVALID_ARGUMENT if this field is set or overwritten by the caller. + - In response always set - In create request: never set type: string - description: Reference to a view element, identified by its resource name, if it has one. - title: - description: General title for the suggestion, in the user's language, without markup. Always set. + name: + description: >- + A name to uniquely identify a history within a project. Maximum of + 200 characters. - In response always set - In create request: always + set type: string - longMessage: - $ref: '#/components/schemas/SafeHtmlProto' - description: Message, in the user's language, explaining the suggestion, which may contain markup. Always set. - secondaryPriority: - description: Relative importance of a suggestion as compared with other suggestions that have the same priority and category. This is a meaningless value that can be used to order suggestions that are in the same category and have the same priority. The larger values have higher priority (i.e., are more important). Optional. - type: number - format: double - pseudoResourceId: - description: A somewhat human readable identifier of the source view, if it does not have a resource_name. This is a path within the accessibility hierarchy, an element with resource name; similar to an XPath. + displayName: + description: >- + A short human-readable (plain text) name to display in the UI. + Maximum of 100 characters. - In response: present if set during + create. - In create request: optional type: string - priority: + testPlatform: + description: >- + The platform of the test history. - In response: always set. Returns + the platform of the last execution if unknown. type: string enumDescriptions: - '' - '' - '' - - '' - description: Relative importance of a suggestion. Always set. enum: - - unknownPriority - - error - - warning - - info - type: object - id: SuggestionProto - SuggestionClusterProto: - description: A set of similar suggestions that we suspect are closely related. This proto and most of the nested protos are branched from foxandcrown.prelaunchreport.service.SuggestionClusterProto, replacing PLR's dependencies with FTL's. + - unknownPlatform + - android + - ios + ListHistoriesResponse: + id: ListHistoriesResponse + description: Response message for HistoryService.List type: object properties: - category: - type: string - enum: - - unknownCategory - - contentLabeling - - touchTargetSize - - lowContrast - - implementation - description: Category in which these types of suggestions should appear. Always set. - enumDescriptions: - - '' - - '' - - '' - - '' - - '' - suggestions: - items: - $ref: '#/components/schemas/SuggestionProto' + histories: + description: Histories. type: array - description: A sequence of suggestions. All of the suggestions within a cluster must have the same SuggestionPriority and belong to the same SuggestionCategory. Suggestions with the same screenshot URL should be adjacent. - id: SuggestionClusterProto - TestExecutionStep: - id: TestExecutionStep - description: A step that represents running tests. It accepts ant-junit xml files which will be parsed into structured test results by the service. Xml file paths are updated in order to append more files, however they can't be deleted. Users can also add test results manually by using the test_result field. - properties: - testTiming: - $ref: '#/components/schemas/TestTiming' - description: 'The timing break down of the test execution. - In response: present if set by create or update - In create/update request: optional' - testIssues: items: - $ref: '#/components/schemas/TestIssue' - description: 'Issues observed during the test execution. For example, if the mobile app under test crashed during the test, the error message and the stack trace content can be recorded here to assist debugging. - In response: present if set by create or update - In create/update request: optional' + $ref: '#/components/schemas/History' + nextPageToken: + description: >- + A continuation token to resume the query at the next item. Will only + be set if there are more histories to fetch. Tokens are valid for up + to one hour from the time of the first list request. For instance, + if you make a list request at 1PM and use the token from this first + request 10 minutes later, the token from this second response will + only be valid for 50 minutes. + type: string + PerfMetricsSummary: + id: PerfMetricsSummary + description: A summary of perf metrics collected and performance environment info + type: object + properties: + projectId: + description: The cloud project @OutputOnly + type: string + historyId: + description: A tool results history ID. @OutputOnly + type: string + executionId: + description: A tool results execution ID. @OutputOnly + type: string + stepId: + description: A tool results step ID. @OutputOnly + type: string + perfMetrics: + description: Set of resource collected type: array - toolExecution: - $ref: '#/components/schemas/ToolExecution' - description: 'Represents the execution of the test runner. The exit code of this tool will be used to determine if the test passed. - In response: always set - In create/update request: optional' - testSuiteOverviews: items: - $ref: '#/components/schemas/TestSuiteOverview' - type: array - description: 'List of test suite overview contents. This could be parsed from xUnit XML log by server, or uploaded directly by user. This references should only be called when test suites are fully parsed or uploaded. The maximum allowed number of test suite overviews per step is 1000. - In response: always set - In create request: optional - In update request: never (use publishXunitXmlFiles custom method instead)' + type: string + enumDescriptions: + - '' + - '' + - '' + - '' + - '' + enum: + - perfMetricTypeUnspecified + - memory + - cpu + - network + - graphics + perfEnvironment: + description: >- + Describes the environment in which the performance metrics were + collected + $ref: '#/components/schemas/PerfEnvironment' + appStartTime: + $ref: '#/components/schemas/AppStartTime' + graphicsStats: + description: >- + Graphics statistics for the entire run. Statistics are reset at the + beginning of the run and collected at the end of the run. + deprecated: true + $ref: '#/components/schemas/GraphicsStats' + PerfEnvironment: + id: PerfEnvironment + description: Encapsulates performance environment info type: object - ListPerfSamplesResponse: + properties: + cpuInfo: + description: CPU related environment info + $ref: '#/components/schemas/CPUInfo' + memoryInfo: + description: Memory related environment info + $ref: '#/components/schemas/MemoryInfo' + CPUInfo: + id: CPUInfo type: object properties: - nextPageToken: + cpuProcessor: + description: >- + description of the device processor ie '1.8 GHz hexa core 64-bit + ARMv8-A' type: string - description: Optional, returned if result size exceeds the page size specified in the request (or the default page size, 500, if unspecified). It indicates the last sample timestamp to be used as page_token in subsequent request - perfSamples: - items: - $ref: '#/components/schemas/PerfSample' - type: array - id: ListPerfSamplesResponse - EncounteredNonAndroidUiWidgetScreen: - description: Additional details about encountered screens with elements that are not Android UI widgets. - id: EncounteredNonAndroidUiWidgetScreen - properties: - distinctScreens: - description: Number of encountered distinct screens with non Android UI widgets. + cpuSpeedInGhz: + description: the CPU clock speed in GHz + type: number + format: float + numberOfCores: + description: the number of CPU cores type: integer format: int32 - screenIds: - type: array - description: Subset of screens which contain non Android UI widgets. - items: - type: string + MemoryInfo: + id: MemoryInfo type: object - FailureDetail: - description: Details for an outcome with a FAILURE outcome summary. properties: - timedOut: - description: If the test overran some time limit, and that is why it failed. - type: boolean - crashed: - description: If the failure was severe because the system (app) under test crashed. - type: boolean - notInstalled: - description: If an app is not installed and thus no test can be run with the app. This might be caused by trying to run a test on an unsupported platform. - type: boolean - failedRoboscript: - description: If the Roboscript failed to complete successfully, e.g., because a Roboscript action or assertion failed or a Roboscript action could not be matched during the entire crawl. - type: boolean - unableToCrawl: - description: If the robo was unable to crawl the app; perhaps because the app did not start. - type: boolean - otherNativeCrash: - type: boolean - description: If a native process (including any other than the app) crashed. - deviceOutOfMemory: - type: boolean - description: If the device ran out of memory during a test, causing the test to crash. + memoryTotalInKibibyte: + description: Total memory available on the device in KiB + type: string + format: int64 + memoryCapInKibibyte: + description: Maximum memory that can be allocated to the process in KiB + type: string + format: int64 + AppStartTime: + id: AppStartTime type: object - id: FailureDetail - IosAppCrashed: properties: - stackTrace: - $ref: '#/components/schemas/StackTrace' - description: The stack trace, if one is available. Optional. - id: IosAppCrashed - description: Additional details for an iOS app crash. + initialDisplayTime: + description: >- + The time from app start to the first displayed activity being drawn, + as reported in Logcat. See + https://developer.android.com/topic/performance/launch-time.html#time-initial + $ref: '#/components/schemas/Duration' + fullyDrawnTime: + description: >- + Optional. The time from app start to reaching the developer-reported + "fully drawn" time. This is only stored if the app includes a call + to Activity.reportFullyDrawn(). See + https://developer.android.com/topic/performance/launch-time.html#time-full + $ref: '#/components/schemas/Duration' + GraphicsStats: + id: GraphicsStats + description: >- + Graphics statistics for the App. The information is collected from 'adb + shell dumpsys graphicsstats'. For more info see: + https://developer.android.com/training/testing/performance.html + Statistics will only be present for API 23+. type: object - PerformedGoogleLogin: - properties: {} + properties: + totalFrames: + description: Total frames rendered by package. + type: string + format: int64 + jankyFrames: + description: Total frames with slow render time. Should be <= total_frames. + type: string + format: int64 + p50Millis: + description: 50th percentile frame render time in milliseconds. + type: string + format: int64 + p90Millis: + description: 90th percentile frame render time in milliseconds. + type: string + format: int64 + p95Millis: + description: 95th percentile frame render time in milliseconds. + type: string + format: int64 + p99Millis: + description: 99th percentile frame render time in milliseconds. + type: string + format: int64 + missedVsyncCount: + description: Total "missed vsync" events. + type: string + format: int64 + highInputLatencyCount: + description: Total "high input latency" events. + type: string + format: int64 + slowUiThreadCount: + description: Total "slow UI thread" events. + type: string + format: int64 + slowBitmapUploadCount: + description: Total "slow bitmap upload" events. + type: string + format: int64 + slowDrawCount: + description: Total "slow draw" events. + type: string + format: int64 + buckets: + description: >- + Histogram of frame render times. There should be 154 buckets ranging + from [5ms, 6ms) to [4950ms, infinity) + type: array + items: + $ref: '#/components/schemas/GraphicsStatsBucket' + GraphicsStatsBucket: + id: GraphicsStatsBucket type: object - description: A notification that Robo signed in with Google. - id: PerformedGoogleLogin - SafeHtmlProto: - id: SafeHtmlProto properties: - privateDoNotAccessOrElseSafeHtmlWrappedValue: - description: 'IMPORTANT: Never set or read this field, even from tests, it is private. See documentation at the top of .proto file for programming language packages with which to create or read this message.' + renderMillis: + description: Lower bound of render time in milliseconds. + type: string + format: int64 + frameCount: + description: Number of frames in the bucket. type: string - description: 'IMPORTANT: It is unsafe to accept this message from an untrusted source, since it''s trivial for an attacker to forge serialized messages that don''t fulfill the type''s safety contract -- for example, it could contain attacker controlled script. A system which receives a SafeHtmlProto implicitly trusts the producer of the SafeHtmlProto. So, it''s generally safe to return this message in RPC responses, but generally unsafe to accept it in RPC requests.' + format: int64 + PerfSampleSeries: + id: PerfSampleSeries + description: >- + Resource representing a collection of performance samples (or data + points) type: object - AndroidAppInfo: properties: - packageName: + projectId: + description: The cloud project @OutputOnly type: string - description: The package name of the app. Required. - versionCode: + historyId: + description: A tool results history ID. @OutputOnly type: string - description: The internal version code of the app. Optional. - versionName: + executionId: + description: A tool results execution ID. @OutputOnly type: string - description: The version name of the app. Optional. - name: - description: The name of the app. Optional + stepId: + description: A tool results step ID. @OutputOnly type: string - type: object - id: AndroidAppInfo - description: Android app information. + sampleSeriesId: + description: A sample series id @OutputOnly + type: string + basicPerfSampleSeries: + description: Basic series represented by a line chart + $ref: '#/components/schemas/BasicPerfSampleSeries' BasicPerfSampleSeries: id: BasicPerfSampleSeries + description: >- + Encapsulates the metadata for basic sample series represented by a line + chart + type: object properties: perfMetricType: - enum: - - perfMetricTypeUnspecified - - memory - - cpu - - network - - graphics type: string enumDescriptions: - '' @@ -1113,7 +2054,14 @@ components: - '' - '' - '' + enum: + - perfMetricTypeUnspecified + - memory + - cpu + - network + - graphics perfUnit: + type: string enumDescriptions: - '' - '' @@ -1121,7 +2069,6 @@ components: - '' - '' - '' - type: string enum: - perfUnitUnspecified - kibibyte @@ -1130,6 +2077,7 @@ components: - framesPerSecond - byte sampleSeriesLabel: + type: string enumDescriptions: - '' - Memory sample series @@ -1144,7 +2092,6 @@ components: - '' - '' - Graphics sample series - type: string enum: - sampleSeriesTypeUnspecified - memoryRssPrivate @@ -1155,396 +2102,279 @@ components: - cpuKernel - cpuTotal - ntBytesTransferred - - ntBytesReceived - - networkSent - - networkReceived - - graphicsFrameRate - type: object - description: Encapsulates the metadata for basic sample series represented by a line chart - PerfMetricsSummary: - id: PerfMetricsSummary - type: object - properties: - appStartTime: - $ref: '#/components/schemas/AppStartTime' - projectId: - type: string - description: The cloud project @OutputOnly - executionId: - description: A tool results execution ID. @OutputOnly - type: string - perfMetrics: - items: - enum: - - perfMetricTypeUnspecified - - memory - - cpu - - network - - graphics - enumDescriptions: - - '' - - '' - - '' - - '' - - '' - type: string - type: array - description: Set of resource collected - stepId: - description: A tool results step ID. @OutputOnly - type: string - perfEnvironment: - $ref: '#/components/schemas/PerfEnvironment' - description: Describes the environment in which the performance metrics were collected - graphicsStats: - $ref: '#/components/schemas/GraphicsStats' - description: Graphics statistics for the entire run. Statistics are reset at the beginning of the run and collected at the end of the run. - historyId: - type: string - description: A tool results history ID. @OutputOnly - description: A summary of perf metrics collected and performance environment info - PerformedMonkeyActions: - description: A notification that Robo performed some monkey actions. - type: object - properties: - totalActions: - type: integer - description: The total number of monkey actions performed during the crawl. - format: int32 - id: PerformedMonkeyActions - RoboScriptExecution: - id: RoboScriptExecution - properties: - successfulActions: - description: The number of Robo script actions executed successfully. - type: integer - format: int32 - totalActions: - format: int32 - type: integer - description: The total number of actions in the Robo script. - description: Execution stats for a user-provided Robo script. - type: object - FileReference: - type: object - properties: - fileUri: - description: 'The URI of a file stored in Google Cloud Storage. For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000 An INVALID_ARGUMENT error will be returned if the URI format is not supported. - In response: always set - In create/update request: always set' - type: string - id: FileReference - description: A reference to a file. - DetectedAppSplashScreen: - description: A notification that Robo detected a splash screen provided by app (vs. Android OS splash screen). - type: object - id: DetectedAppSplashScreen - properties: {} - SkippedDetail: - id: SkippedDetail - type: object - description: Details for an outcome with a SKIPPED outcome summary. - properties: - incompatibleArchitecture: - type: boolean - description: If the App doesn't run on the specific architecture, for example, x86. - incompatibleAppVersion: - type: boolean - description: If the App doesn't support the specific API level. - incompatibleDevice: - description: If the requested OS version doesn't run on the specific device model. - type: boolean - NonSdkApiUsageViolationReport: - description: Contains a summary and examples of non-sdk API usage violations. - id: NonSdkApiUsageViolationReport - type: object - properties: - exampleApis: - items: - $ref: '#/components/schemas/NonSdkApi' - description: Examples of the detected API usages. - type: array - targetSdkVersion: - type: integer - description: Specifies the API Level on which the application is designed to run. - format: int32 - uniqueApis: - description: Total number of unique Non-SDK API's accessed. - format: int32 - type: integer - minSdkVersion: - type: integer - description: Minimum API level required for the application to run. - format: int32 - PublishXunitXmlFilesRequest: - description: Request message for StepService.PublishXunitXmlFiles. - properties: - xunitXmlFiles: - description: URI of the Xunit XML files to publish. The maximum size of the file this reference is pointing to is 50MB. Required. - items: - $ref: '#/components/schemas/FileReference' - type: array - id: PublishXunitXmlFilesRequest - type: object - FatalException: - type: object - properties: - stackTrace: - description: The stack trace of the fatal exception. Optional. - $ref: '#/components/schemas/StackTrace' - id: FatalException - description: Additional details for a fatal exception. - ListHistoriesResponse: - id: ListHistoriesResponse - properties: - nextPageToken: - description: A continuation token to resume the query at the next item. Will only be set if there are more histories to fetch. Tokens are valid for up to one hour from the time of the first list request. For instance, if you make a list request at 1PM and use the token from this first request 10 minutes later, the token from this second response will only be valid for 50 minutes. - type: string - histories: - type: array - items: - $ref: '#/components/schemas/History' - description: Histories. - description: Response message for HistoryService.List - type: object - CPUInfo: - type: object - id: CPUInfo - properties: - cpuProcessor: - type: string - description: description of the device processor ie '1.8 GHz hexa core 64-bit ARMv8-A' - cpuSpeedInGhz: - format: float - type: number - description: the CPU clock speed in GHz - numberOfCores: - type: integer - format: int32 - description: the number of CPU cores - FailedToInstall: - description: Failed to install the APK. - type: object - properties: {} - id: FailedToInstall - RegionProto: - description: A rectangular region. - id: RegionProto - properties: - heightPx: - description: The height, in pixels. Always set. - format: int32 - type: integer - leftPx: - format: int32 - description: The left side of the rectangle, in pixels. Always set. - type: integer - widthPx: - type: integer - format: int32 - description: The width, in pixels. Always set. - topPx: - description: The top of the rectangle, in pixels. Always set. - type: integer - format: int32 - type: object - ToolExecution: + - ntBytesReceived + - networkSent + - networkReceived + - graphicsFrameRate + ListPerfSampleSeriesResponse: + id: ListPerfSampleSeriesResponse type: object - id: ToolExecution properties: - commandLineArguments: - items: - type: string + perfSampleSeries: + description: The resulting PerfSampleSeries sorted by id type: array - description: 'The full tokenized command line including the program name (equivalent to argv in a C program). - In response: present if set by create request - In create request: optional - In update request: never set' - exitCode: - $ref: '#/components/schemas/ToolExitCode' - description: 'Tool execution exit code. This field will be set once the tool has exited. - In response: present if set by create/update request - In create request: optional - In update request: optional, a FAILED_PRECONDITION error will be returned if an exit_code is already set.' - toolOutputs: - description: 'References to opaque files of any format output by the tool execution. The maximum allowed number of tool outputs per step is 1000. - In response: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list' items: - $ref: '#/components/schemas/ToolOutputReference' + $ref: '#/components/schemas/PerfSampleSeries' + BatchCreatePerfSamplesRequest: + id: BatchCreatePerfSamplesRequest + description: >- + The request must provide up to a maximum of 5000 samples to be created; + a larger sample size will cause an INVALID_ARGUMENT error + type: object + properties: + perfSamples: + description: >- + The set of PerfSamples to create should not include existing + timestamps type: array - toolLogs: items: - $ref: '#/components/schemas/FileReference' - description: 'References to any plain text logs output the tool execution. This field can be set before the tool has exited in order to be able to have access to a live view of the logs while the tool is running. The maximum allowed number of tool logs per step is 1000. - In response: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list' + $ref: '#/components/schemas/PerfSample' + PerfSample: + id: PerfSample + description: Resource representing a single performance measure or data point + type: object + properties: + sampleTime: + description: Timestamp of collection. + $ref: '#/components/schemas/Timestamp' + value: + description: Value observed + type: number + format: double + BatchCreatePerfSamplesResponse: + id: BatchCreatePerfSamplesResponse + type: object + properties: + perfSamples: type: array - description: An execution of an arbitrary tool. It could be a test runner or a tool copying artifacts or deploying code. - Status: + items: + $ref: '#/components/schemas/PerfSample' + ListPerfSamplesResponse: + id: ListPerfSamplesResponse type: object - id: Status - description: '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](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).' properties: - code: - description: The status code, which should be an enum value of google.rpc.Code. - format: int32 - type: integer - message: - type: string - description: 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 field, or localized by the client. - details: - description: A list of messages that carry the error details. There is a common set of message types for APIs to use. + perfSamples: type: array items: - type: object - additionalProperties: - type: any - description: Properties of the object. Contains field @type with type URL. - MemoryInfo: - id: MemoryInfo + $ref: '#/components/schemas/PerfSample' + nextPageToken: + description: >- + Optional, returned if result size exceeds the page size specified in + the request (or the default page size, 500, if unspecified). It + indicates the last sample timestamp to be used as page_token in + subsequent request + type: string + ProjectSettings: + id: ProjectSettings + description: Per-project settings for the Tool Results service. type: object properties: - memoryTotalInKibibyte: - format: int64 + name: + description: >- + The name of the project's settings. Always of the form: + projects/{project-id}/settings In update request: never set In + response: always set type: string - description: Total memory available on the device in KiB - memoryCapInKibibyte: + defaultBucket: + description: >- + The name of the Google Cloud Storage bucket to which results are + written. By default, this is unset. In update request: optional In + response: optional type: string - format: int64 - description: Maximum memory that can be allocated to the process in KiB - StepDimensionValueEntry: + ANR: + id: ANR + description: Additional details for an ANR crash. + type: object properties: - key: - type: string - value: + stackTrace: + description: The stack trace of the ANR crash. Optional. + $ref: '#/components/schemas/StackTrace' + AvailableDeepLinks: + id: AvailableDeepLinks + description: A suggestion to use deep links for a Robo run. + type: object + properties: {} + BlankScreen: + id: BlankScreen + description: >- + A warning that Robo encountered a screen that was mostly blank; this may + indicate a problem with the app. + type: object + properties: + screenId: + description: The screen id of the element type: string + CrashDialogError: + id: CrashDialogError + description: Crash dialog was detected during the test execution type: object - id: StepDimensionValueEntry - ListStepThumbnailsResponse: properties: - nextPageToken: + crashPackage: + description: The name of the package that caused the dialog. type: string - description: A continuation token to resume the query at the next item. If set, indicates that there are more thumbnails to read, by calling list again with this value in the page_token field. - thumbnails: + DetectedAppSplashScreen: + id: DetectedAppSplashScreen + description: >- + A notification that Robo detected a splash screen provided by app (vs. + Android OS splash screen). + type: object + properties: {} + DeviceOutOfMemory: + id: DeviceOutOfMemory + description: A warning that device ran out of memory + type: object + properties: {} + EncounteredLoginScreen: + id: EncounteredLoginScreen + description: Additional details about encountered login screens. + type: object + properties: + distinctScreens: + description: Number of encountered distinct login screens. + type: integer + format: int32 + screenIds: + description: Subset of login screens. type: array - description: 'A list of image data. Images are returned in a deterministic order; they are ordered by these factors, in order of importance: * First, by their associated test case. Images without a test case are considered greater than images with one. * Second, by their creation time. Images without a creation time are greater than images with one. * Third, by the order in which they were added to the step (by calls to CreateStep or UpdateStep).' items: - $ref: '#/components/schemas/Image' + type: string + EncounteredNonAndroidUiWidgetScreen: + id: EncounteredNonAndroidUiWidgetScreen + description: >- + Additional details about encountered screens with elements that are not + Android UI widgets. type: object - id: ListStepThumbnailsResponse - description: A response containing the thumbnails in a step. - UsedRoboIgnoreDirective: properties: - resourceName: - type: string - description: The name of the resource that was ignored. - id: UsedRoboIgnoreDirective - description: 'Additional details of a used Robo directive with an ignore action. Note: This is a different scenario than unused directive.' + distinctScreens: + description: Number of encountered distinct screens with non Android UI widgets. + type: integer + format: int32 + screenIds: + description: Subset of screens which contain non Android UI widgets. + type: array + items: + type: string + FailedToInstall: + id: FailedToInstall + description: Failed to install the App. type: object - Outcome: - properties: - inconclusiveDetail: - description: More information about an INCONCLUSIVE outcome. Returns INVALID_ARGUMENT if this field is set but the summary is not INCONCLUSIVE. Optional - $ref: '#/components/schemas/InconclusiveDetail' - successDetail: - $ref: '#/components/schemas/SuccessDetail' - description: More information about a SUCCESS outcome. Returns INVALID_ARGUMENT if this field is set but the summary is not SUCCESS. Optional - summary: - enumDescriptions: - - Do not use. For proto versioning only. - - 'The test matrix run was successful, for instance: - All the test cases passed. - Robo did not detect a crash of the application under test.' - - 'A run failed, for instance: - One or more test case failed. - A test timed out. - The application under test crashed.' - - Something unexpected happened. The run should still be considered unsuccessful but this is likely a transient problem and re-running the test might be successful. - - 'All tests were skipped, for instance: - All device configurations were incompatible.' - - A group of steps that were run with the same configuration had both failure and success outcomes. - type: string - enum: - - unset - - success - - failure - - inconclusive - - skipped - - flaky - description: The simplest way to interpret a result. Required - skippedDetail: - description: More information about a SKIPPED outcome. Returns INVALID_ARGUMENT if this field is set but the summary is not SKIPPED. Optional - $ref: '#/components/schemas/SkippedDetail' - failureDetail: - $ref: '#/components/schemas/FailureDetail' - description: More information about a FAILURE outcome. Returns INVALID_ARGUMENT if this field is set but the summary is not FAILURE. Optional - id: Outcome + properties: {} + AssetIssue: + id: AssetIssue + description: There was an issue with the assets in this test. + type: object + properties: {} + FatalException: + id: FatalException + description: Additional details for a fatal exception. type: object - description: Interprets a result so that humans and machines can act on it. - ANR: properties: stackTrace: + description: The stack trace of the fatal exception. Optional. $ref: '#/components/schemas/StackTrace' - description: The stack trace of the ANR crash. Optional. - description: Additional details for an ANR crash. - id: ANR - type: object InAppPurchasesFound: id: InAppPurchasesFound - type: object description: Additional details of in-app purchases encountered during the crawl. + type: object properties: - inAppPurchasesFlowsExplored: - description: 'The total number of in-app purchases flows explored: how many times the robo tries to buy a SKU.' - type: integer - format: int32 inAppPurchasesFlowsStarted: description: The total number of in-app purchases flows started. type: integer format: int32 - ToolOutputReference: - description: A reference to a ToolExecution output file. + inAppPurchasesFlowsExplored: + description: >- + The total number of in-app purchases flows explored: how many times + the robo tries to buy a SKU. + type: integer + format: int32 + InsufficientCoverage: + id: InsufficientCoverage + description: >- + A warning that Robo did not crawl potentially important parts of the + app. + type: object + properties: {} + IosAppCrashed: + id: IosAppCrashed + description: Additional details for an iOS app crash. type: object - id: ToolOutputReference properties: - creationTime: - $ref: '#/components/schemas/Timestamp' - description: 'The creation time of the file. - In response: present if set by create/update request - In create/update request: optional' - output: - description: 'A FileReference to an output file. - In response: always set - In create/update request: always set' - $ref: '#/components/schemas/FileReference' - testCase: - $ref: '#/components/schemas/TestCaseReference' - description: 'The test case to which this output file belongs. - In response: present if set by create/update request - In create/update request: optional' - UIElementTooDeep: + stackTrace: + description: The stack trace, if one is available. Optional. + $ref: '#/components/schemas/StackTrace' + LauncherActivityNotFound: + id: LauncherActivityNotFound + description: Failed to find the launcher activity of an app. + type: object + properties: {} + LogcatCollectionError: + id: LogcatCollectionError + description: A warning that there were issues in logcat collection. + type: object + properties: {} + NativeCrash: + id: NativeCrash + description: Additional details for a native crash. type: object - id: UIElementTooDeep properties: - screenId: - type: string - description: The screen id of the element - depth: + stackTrace: + description: The stack trace of the native crash. Optional. + $ref: '#/components/schemas/StackTrace' + NonSdkApiUsageViolation: + id: NonSdkApiUsageViolation + description: Additional details for a non-sdk API usage violation. + type: object + properties: + uniqueApis: + description: Total number of unique hidden API's accessed. + type: integer + format: int32 + apiSignatures: + description: Signatures of a subset of those hidden API's. + type: array + items: + type: string + NonSdkApiUsageViolationReport: + id: NonSdkApiUsageViolationReport + description: Contains a summary and examples of non-sdk API usage violations. + type: object + properties: + uniqueApis: + description: Total number of unique Non-SDK API's accessed. + type: integer + format: int32 + minSdkVersion: + description: Minimum API level required for the application to run. type: integer - description: The depth of the screen element format: int32 - screenStateId: - description: The screen state id of the element - type: string - description: A warning that the screen hierarchy is deeper than the recommended threshold. + targetSdkVersion: + description: Specifies the API Level on which the application is designed to run. + type: integer + format: int32 + exampleApis: + description: Examples of the detected API usages. + type: array + items: + $ref: '#/components/schemas/NonSdkApi' NonSdkApi: - type: object id: NonSdkApi + description: >- + A non-sdk API and examples of it being called along with other metadata + See + https://developer.android.com/distribute/best-practices/develop/restrictions-non-sdk-interfaces + type: object properties: - insights: - type: array - items: - $ref: '#/components/schemas/NonSdkApiInsight' - description: Optional debugging insights for non-SDK API violations. - invocationCount: - format: int32 - description: The total number of times this API was observed to have been called. - type: integer apiSignature: description: The signature of the Non-SDK API type: string - exampleStackTraces: - description: Example stack traces of this API being called. - type: array - items: - type: string + invocationCount: + description: The total number of times this API was observed to have been called. + type: integer + format: int32 list: - enum: - - NONE - - WHITE - - BLACK - - GREY - - GREY_MAX_O - - GREY_MAX_P - - GREY_MAX_Q - - GREY_MAX_R + description: Which list this API appears on + deprecated: true + type: string enumDescriptions: - '' - '' @@ -1554,368 +2384,216 @@ components: - '' - '' - '' - description: Which list this API appears on - type: string - description: A non-sdk API and examples of it being called along with other metadata See https://developer.android.com/distribute/best-practices/develop/restrictions-non-sdk-interfaces - ScreenshotCluster: - properties: - keyScreen: - description: A singular screen that represents the cluster as a whole. This screen will act as the "cover" of the entire cluster. When users look at the clusters, only the key screen from each cluster will be shown. Which screen is the key screen is determined by the ClusteringAlgorithm - $ref: '#/components/schemas/Screen' - screens: - description: Full list of screens. - items: - $ref: '#/components/schemas/Screen' + - '' + enum: + - NONE + - WHITE + - BLACK + - GREY + - GREY_MAX_O + - GREY_MAX_P + - GREY_MAX_Q + - GREY_MAX_R + - GREY_MAX_S + exampleStackTraces: + description: Example stack traces of this API being called. type: array - activity: - type: string - description: A string that describes the activity of every screen in the cluster. - clusterId: - description: A unique identifier for the cluster. @OutputOnly - type: string - id: ScreenshotCluster - type: object - ListExecutionsResponse: - type: object - properties: - executions: items: - $ref: '#/components/schemas/Execution' - description: Executions. Always set. + type: string + insights: + description: Optional debugging insights for non-SDK API violations. type: array - nextPageToken: - description: A continuation token to resume the query at the next item. Will only be set if there are more Executions to fetch. - type: string - id: ListExecutionsResponse - TestCaseReference: - properties: - testSuiteName: - type: string - description: The name of the test suite to which this test case belongs. - name: - description: The name of the test case. Required. - type: string - className: - description: The name of the class. - type: string - description: 'A reference to a test case. Test case references are canonically ordered lexicographically by these three factors: * First, by test_suite_name. * Second, by class_name. * Third, by name.' - id: TestCaseReference - type: object - History: - description: A History represents a sorted list of Executions ordered by the start_timestamp_millis field (descending). It can be used to group all the Executions of a continuous build. Note that the ordering only operates on one-dimension. If a repository has multiple branches, it means that multiple histories will need to be used in order to order Executions per branch. - id: History + items: + $ref: '#/components/schemas/NonSdkApiInsight' + NonSdkApiInsight: + id: NonSdkApiInsight + description: Non-SDK API insights (to address debugging solutions). type: object properties: - displayName: - description: 'A short human-readable (plain text) name to display in the UI. Maximum of 100 characters. - In response: present if set during create. - In create request: optional' - type: string - testPlatform: - description: 'The platform of the test history. - In response: always set. Returns the platform of the last execution if unknown.' - enum: - - unknownPlatform - - android - - ios - enumDescriptions: - - '' - - '' - - '' - type: string - name: - description: 'A name to uniquely identify a history within a project. Maximum of 200 characters. - In response always set - In create request: always set' - type: string - historyId: + upgradeInsight: + description: >- + An insight indicating that the hidden API usage originates from the + use of a library that needs to be upgraded. + $ref: '#/components/schemas/UpgradeInsight' + pendingGoogleUpdateInsight: + description: >- + An insight indicating that the hidden API usage originates from a + Google-provided library. + $ref: '#/components/schemas/PendingGoogleUpdateInsight' + matcherId: + description: >- + A unique ID, to be used for determining the effectiveness of this + particular insight in the context of a matcher. (required) type: string - description: 'A unique identifier within a project for this History. Returns INVALID_ARGUMENT if this field is set or overwritten by the caller. - In response always set - In create request: never set' - ListStepAccessibilityClustersResponse: + exampleTraceMessages: + description: >- + Optional sample stack traces, for which this insight applies (there + should be at least one). + type: array + items: + type: string + UpgradeInsight: + id: UpgradeInsight + description: >- + This insight is a recommendation to upgrade a given library to the + specified version, in order to avoid dependencies on non-SDK APIs. type: object - description: Response message for AccessibilityService.ListStepAccessibilityClusters. - id: ListStepAccessibilityClustersResponse properties: - name: + packageName: + description: The name of the package to be upgraded. type: string - description: A full resource name of the step. For example, projects/my-project/histories/bh.1234567890abcdef/executions/ 1234567890123456789/steps/bs.1234567890abcdef Always presents. - clusters: - description: A sequence of accessibility suggestions, grouped into clusters. Within the sequence, clusters that belong to the same SuggestionCategory should be adjacent. Within each category, clusters should be ordered by their SuggestionPriority (ERRORs first). The categories should be ordered by their highest priority cluster. - type: array - items: - $ref: '#/components/schemas/SuggestionClusterProto' - BlankScreen: + upgradeToVersion: + description: >- + The suggested version to upgrade to. Optional: In case we are not + sure which version solves this problem + type: string + PendingGoogleUpdateInsight: + id: PendingGoogleUpdateInsight + description: >- + This insight indicates that the hidden API usage originates from a + Google-provided library. Users need not take any action. type: object - description: A warning that Robo encountered a screen that was mostly blank; this may indicate a problem with the app. properties: - screenId: + nameOfGoogleLibrary: + description: >- + The name of the Google-provided library with the non-SDK API + dependency. type: string - description: The screen id of the element - id: BlankScreen OverlappingUIElements: id: OverlappingUIElements + description: >- + A warning that Robo encountered a screen that has overlapping clickable + elements; this may indicate a potential UI issue. type: object properties: - resourceName: - description: Resource names of the overlapping screen elements - type: array - items: - type: string screenId: description: The screen id of the elements type: string - description: A warning that Robo encountered a screen that has overlapping clickable elements; this may indicate a potential UI issue. - TestCase: - type: object - properties: - testCaseReference: - $ref: '#/components/schemas/TestCaseReference' - description: Test case reference, e.g. name, class name and test suite name. Required. - endTime: - description: The end time of the test case. - $ref: '#/components/schemas/Timestamp' - startTime: - description: The start time of the test case. - $ref: '#/components/schemas/Timestamp' - stackTraces: - items: - $ref: '#/components/schemas/StackTrace' - description: The stack trace details if the test case failed or encountered an error. The maximum size of the stack traces is 100KiB, beyond which the stack track will be truncated. Zero if the test case passed. - type: array - toolOutputs: - items: - $ref: '#/components/schemas/ToolOutputReference' - description: References to opaque files of any format output by the tool execution. @OutputOnly + resourceName: + description: Resource names of the overlapping screen elements type: array - elapsedTime: - $ref: '#/components/schemas/Duration' - description: The elapsed run time of the test case. Required. - status: - enum: - - passed - - failed - - error - - skipped - - flaky - type: string - enumDescriptions: - - Test passed. - - Test failed. - - Test encountered an error - - Test skipped - - Test flaked. Present only for rollup test cases; test cases from steps that were run with the same configuration had both failure and success outcomes. - description: The status of the test case. Required. - skippedMessage: - type: string - description: Why the test case was skipped. Present only for skipped test case - testCaseId: - type: string - description: A unique identifier within a Step for this Test Case. - id: TestCase - GraphicsStats: - type: object - description: 'Graphics statistics for the App. The information is collected from ''adb shell dumpsys graphicsstats''. For more info see: https://developer.android.com/training/testing/performance.html Statistics will only be present for API 23+.' - properties: - p99Millis: - format: int64 - description: 99th percentile frame render time in milliseconds. - type: string - totalFrames: - format: int64 - description: Total frames rendered by package. - type: string - jankyFrames: - description: Total frames with slow render time. Should be <= total_frames. - format: int64 - type: string - slowBitmapUploadCount: - type: string - format: int64 - description: Total "slow bitmap upload" events. - p50Millis: - format: int64 - description: 50th percentile frame render time in milliseconds. - type: string - buckets: items: - $ref: '#/components/schemas/GraphicsStatsBucket' - type: array - description: Histogram of frame render times. There should be 154 buckets ranging from [5ms, 6ms) to [4950ms, infinity) - p95Millis: - description: 95th percentile frame render time in milliseconds. - type: string - format: int64 - highInputLatencyCount: - description: Total "high input latency" events. - type: string - format: int64 - missedVsyncCount: - description: Total "missed vsync" events. - type: string - format: int64 - slowUiThreadCount: - description: Total "slow UI thread" events. - type: string - format: int64 - slowDrawCount: - description: Total "slow draw" events. - format: int64 - type: string - p90Millis: - description: 90th percentile frame render time in milliseconds. - type: string - format: int64 - id: GraphicsStats - AppStartTime: + type: string + PerformedGoogleLogin: + id: PerformedGoogleLogin + description: A notification that Robo signed in with Google. + type: object + properties: {} + PerformedMonkeyActions: + id: PerformedMonkeyActions + description: A notification that Robo performed some monkey actions. type: object properties: - initialDisplayTime: - $ref: '#/components/schemas/Duration' - description: The time from app start to the first displayed activity being drawn, as reported in Logcat. See https://developer.android.com/topic/performance/launch-time.html#time-initial - fullyDrawnTime: - $ref: '#/components/schemas/Duration' - description: Optional. The time from app start to reaching the developer-reported "fully drawn" time. This is only stored if the app includes a call to Activity.reportFullyDrawn(). See https://developer.android.com/topic/performance/launch-time.html#time-full - id: AppStartTime - EncounteredLoginScreen: - id: EncounteredLoginScreen + totalActions: + description: The total number of monkey actions performed during the crawl. + type: integer + format: int32 + RoboScriptExecution: + id: RoboScriptExecution + description: Execution stats for a user-provided Robo script. + type: object properties: - distinctScreens: + totalActions: + description: The total number of actions in the Robo script. + type: integer format: int32 - description: Number of encountered distinct login screens. + successfulActions: + description: The number of Robo script actions executed successfully. type: integer - screenIds: - items: - type: string - description: Subset of login screens. - type: array - description: Additional details about encountered login screens. - type: object - LauncherActivityNotFound: - id: LauncherActivityNotFound - description: Failed to find the launcher activity of an app. + format: int32 + StartActivityNotFound: + id: StartActivityNotFound + description: User provided intent failed to resolve to an activity. type: object - properties: {} - IosXcTest: - description: A test of an iOS application that uses the XCTest framework. properties: - bundleId: + action: type: string - description: Bundle ID of the app. - xcodeVersion: - description: Xcode version that the test was run with. + uri: type: string - id: IosXcTest + UIElementTooDeep: + id: UIElementTooDeep + description: >- + A warning that the screen hierarchy is deeper than the recommended + threshold. type: object - PerfSampleSeries: properties: - projectId: - type: string - description: The cloud project @OutputOnly - historyId: - description: A tool results history ID. @OutputOnly - type: string - stepId: - description: A tool results step ID. @OutputOnly - type: string - sampleSeriesId: + screenId: + description: The screen id of the element type: string - description: A sample series id @OutputOnly - basicPerfSampleSeries: - $ref: '#/components/schemas/BasicPerfSampleSeries' - description: Basic series represented by a line chart - executionId: + screenStateId: + description: The screen state id of the element type: string - description: A tool results execution ID. @OutputOnly - id: PerfSampleSeries - description: Resource representing a collection of performance samples (or data points) + depth: + description: The depth of the screen element + type: integer + format: int32 + UnspecifiedWarning: + id: UnspecifiedWarning + description: Default unspecified warning. type: object - AndroidTest: + properties: {} + UnusedRoboDirective: + id: UnusedRoboDirective + description: Additional details of an unused robodirective. type: object - id: AndroidTest - properties: - testTimeout: - $ref: '#/components/schemas/Duration' - description: Max time a test is allowed to run before it is automatically cancelled. - androidAppInfo: - description: Information about the application under test. - $ref: '#/components/schemas/AndroidAppInfo' - androidTestLoop: - $ref: '#/components/schemas/AndroidTestLoop' - description: An Android test loop. - androidRoboTest: - description: An Android robo test. - $ref: '#/components/schemas/AndroidRoboTest' - androidInstrumentationTest: - $ref: '#/components/schemas/AndroidInstrumentationTest' - description: An Android instrumentation test. - description: An Android mobile test specification. - MultiStep: - id: MultiStep properties: - multistepNumber: - description: Unique int given to each step. Ranges from 0(inclusive) to total number of steps(exclusive). The primary step is 0. - type: integer - format: int32 - primaryStepId: + resourceName: + description: The name of the resource that was unused. type: string - description: Step Id of the primary (original) step, which might be this step. - primaryStep: - description: Present if it is a primary (original) step. - $ref: '#/components/schemas/PrimaryStep' + UsedRoboDirective: + id: UsedRoboDirective + description: Additional details of a used Robo directive. type: object - description: Details when multiple steps are run with the same configuration as a group. - ShardSummary: - id: ShardSummary properties: - runs: - description: Summaries of the steps belonging to the shard. With flaky_test_attempts enabled from TestExecutionService, more than one run (Step) can present. And the runs will be sorted by multistep_number. - items: - $ref: '#/components/schemas/StepSummary' - type: array - shardResult: - description: Merged result of the shard. - $ref: '#/components/schemas/MergedResult' - description: Result summary for a shard in an environment. + resourceName: + description: The name of the resource that was used. + type: string + UsedRoboIgnoreDirective: + id: UsedRoboIgnoreDirective + description: >- + Additional details of a used Robo directive with an ignore action. Note: + This is a different scenario than unused directive. type: object + properties: + resourceName: + description: The name of the resource that was ignored. + type: string parameters: - _.xgafv: - description: V1 error format. - in: query - name: _.xgafv - schema: - type: string - enum: - - '1' - - '2' - key: - description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token. - in: query - name: key - schema: - type: string access_token: description: OAuth access token. in: query name: access_token schema: type: string - upload_protocol: - description: Upload protocol for media (e.g. "raw", "multipart"). + alt: + description: Data format for response. in: query - name: upload_protocol + name: alt schema: type: string + enum: + - json + - media + - proto callback: description: JSONP in: query name: callback schema: type: string - quotaUser: - description: Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. + fields: + description: Selector specifying which fields to include in a partial response. in: query - name: quotaUser + name: fields schema: type: string - uploadType: - description: Legacy upload protocol for media (e.g. "media", "multipart"). + key: + description: >- + API key. Your API key identifies your project and provides you with API + access, quota, and reports. Required unless you provide an OAuth 2.0 + token. in: query - name: uploadType + name: key schema: type: string oauth_token: @@ -1924,390 +2602,444 @@ components: name: oauth_token schema: type: string - alt: - description: Data format for response. + prettyPrint: + description: Returns response with indentations and line breaks. in: query - name: alt + name: prettyPrint + schema: + type: boolean + quotaUser: + description: >- + Available to use for quota purposes for server-side applications. Can be + any arbitrary string assigned to a user, but should not exceed 40 + characters. + in: query + name: quotaUser schema: type: string - enum: - - json - - media - - proto - fields: - description: Selector specifying which fields to include in a partial response. + upload_protocol: + description: Upload protocol for media (e.g. "raw", "multipart"). in: query - name: fields + name: upload_protocol schema: type: string - prettyPrint: - description: Returns response with indentations and line breaks. + uploadType: + description: Legacy upload protocol for media (e.g. "media", "multipart"). in: query - name: prettyPrint + name: uploadType schema: - type: boolean - securitySchemes: - Oauth2: - type: oauth2 - description: Oauth 2.0 implicit authentication - flows: - implicit: - authorizationUrl: https://accounts.google.com/o/oauth2/auth - scopes: &ref_0 - https://www.googleapis.com/auth/cloud-platform: See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account. - Oauth2c: - type: oauth2 - description: Oauth 2.0 authorization code authentication - flows: - authorizationCode: - authorizationUrl: https://accounts.google.com/o/oauth2/auth - tokenUrl: https://accounts.google.com/o/oauth2/token - scopes: *ref_0 + type: string + _.xgafv: + description: V1 error format. + in: query + name: $.xgafv + schema: + type: string + enum: + - '1' + - '2' x-stackQL-resources: - steps: - id: firebase.toolresults.steps - name: steps - title: Steps + settings: + id: firebase.toolresults.settings + name: settings + title: Settings + methods: + get_settings: + operation: + $ref: >- + #/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1settings/get + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/settings/methods/get_settings' + insert: [] + update: [] + replace: [] + delete: [] + projects: + id: firebase.toolresults.projects + name: projects + title: Projects + methods: + initialize_settings: + operation: + $ref: >- + #/paths/~1toolresults~1v1beta3~1projects~1{projectId}:initializeSettings/post + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: [] + insert: [] + update: [] + replace: [] + delete: [] + histories: + id: firebase.toolresults.histories + name: histories + title: Histories methods: - projects_histories_executions_steps_list: + create: operation: - $ref: '#/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1steps/get' + $ref: >- + #/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories/post response: mediaType: application/json openAPIDocKey: '200' - projects_histories_executions_steps_create: + list: operation: - $ref: '#/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1steps/post' + $ref: >- + #/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories/get response: mediaType: application/json openAPIDocKey: '200' - projects_histories_executions_steps_accessibilityClusters: + objectKey: $.histories + get: operation: - $ref: '#/paths/~1toolresults~1v1beta3~1projects~1{projectsId}~1histories~1{historiesId}~1executions~1{executionsId}~1steps~1{stepsId}:accessibilityClusters/get' + $ref: >- + #/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}/get response: mediaType: application/json openAPIDocKey: '200' - projects_histories_executions_steps_patch: + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/histories/methods/get' + - $ref: '#/components/x-stackQL-resources/histories/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/histories/methods/create' + update: [] + replace: [] + delete: [] + executions: + id: firebase.toolresults.executions + name: executions + title: Executions + methods: + create: operation: - $ref: '#/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1steps~1{stepId}/patch' + $ref: >- + #/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions/post response: mediaType: application/json openAPIDocKey: '200' - projects_histories_executions_steps_get: + list: operation: - $ref: '#/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1steps~1{stepId}/get' + $ref: >- + #/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions/get response: mediaType: application/json openAPIDocKey: '200' - projects_histories_executions_steps_publishXunitXmlFiles: + objectKey: $.executions + get: operation: - $ref: '#/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1steps~1{stepId}:publishXunitXmlFiles/post' + $ref: >- + #/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}/get response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/steps/methods/projects_histories_executions_steps_get' - - $ref: '#/components/x-stackQL-resources/steps/methods/projects_histories_executions_steps_list' - insert: - - $ref: '#/components/x-stackQL-resources/steps/methods/projects_histories_executions_steps_create' - update: [] - delete: [] - steps__perf_metrics_summary: - id: firebase.toolresults.steps__perf_metrics_summary - name: steps__perf_metrics_summary - title: Steps__perf_metrics_summary - methods: - projects_histories_executions_steps_getPerfMetricsSummary: + patch: operation: - $ref: '#/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1steps~1{stepId}~1perfMetricsSummary/get' + $ref: >- + #/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}/patch response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/steps__perf_metrics_summary/methods/projects_histories_executions_steps_getPerfMetricsSummary' - insert: [] - update: [] + - $ref: '#/components/x-stackQL-resources/executions/methods/get' + - $ref: '#/components/x-stackQL-resources/executions/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/executions/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/executions/methods/patch' + replace: [] delete: [] - perf_metrics_summary: - id: firebase.toolresults.perf_metrics_summary - name: perf_metrics_summary - title: Perf_metrics_summary + steps: + id: firebase.toolresults.steps + name: steps + title: Steps methods: - projects_histories_executions_steps_perfMetricsSummary_create: + accessibility_clusters: operation: - $ref: '#/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1steps~1{stepId}~1perfMetricsSummary/post' + $ref: >- + #/paths/~1toolresults~1v1beta3~1projects~1{projectsId}~1histories~1{historiesId}~1executions~1{executionsId}~1steps~1{stepsId}:accessibilityClusters/get response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: - - $ref: '#/components/x-stackQL-resources/perf_metrics_summary/methods/projects_histories_executions_steps_perfMetricsSummary_create' - update: [] - delete: [] - thumbnails: - id: firebase.toolresults.thumbnails - name: thumbnails - title: Thumbnails - methods: - projects_histories_executions_steps_thumbnails_list: + create: operation: - $ref: '#/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1steps~1{stepId}~1thumbnails/get' + $ref: >- + #/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1steps/post response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/thumbnails/methods/projects_histories_executions_steps_thumbnails_list' - insert: [] - update: [] - delete: [] - test_cases: - id: firebase.toolresults.test_cases - name: test_cases - title: Test_cases - methods: - projects_histories_executions_steps_testCases_get: + list: operation: - $ref: '#/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1steps~1{stepId}~1testCases~1{testCaseId}/get' + $ref: >- + #/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1steps/get response: mediaType: application/json openAPIDocKey: '200' - projects_histories_executions_steps_testCases_list: + objectKey: $.steps + get: operation: - $ref: '#/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1steps~1{stepId}~1testCases/get' + $ref: >- + #/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1steps~1{stepId}/get response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/test_cases/methods/projects_histories_executions_steps_testCases_get' - - $ref: '#/components/x-stackQL-resources/test_cases/methods/projects_histories_executions_steps_testCases_list' - insert: [] - update: [] - delete: [] - samples: - id: firebase.toolresults.samples - name: samples - title: Samples - methods: - projects_histories_executions_steps_perfSampleSeries_samples_batchCreate: + patch: operation: - $ref: '#/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1steps~1{stepId}~1perfSampleSeries~1{sampleSeriesId}~1samples:batchCreate/post' + $ref: >- + #/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1steps~1{stepId}/patch response: mediaType: application/json openAPIDocKey: '200' - projects_histories_executions_steps_perfSampleSeries_samples_list: + publish_xunit_xml_files: operation: - $ref: '#/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1steps~1{stepId}~1perfSampleSeries~1{sampleSeriesId}~1samples/get' + $ref: >- + #/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1steps~1{stepId}:publishXunitXmlFiles/post response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/samples/methods/projects_histories_executions_steps_perfSampleSeries_samples_list' - insert: [] - update: [] + - $ref: '#/components/x-stackQL-resources/steps/methods/get' + - $ref: '#/components/x-stackQL-resources/steps/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/steps/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/steps/methods/patch' + replace: [] delete: [] - perf_sample_series: - id: firebase.toolresults.perf_sample_series - name: perf_sample_series - title: Perf_sample_series + steps_perf_metrics_summary: + id: firebase.toolresults.steps_perf_metrics_summary + name: steps_perf_metrics_summary + title: Steps_perf_metrics_summary methods: - projects_histories_executions_steps_perfSampleSeries_get: - operation: - $ref: '#/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1steps~1{stepId}~1perfSampleSeries~1{sampleSeriesId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_histories_executions_steps_perfSampleSeries_list: + get_perf_metrics_summary: operation: - $ref: '#/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1steps~1{stepId}~1perfSampleSeries/get' + $ref: >- + #/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1steps~1{stepId}~1perfMetricsSummary/get response: mediaType: application/json openAPIDocKey: '200' - projects_histories_executions_steps_perfSampleSeries_create: + sqlVerbs: + select: + - $ref: >- + #/components/x-stackQL-resources/steps_perf_metrics_summary/methods/get_perf_metrics_summary + insert: [] + update: [] + replace: [] + delete: [] + perf_metrics_summary: + id: firebase.toolresults.perf_metrics_summary + name: perf_metrics_summary + title: Perf_metrics_summary + methods: + create: operation: - $ref: '#/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1steps~1{stepId}~1perfSampleSeries/post' + $ref: >- + #/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1steps~1{stepId}~1perfMetricsSummary/post response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/perf_sample_series/methods/projects_histories_executions_steps_perfSampleSeries_get' - - $ref: '#/components/x-stackQL-resources/perf_sample_series/methods/projects_histories_executions_steps_perfSampleSeries_list' + select: [] insert: - - $ref: '#/components/x-stackQL-resources/perf_sample_series/methods/projects_histories_executions_steps_perfSampleSeries_create' + - $ref: >- + #/components/x-stackQL-resources/perf_metrics_summary/methods/create update: [] + replace: [] delete: [] - clusters: - id: firebase.toolresults.clusters - name: clusters - title: Clusters + test_cases: + id: firebase.toolresults.test_cases + name: test_cases + title: Test_cases methods: - projects_histories_executions_clusters_get: + get: operation: - $ref: '#/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1clusters~1{clusterId}/get' + $ref: >- + #/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1steps~1{stepId}~1testCases~1{testCaseId}/get response: mediaType: application/json openAPIDocKey: '200' - projects_histories_executions_clusters_list: + list: operation: - $ref: '#/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1clusters/get' + $ref: >- + #/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1steps~1{stepId}~1testCases/get response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.testCases sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/clusters/methods/projects_histories_executions_clusters_get' - - $ref: '#/components/x-stackQL-resources/clusters/methods/projects_histories_executions_clusters_list' + - $ref: '#/components/x-stackQL-resources/test_cases/methods/get' + - $ref: '#/components/x-stackQL-resources/test_cases/methods/list' insert: [] update: [] + replace: [] delete: [] - environments: - id: firebase.toolresults.environments - name: environments - title: Environments + thumbnails: + id: firebase.toolresults.thumbnails + name: thumbnails + title: Thumbnails methods: - projects_histories_executions_environments_get: - operation: - $ref: '#/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1environments~1{environmentId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_histories_executions_environments_list: + list: operation: - $ref: '#/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1environments/get' + $ref: >- + #/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1steps~1{stepId}~1thumbnails/get response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.thumbnails sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/environments/methods/projects_histories_executions_environments_get' - - $ref: '#/components/x-stackQL-resources/environments/methods/projects_histories_executions_environments_list' + - $ref: '#/components/x-stackQL-resources/thumbnails/methods/list' insert: [] update: [] + replace: [] delete: [] - executions: - id: firebase.toolresults.executions - name: executions - title: Executions + perf_sample_series: + id: firebase.toolresults.perf_sample_series + name: perf_sample_series + title: Perf_sample_series methods: - projects_histories_executions_patch: - operation: - $ref: '#/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_histories_executions_get: + create: operation: - $ref: '#/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}/get' + $ref: >- + #/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1steps~1{stepId}~1perfSampleSeries/post response: mediaType: application/json openAPIDocKey: '200' - projects_histories_executions_list: + list: operation: - $ref: '#/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions/get' + $ref: >- + #/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1steps~1{stepId}~1perfSampleSeries/get response: mediaType: application/json openAPIDocKey: '200' - projects_histories_executions_create: + get: operation: - $ref: '#/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions/post' + $ref: >- + #/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1steps~1{stepId}~1perfSampleSeries~1{sampleSeriesId}/get response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/executions/methods/projects_histories_executions_get' - - $ref: '#/components/x-stackQL-resources/executions/methods/projects_histories_executions_list' + - $ref: '#/components/x-stackQL-resources/perf_sample_series/methods/get' + - $ref: '#/components/x-stackQL-resources/perf_sample_series/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/executions/methods/projects_histories_executions_create' + - $ref: '#/components/x-stackQL-resources/perf_sample_series/methods/create' update: [] + replace: [] delete: [] - histories: - id: firebase.toolresults.histories - name: histories - title: Histories + samples: + id: firebase.toolresults.samples + name: samples + title: Samples methods: - projects_histories_create: - operation: - $ref: '#/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories/post' - response: - mediaType: application/json - openAPIDocKey: '200' - projects_histories_list: + batch_create: operation: - $ref: '#/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories/get' + $ref: >- + #/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1steps~1{stepId}~1perfSampleSeries~1{sampleSeriesId}~1samples:batchCreate/post response: mediaType: application/json openAPIDocKey: '200' - projects_histories_get: + list: operation: - $ref: '#/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}/get' + $ref: >- + #/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1steps~1{stepId}~1perfSampleSeries~1{sampleSeriesId}~1samples/get response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.perfSamples sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/histories/methods/projects_histories_get' - - $ref: '#/components/x-stackQL-resources/histories/methods/projects_histories_list' + - $ref: '#/components/x-stackQL-resources/samples/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/histories/methods/projects_histories_create' + - $ref: '#/components/x-stackQL-resources/samples/methods/batch_create' update: [] + replace: [] delete: [] - projects: - id: firebase.toolresults.projects - name: projects - title: Projects + clusters: + id: firebase.toolresults.clusters + name: clusters + title: Clusters methods: - initializeSettings: + get: + operation: + $ref: >- + #/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1clusters~1{clusterId}/get + response: + mediaType: application/json + openAPIDocKey: '200' + list: operation: - $ref: '#/paths/~1toolresults~1v1beta3~1projects~1{projectId}:initializeSettings/post' + $ref: >- + #/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1clusters/get response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/clusters/methods/get' + - $ref: '#/components/x-stackQL-resources/clusters/methods/list' insert: [] update: [] + replace: [] delete: [] - projects__settings: - id: firebase.toolresults.projects__settings - name: projects__settings - title: Projects__settings + environments: + id: firebase.toolresults.environments + name: environments + title: Environments methods: - projects_getSettings: + get: + operation: + $ref: >- + #/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1environments~1{environmentId}/get + response: + mediaType: application/json + openAPIDocKey: '200' + list: operation: - $ref: '#/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1settings/get' + $ref: >- + #/paths/~1toolresults~1v1beta3~1projects~1{projectId}~1histories~1{historyId}~1executions~1{executionId}~1environments/get response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.environments sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/projects__settings/methods/projects_getSettings' + - $ref: '#/components/x-stackQL-resources/environments/methods/get' + - $ref: '#/components/x-stackQL-resources/environments/methods/list' insert: [] update: [] + replace: [] delete: [] paths: - /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps: + /toolresults/v1beta3/projects/{projectId}/settings: parameters: &ref_1 - - $ref: '#/components/parameters/_.xgafv' - - $ref: '#/components/parameters/key' - $ref: '#/components/parameters/access_token' - - $ref: '#/components/parameters/upload_protocol' - - $ref: '#/components/parameters/callback' - - $ref: '#/components/parameters/quotaUser' - - $ref: '#/components/parameters/uploadType' - - $ref: '#/components/parameters/oauth_token' - $ref: '#/components/parameters/alt' + - $ref: '#/components/parameters/callback' - $ref: '#/components/parameters/fields' + - $ref: '#/components/parameters/key' + - $ref: '#/components/parameters/oauth_token' - $ref: '#/components/parameters/prettyPrint' + - $ref: '#/components/parameters/quotaUser' + - $ref: '#/components/parameters/upload_protocol' + - $ref: '#/components/parameters/uploadType' + - $ref: '#/components/parameters/_.xgafv' get: - description: 'Lists Steps for a given Execution. The steps are sorted by creation_time in descending order. The step_id key will be used to order the steps with the same creation_time. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to read project - INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION - if an argument in the request happens to be invalid; e.g. if an attempt is made to list the children of a nonexistent Step - NOT_FOUND - if the containing Execution does not exist' - operationId: toolresults.projects.histories.executions.steps.list + description: >- + Gets the Tool Results settings for a project. May return any of the + following canonical error codes: - PERMISSION_DENIED - if the user is + not authorized to read from project + operationId: toolresults.projects.getSettings security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -2319,41 +3051,38 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ListStepsResponse' + $ref: '#/components/schemas/ProjectSettings' parameters: - in: path name: projectId required: true schema: type: string - - in: path - name: historyId - required: true - schema: - type: string - - in: path - name: executionId - required: true - schema: - type: string - - in: query - name: pageSize - schema: - type: integer - - in: query - name: pageToken - schema: - type: string - x-stackQL-resource: steps - x-stackQL-verb: select + /toolresults/v1beta3/projects/{projectId}:initializeSettings: + parameters: *ref_1 post: - description: 'Creates a Step. The returned Step will have the id set. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to write to project - INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION - if the step is too large (more than 10Mib) - NOT_FOUND - if the containing Execution does not exist' - operationId: toolresults.projects.histories.executions.steps.create - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Step' + description: >- + Creates resources for settings which have not yet been set. Currently, + this creates a single resource: a Google Cloud Storage bucket, to be + used as the default bucket for this project. The bucket is created in an + FTL-own storage project. Except for in rare cases, calling this method + in parallel from multiple clients will only create a single bucket. In + order to avoid unnecessary storage charges, the bucket is configured to + automatically delete objects older than 90 days. The bucket is created + with the following permissions: - Owner access for owners of central + storage project (FTL-owned) - Writer access for owners/editors of + customer project - Reader access for viewers of customer project The + default ACL on objects created in the bucket is: - Owner access for + owners of central storage project - Reader access for + owners/editors/viewers of customer project See Google Cloud Storage + documentation for more details. If there is already a default bucket set + and the project can access the bucket, this call does nothing. However, + if the project doesn't have the permission to access the bucket or the + bucket is deleted, a new bucket will be created. May return any + canonical error codes, including the following: - PERMISSION_DENIED - if + the user is not authorized to write to project - Any error code raised + by Google Cloud Storage + operationId: toolresults.projects.initializeSettings security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -2365,34 +3094,28 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Step' + $ref: '#/components/schemas/ProjectSettings' parameters: - in: path name: projectId required: true schema: type: string - - in: path - name: historyId - required: true - schema: - type: string - - in: path - name: executionId - required: true - schema: - type: string - - in: query - name: requestId - schema: - type: string - x-stackQL-resource: steps - x-stackQL-verb: insert - /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfMetricsSummary: + /toolresults/v1beta3/projects/{projectId}/histories: parameters: *ref_1 - get: - description: 'Retrieves a PerfMetricsSummary. May return any of the following error code(s): - NOT_FOUND - The specified PerfMetricsSummary does not exist' - operationId: toolresults.projects.histories.executions.steps.getPerfMetricsSummary + post: + description: >- + Creates a History. The returned History will have the id set. May return + any of the following canonical error codes: - PERMISSION_DENIED - if the + user is not authorized to write to project - INVALID_ARGUMENT - if the + request is malformed - NOT_FOUND - if the containing project does not + exist + operationId: toolresults.projects.histories.create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/History' security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -2404,38 +3127,26 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/PerfMetricsSummary' + $ref: '#/components/schemas/History' parameters: - in: path name: projectId required: true schema: - type: string - - in: path - name: historyId - required: true - schema: - type: string - - in: path - name: executionId - required: true - schema: - type: string - - in: path - name: stepId - required: true - schema: - type: string - x-stackQL-resource: steps__perf_metrics_summary - x-stackQL-verb: select - post: - description: 'Creates a PerfMetricsSummary resource. Returns the existing one if it has already been created. May return any of the following error code(s): - NOT_FOUND - The containing Step does not exist' - operationId: toolresults.projects.histories.executions.steps.perfMetricsSummary.create - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PerfMetricsSummary' + type: string + - in: query + name: requestId + schema: + type: string + get: + description: >- + Lists Histories for a given Project. The histories are sorted by + modification time in descending order. The history_id key will be used + to order the history with the same modification time. May return any of + the following canonical error codes: - PERMISSION_DENIED - if the user + is not authorized to read project - INVALID_ARGUMENT - if the request is + malformed - NOT_FOUND - if the History does not exist + operationId: toolresults.projects.histories.list security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -2447,35 +3158,35 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/PerfMetricsSummary' + $ref: '#/components/schemas/ListHistoriesResponse' parameters: - in: path name: projectId required: true schema: type: string - - in: path - name: historyId - required: true + - in: query + name: pageToken schema: type: string - - in: path - name: executionId - required: true + - in: query + name: pageSize schema: - type: string - - in: path - name: stepId - required: true + type: integer + format: int32 + - in: query + name: filterByName schema: type: string - x-stackQL-resource: perf_metrics_summary - x-stackQL-verb: insert - /toolresults/v1beta3/projects/{projectsId}/histories/{historiesId}/executions/{executionsId}/steps/{stepsId}:accessibilityClusters: + /toolresults/v1beta3/projects/{projectId}/histories/{historyId}: parameters: *ref_1 get: - description: 'Lists accessibility clusters for a given Step May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to read project - INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION - if an argument in the request happens to be invalid; e.g. if the locale format is incorrect - NOT_FOUND - if the containing Step does not exist' - operationId: toolresults.projects.histories.executions.steps.accessibilityClusters + description: >- + Gets a History. May return any of the following canonical error codes: - + PERMISSION_DENIED - if the user is not authorized to read project - + INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the + History does not exist + operationId: toolresults.projects.histories.get security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -2487,44 +3198,33 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ListStepAccessibilityClustersResponse' + $ref: '#/components/schemas/History' parameters: - in: path - name: projectsId - required: true - schema: - type: string - - in: path - name: historiesId - required: true - schema: - type: string - - in: path - name: executionsId + name: projectId required: true schema: type: string - in: path - name: stepsId + name: historyId required: true schema: type: string - - in: query - name: locale - schema: - type: string - x-stackQL-resource: steps - x-stackQL-verb: exec - /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}: + /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions: parameters: *ref_1 - patch: - description: 'Updates an existing Step with the supplied partial entity. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to write project - INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION - if the requested state transition is illegal (e.g try to upload a duplicate xml file), if the updated step is too large (more than 10Mib) - NOT_FOUND - if the containing Execution does not exist' - operationId: toolresults.projects.histories.executions.steps.patch + post: + description: >- + Creates an Execution. The returned Execution will have the id set. May + return any of the following canonical error codes: - PERMISSION_DENIED - + if the user is not authorized to write to project - INVALID_ARGUMENT - + if the request is malformed - NOT_FOUND - if the containing History does + not exist + operationId: toolresults.projects.histories.executions.create requestBody: content: application/json: schema: - $ref: '#/components/schemas/Step' + $ref: '#/components/schemas/Execution' security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -2536,7 +3236,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Step' + $ref: '#/components/schemas/Execution' parameters: - in: path name: projectId @@ -2548,25 +3248,19 @@ paths: required: true schema: type: string - - in: path - name: executionId - required: true - schema: - type: string - - in: path - name: stepId - required: true - schema: - type: string - in: query name: requestId schema: type: string - x-stackQL-resource: steps - x-stackQL-verb: exec get: - description: 'Gets a Step. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to read project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the Step does not exist' - operationId: toolresults.projects.histories.executions.steps.get + description: >- + Lists Executions for a given History. The executions are sorted by + creation_time in descending order. The execution_id key will be used to + order the executions with the same creation_time. May return any of the + following canonical error codes: - PERMISSION_DENIED - if the user is + not authorized to read project - INVALID_ARGUMENT - if the request is + malformed - NOT_FOUND - if the containing History does not exist + operationId: toolresults.projects.histories.executions.list security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -2578,7 +3272,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Step' + $ref: '#/components/schemas/ListExecutionsResponse' parameters: - in: path name: projectId @@ -2590,28 +3284,24 @@ paths: required: true schema: type: string - - in: path - name: executionId - required: true + - in: query + name: pageToken schema: type: string - - in: path - name: stepId - required: true + - in: query + name: pageSize schema: - type: string - x-stackQL-resource: steps - x-stackQL-verb: select - /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}:publishXunitXmlFiles: + type: integer + format: int32 + /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}: parameters: *ref_1 - post: - description: 'Publish xml files to an existing Step. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to write project - INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION - if the requested state transition is illegal, e.g try to upload a duplicate xml file or a file too large. - NOT_FOUND - if the containing Execution does not exist' - operationId: toolresults.projects.histories.executions.steps.publishXunitXmlFiles - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PublishXunitXmlFilesRequest' + get: + description: >- + Gets an Execution. May return any of the following canonical error + codes: - PERMISSION_DENIED - if the user is not authorized to write to + project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - + if the Execution does not exist + operationId: toolresults.projects.histories.executions.get security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -2623,7 +3313,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Step' + $ref: '#/components/schemas/Execution' parameters: - in: path name: projectId @@ -2640,18 +3330,20 @@ paths: required: true schema: type: string - - in: path - name: stepId - required: true - schema: - type: string - x-stackQL-resource: steps - x-stackQL-verb: exec - /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/thumbnails: - parameters: *ref_1 - get: - description: 'Lists thumbnails of images attached to a step. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to read from the project, or from any of the images - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the step does not exist, or if any of the images do not exist' - operationId: toolresults.projects.histories.executions.steps.thumbnails.list + patch: + description: >- + Updates an existing Execution with the supplied partial entity. May + return any of the following canonical error codes: - PERMISSION_DENIED - + if the user is not authorized to write to project - INVALID_ARGUMENT - + if the request is malformed - FAILED_PRECONDITION - if the requested + state transition is illegal - NOT_FOUND - if the containing History does + not exist + operationId: toolresults.projects.histories.executions.patch + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Execution' security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -2663,7 +3355,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ListStepThumbnailsResponse' + $ref: '#/components/schemas/Execution' parameters: - in: path name: projectId @@ -2680,26 +3372,21 @@ paths: required: true schema: type: string - - in: path - name: stepId - required: true - schema: - type: string - - in: query - name: pageSize - schema: - type: integer - in: query - name: pageToken + name: requestId schema: type: string - x-stackQL-resource: thumbnails - x-stackQL-verb: select - /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/testCases/{testCaseId}: + /toolresults/v1beta3/projects/{projectsId}/histories/{historiesId}/executions/{executionsId}/steps/{stepsId}:accessibilityClusters: parameters: *ref_1 get: - description: 'Gets details of a Test Case for a Step. Experimental test cases API. Still in active development. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to write to project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the containing Test Case does not exist' - operationId: toolresults.projects.histories.executions.steps.testCases.get + description: >- + Lists accessibility clusters for a given Step May return any of the + following canonical error codes: - PERMISSION_DENIED - if the user is + not authorized to read project - INVALID_ARGUMENT - if the request is + malformed - FAILED_PRECONDITION - if an argument in the request happens + to be invalid; e.g. if the locale format is incorrect - NOT_FOUND - if + the containing Step does not exist + operationId: toolresults.projects.histories.executions.steps.accessibilityClusters security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -2711,40 +3398,48 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TestCase' + $ref: '#/components/schemas/ListStepAccessibilityClustersResponse' parameters: - in: path - name: projectId + name: projectsId required: true schema: type: string - in: path - name: historyId + name: historiesId required: true schema: type: string - in: path - name: executionId + name: executionsId required: true schema: type: string - in: path - name: stepId + name: stepsId required: true schema: type: string - - in: path - name: testCaseId - required: true + - in: query + name: locale schema: type: string - x-stackQL-resource: test_cases - x-stackQL-verb: select - /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/testCases: + /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps: parameters: *ref_1 - get: - description: 'Lists Test Cases attached to a Step. Experimental test cases API. Still in active development. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to write to project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the containing Step does not exist' - operationId: toolresults.projects.histories.executions.steps.testCases.list + post: + description: >- + Creates a Step. The returned Step will have the id set. May return any + of the following canonical error codes: - PERMISSION_DENIED - if the + user is not authorized to write to project - INVALID_ARGUMENT - if the + request is malformed - FAILED_PRECONDITION - if the step is too large + (more than 10Mib) - NOT_FOUND - if the containing Execution does not + exist + operationId: toolresults.projects.histories.executions.steps.create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Step' security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -2756,7 +3451,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ListTestCasesResponse' + $ref: '#/components/schemas/Step' parameters: - in: path name: projectId @@ -2773,31 +3468,22 @@ paths: required: true schema: type: string - - in: path - name: stepId - required: true - schema: - type: string - - in: query - name: pageSize - schema: - type: integer - in: query - name: pageToken + name: requestId schema: type: string - x-stackQL-resource: test_cases - x-stackQL-verb: select - /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}/samples:batchCreate: - parameters: *ref_1 - post: - description: 'Creates a batch of PerfSamples - a client can submit multiple batches of Perf Samples through repeated calls to this method in order to split up a large request payload - duplicates and existing timestamp entries will be ignored. - the batch operation may partially succeed - the set of elements successfully inserted is returned in the response (omits items which already existed in the database). May return any of the following canonical error codes: - NOT_FOUND - The containing PerfSampleSeries does not exist' - operationId: toolresults.projects.histories.executions.steps.perfSampleSeries.samples.batchCreate - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BatchCreatePerfSamplesRequest' + get: + description: >- + Lists Steps for a given Execution. The steps are sorted by creation_time + in descending order. The step_id key will be used to order the steps + with the same creation_time. May return any of the following canonical + error codes: - PERMISSION_DENIED - if the user is not authorized to read + project - INVALID_ARGUMENT - if the request is malformed - + FAILED_PRECONDITION - if an argument in the request happens to be + invalid; e.g. if an attempt is made to list the children of a + nonexistent Step - NOT_FOUND - if the containing Execution does not + exist + operationId: toolresults.projects.histories.executions.steps.list security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -2809,7 +3495,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/BatchCreatePerfSamplesResponse' + $ref: '#/components/schemas/ListStepsResponse' parameters: - in: path name: projectId @@ -2826,23 +3512,24 @@ paths: required: true schema: type: string - - in: path - name: stepId - required: true + - in: query + name: pageToken schema: type: string - - in: path - name: sampleSeriesId - required: true + - in: query + name: pageSize schema: - type: string - x-stackQL-resource: samples - x-stackQL-verb: insert - /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}/samples: + type: integer + format: int32 + /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}: parameters: *ref_1 get: - description: 'Lists the Performance Samples of a given Sample Series - The list results are sorted by timestamps ascending - The default page size is 500 samples; and maximum size allowed 5000 - The response token indicates the last returned PerfSample timestamp - When the results size exceeds the page size, submit a subsequent request including the page token to return the rest of the samples up to the page limit May return any of the following canonical error codes: - OUT_OF_RANGE - The specified request page_token is out of valid range - NOT_FOUND - The containing PerfSampleSeries does not exist' - operationId: toolresults.projects.histories.executions.steps.perfSampleSeries.samples.list + description: >- + Gets a Step. May return any of the following canonical error codes: - + PERMISSION_DENIED - if the user is not authorized to read project - + INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the Step + does not exist + operationId: toolresults.projects.histories.executions.steps.get security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -2854,7 +3541,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ListPerfSamplesResponse' + $ref: '#/components/schemas/Step' parameters: - in: path name: projectId @@ -2876,26 +3563,21 @@ paths: required: true schema: type: string - - in: path - name: sampleSeriesId - required: true - schema: - type: string - - in: query - name: pageToken - schema: - type: string - - in: query - name: pageSize - schema: - type: integer - x-stackQL-resource: samples - x-stackQL-verb: select - /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}: - parameters: *ref_1 - get: - description: 'Gets a PerfSampleSeries. May return any of the following error code(s): - NOT_FOUND - The specified PerfSampleSeries does not exist' - operationId: toolresults.projects.histories.executions.steps.perfSampleSeries.get + patch: + description: >- + Updates an existing Step with the supplied partial entity. May return + any of the following canonical error codes: - PERMISSION_DENIED - if the + user is not authorized to write project - INVALID_ARGUMENT - if the + request is malformed - FAILED_PRECONDITION - if the requested state + transition is illegal (e.g try to upload a duplicate xml file), if the + updated step is too large (more than 10Mib) - NOT_FOUND - if the + containing Execution does not exist + operationId: toolresults.projects.histories.executions.steps.patch + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Step' security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -2907,7 +3589,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/PerfSampleSeries' + $ref: '#/components/schemas/Step' parameters: - in: path name: projectId @@ -2929,18 +3611,26 @@ paths: required: true schema: type: string - - in: path - name: sampleSeriesId - required: true + - in: query + name: requestId schema: type: string - x-stackQL-resource: perf_sample_series - x-stackQL-verb: select - /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries: + /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}:publishXunitXmlFiles: parameters: *ref_1 - get: - description: 'Lists PerfSampleSeries for a given Step. The request provides an optional filter which specifies one or more PerfMetricsType to include in the result; if none returns all. The resulting PerfSampleSeries are sorted by ids. May return any of the following canonical error codes: - NOT_FOUND - The containing Step does not exist' - operationId: toolresults.projects.histories.executions.steps.perfSampleSeries.list + post: + description: >- + Publish xml files to an existing Step. May return any of the following + canonical error codes: - PERMISSION_DENIED - if the user is not + authorized to write project - INVALID_ARGUMENT - if the request is + malformed - FAILED_PRECONDITION - if the requested state transition is + illegal, e.g. try to upload a duplicate xml file or a file too large. - + NOT_FOUND - if the containing Execution does not exist + operationId: toolresults.projects.histories.executions.steps.publishXunitXmlFiles + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PublishXunitXmlFilesRequest' security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -2952,7 +3642,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ListPerfSampleSeriesResponse' + $ref: '#/components/schemas/Step' parameters: - in: path name: projectId @@ -2974,20 +3664,13 @@ paths: required: true schema: type: string - - in: query - name: filter - schema: - type: string - x-stackQL-resource: perf_sample_series - x-stackQL-verb: select - post: - description: 'Creates a PerfSampleSeries. May return any of the following error code(s): - ALREADY_EXISTS - PerfMetricSummary already exists for the given Step - NOT_FOUND - The containing Step does not exist' - operationId: toolresults.projects.histories.executions.steps.perfSampleSeries.create - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PerfSampleSeries' + /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfMetricsSummary: + parameters: *ref_1 + get: + description: >- + Retrieves a PerfMetricsSummary. May return any of the following error + code(s): - NOT_FOUND - The specified PerfMetricsSummary does not exist + operationId: toolresults.projects.histories.executions.steps.getPerfMetricsSummary security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -2999,7 +3682,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/PerfSampleSeries' + $ref: '#/components/schemas/PerfMetricsSummary' parameters: - in: path name: projectId @@ -3021,13 +3704,18 @@ paths: required: true schema: type: string - x-stackQL-resource: perf_sample_series - x-stackQL-verb: insert - /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/clusters/{clusterId}: - parameters: *ref_1 - get: - description: Retrieves a single screenshot cluster by its ID - operationId: toolresults.projects.histories.executions.clusters.get + post: + description: >- + Creates a PerfMetricsSummary resource. Returns the existing one if it + has already been created. May return any of the following error code(s): + - NOT_FOUND - The containing Step does not exist + operationId: >- + toolresults.projects.histories.executions.steps.perfMetricsSummary.create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PerfMetricsSummary' security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -3039,7 +3727,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ScreenshotCluster' + $ref: '#/components/schemas/PerfMetricsSummary' parameters: - in: path name: projectId @@ -3057,17 +3745,20 @@ paths: schema: type: string - in: path - name: clusterId + name: stepId required: true schema: type: string - x-stackQL-resource: clusters - x-stackQL-verb: select - /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/clusters: + /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/testCases/{testCaseId}: parameters: *ref_1 get: - description: Lists Screenshot Clusters Returns the list of screenshot clusters corresponding to an execution. Screenshot clusters are created after the execution is finished. Clusters are created from a set of screenshots. Between any two screenshots, a matching score is calculated based off their metadata that determines how similar they are. Screenshots are placed in the cluster that has screens which have the highest matching scores. - operationId: toolresults.projects.histories.executions.clusters.list + description: >- + Gets details of a Test Case for a Step. Experimental test cases API. + Still in active development. May return any of the following canonical + error codes: - PERMISSION_DENIED - if the user is not authorized to + write to project - INVALID_ARGUMENT - if the request is malformed - + NOT_FOUND - if the containing Test Case does not exist + operationId: toolresults.projects.histories.executions.steps.testCases.get security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -3079,7 +3770,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ListScreenshotClustersResponse' + $ref: '#/components/schemas/TestCase' parameters: - in: path name: projectId @@ -3096,13 +3787,26 @@ paths: required: true schema: type: string - x-stackQL-resource: clusters - x-stackQL-verb: select - /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/environments/{environmentId}: + - in: path + name: stepId + required: true + schema: + type: string + - in: path + name: testCaseId + required: true + schema: + type: string + /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/testCases: parameters: *ref_1 get: - description: 'Gets an Environment. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to read project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the Environment does not exist' - operationId: toolresults.projects.histories.executions.environments.get + description: >- + Lists Test Cases attached to a Step. Experimental test cases API. Still + in active development. May return any of the following canonical error + codes: - PERMISSION_DENIED - if the user is not authorized to write to + project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - + if the containing Step does not exist + operationId: toolresults.projects.histories.executions.steps.testCases.list security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -3114,7 +3818,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Environment' + $ref: '#/components/schemas/ListTestCasesResponse' parameters: - in: path name: projectId @@ -3132,17 +3836,29 @@ paths: schema: type: string - in: path - name: environmentId + name: stepId required: true schema: type: string - x-stackQL-resource: environments - x-stackQL-verb: select - /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/environments: + - in: query + name: pageToken + schema: + type: string + - in: query + name: pageSize + schema: + type: integer + format: int32 + /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/thumbnails: parameters: *ref_1 get: - description: 'Lists Environments for a given Execution. The Environments are sorted by display name. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to read project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the containing Execution does not exist' - operationId: toolresults.projects.histories.executions.environments.list + description: >- + Lists thumbnails of images attached to a step. May return any of the + following canonical error codes: - PERMISSION_DENIED - if the user is + not authorized to read from the project, or from any of the images - + INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the step + does not exist, or if any of the images do not exist + operationId: toolresults.projects.histories.executions.steps.thumbnails.list security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -3154,7 +3870,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ListEnvironmentsResponse' + $ref: '#/components/schemas/ListStepThumbnailsResponse' parameters: - in: path name: projectId @@ -3171,6 +3887,11 @@ paths: required: true schema: type: string + - in: path + name: stepId + required: true + schema: + type: string - in: query name: pageToken schema: @@ -3179,18 +3900,20 @@ paths: name: pageSize schema: type: integer - x-stackQL-resource: environments - x-stackQL-verb: select - /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}: + format: int32 + /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries: parameters: *ref_1 - patch: - description: 'Updates an existing Execution with the supplied partial entity. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to write to project - INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION - if the requested state transition is illegal - NOT_FOUND - if the containing History does not exist' - operationId: toolresults.projects.histories.executions.patch + post: + description: >- + Creates a PerfSampleSeries. May return any of the following error + code(s): - ALREADY_EXISTS - PerfMetricSummary already exists for the + given Step - NOT_FOUND - The containing Step does not exist + operationId: toolresults.projects.histories.executions.steps.perfSampleSeries.create requestBody: content: application/json: schema: - $ref: '#/components/schemas/Execution' + $ref: '#/components/schemas/PerfSampleSeries' security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -3202,7 +3925,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Execution' + $ref: '#/components/schemas/PerfSampleSeries' parameters: - in: path name: projectId @@ -3219,15 +3942,19 @@ paths: required: true schema: type: string - - in: query - name: requestId + - in: path + name: stepId + required: true schema: type: string - x-stackQL-resource: executions - x-stackQL-verb: exec get: - description: 'Gets an Execution. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to write to project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the Execution does not exist' - operationId: toolresults.projects.histories.executions.get + description: >- + Lists PerfSampleSeries for a given Step. The request provides an + optional filter which specifies one or more PerfMetricsType to include + in the result; if none returns all. The resulting PerfSampleSeries are + sorted by ids. May return any of the following canonical error codes: - + NOT_FOUND - The containing Step does not exist + operationId: toolresults.projects.histories.executions.steps.perfSampleSeries.list security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -3239,7 +3966,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Execution' + $ref: '#/components/schemas/ListPerfSampleSeriesResponse' parameters: - in: path name: projectId @@ -3256,13 +3983,22 @@ paths: required: true schema: type: string - x-stackQL-resource: executions - x-stackQL-verb: select - /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions: + - in: path + name: stepId + required: true + schema: + type: string + - in: query + name: filter + schema: + type: string + /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}: parameters: *ref_1 get: - description: 'Lists Executions for a given History. The executions are sorted by creation_time in descending order. The execution_id key will be used to order the executions with the same creation_time. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to read project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the containing History does not exist' - operationId: toolresults.projects.histories.executions.list + description: >- + Gets a PerfSampleSeries. May return any of the following error code(s): + - NOT_FOUND - The specified PerfSampleSeries does not exist + operationId: toolresults.projects.histories.executions.steps.perfSampleSeries.get security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -3274,7 +4010,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ListExecutionsResponse' + $ref: '#/components/schemas/PerfSampleSeries' parameters: - in: path name: projectId @@ -3286,24 +4022,40 @@ paths: required: true schema: type: string - - in: query - name: pageSize + - in: path + name: executionId + required: true schema: - type: integer - - in: query - name: pageToken + type: string + - in: path + name: stepId + required: true + schema: + type: string + - in: path + name: sampleSeriesId + required: true schema: type: string - x-stackQL-resource: executions - x-stackQL-verb: select + /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}/samples:batchCreate: + parameters: *ref_1 post: - description: 'Creates an Execution. The returned Execution will have the id set. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to write to project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the containing History does not exist' - operationId: toolresults.projects.histories.executions.create + description: >- + Creates a batch of PerfSamples - a client can submit multiple batches of + Perf Samples through repeated calls to this method in order to split up + a large request payload - duplicates and existing timestamp entries will + be ignored. - the batch operation may partially succeed - the set of + elements successfully inserted is returned in the response (omits items + which already existed in the database). May return any of the following + canonical error codes: - NOT_FOUND - The containing PerfSampleSeries + does not exist + operationId: >- + toolresults.projects.histories.executions.steps.perfSampleSeries.samples.batchCreate requestBody: content: application/json: schema: - $ref: '#/components/schemas/Execution' + $ref: '#/components/schemas/BatchCreatePerfSamplesRequest' security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -3315,7 +4067,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Execution' + $ref: '#/components/schemas/BatchCreatePerfSamplesResponse' parameters: - in: path name: projectId @@ -3327,22 +4079,36 @@ paths: required: true schema: type: string - - in: query - name: requestId + - in: path + name: executionId + required: true schema: type: string - x-stackQL-resource: executions - x-stackQL-verb: insert - /toolresults/v1beta3/projects/{projectId}/histories: + - in: path + name: stepId + required: true + schema: + type: string + - in: path + name: sampleSeriesId + required: true + schema: + type: string + /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}/samples: parameters: *ref_1 - post: - description: 'Creates a History. The returned History will have the id set. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to write to project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the containing project does not exist' - operationId: toolresults.projects.histories.create - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/History' + get: + description: >- + Lists the Performance Samples of a given Sample Series - The list + results are sorted by timestamps ascending - The default page size is + 500 samples; and maximum size allowed 5000 - The response token + indicates the last returned PerfSample timestamp - When the results size + exceeds the page size, submit a subsequent request including the page + token to return the rest of the samples up to the page limit May return + any of the following canonical error codes: - OUT_OF_RANGE - The + specified request page_token is out of valid range - NOT_FOUND - The + containing PerfSampleSeries does not exist + operationId: >- + toolresults.projects.histories.executions.steps.perfSampleSeries.samples.list security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -3354,22 +4120,47 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/History' + $ref: '#/components/schemas/ListPerfSamplesResponse' parameters: - in: path name: projectId required: true schema: type: string + - in: path + name: historyId + required: true + schema: + type: string + - in: path + name: executionId + required: true + schema: + type: string + - in: path + name: stepId + required: true + schema: + type: string + - in: path + name: sampleSeriesId + required: true + schema: + type: string - in: query - name: requestId + name: pageSize + schema: + type: integer + format: int32 + - in: query + name: pageToken schema: type: string - x-stackQL-resource: histories - x-stackQL-verb: insert + /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/clusters/{clusterId}: + parameters: *ref_1 get: - description: 'Lists Histories for a given Project. The histories are sorted by modification time in descending order. The history_id key will be used to order the history with the same modification time. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to read project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the History does not exist' - operationId: toolresults.projects.histories.list + description: Retrieves a single screenshot cluster by its ID + operationId: toolresults.projects.histories.executions.clusters.get security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -3381,32 +4172,40 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ListHistoriesResponse' + $ref: '#/components/schemas/ScreenshotCluster' parameters: - in: path name: projectId required: true schema: type: string - - in: query - name: pageToken + - in: path + name: historyId + required: true schema: type: string - - in: query - name: filterByName + - in: path + name: executionId + required: true schema: type: string - - in: query - name: pageSize + - in: path + name: clusterId + required: true schema: - type: integer - x-stackQL-resource: histories - x-stackQL-verb: select - /toolresults/v1beta3/projects/{projectId}/histories/{historyId}: + type: string + /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/clusters: parameters: *ref_1 get: - description: 'Gets a History. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to read project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the History does not exist' - operationId: toolresults.projects.histories.get + description: >- + Lists Screenshot Clusters Returns the list of screenshot clusters + corresponding to an execution. Screenshot clusters are created after the + execution is finished. Clusters are created from a set of screenshots. + Between any two screenshots, a matching score is calculated based off + their metadata that determines how similar they are. Screenshots are + placed in the cluster that has screens which have the highest matching + scores. + operationId: toolresults.projects.histories.executions.clusters.list security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -3418,7 +4217,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/History' + $ref: '#/components/schemas/ListScreenshotClustersResponse' parameters: - in: path name: projectId @@ -3430,13 +4229,20 @@ paths: required: true schema: type: string - x-stackQL-resource: histories - x-stackQL-verb: select - /toolresults/v1beta3/projects/{projectId}:initializeSettings: + - in: path + name: executionId + required: true + schema: + type: string + /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/environments/{environmentId}: parameters: *ref_1 - post: - description: 'Creates resources for settings which have not yet been set. Currently, this creates a single resource: a Google Cloud Storage bucket, to be used as the default bucket for this project. The bucket is created in an FTL-own storage project. Except for in rare cases, calling this method in parallel from multiple clients will only create a single bucket. In order to avoid unnecessary storage charges, the bucket is configured to automatically delete objects older than 90 days. The bucket is created with the following permissions: - Owner access for owners of central storage project (FTL-owned) - Writer access for owners/editors of customer project - Reader access for viewers of customer project The default ACL on objects created in the bucket is: - Owner access for owners of central storage project - Reader access for owners/editors/viewers of customer project See Google Cloud Storage documentation for more details. If there is already a default bucket set and the project can access the bucket, this call does nothing. However, if the project doesn''t have the permission to access the bucket or the bucket is deleted, a new bucket will be created. May return any canonical error codes, including the following: - PERMISSION_DENIED - if the user is not authorized to write to project - Any error code raised by Google Cloud Storage' - operationId: toolresults.projects.initializeSettings + get: + description: >- + Gets an Environment. May return any of the following canonical error + codes: - PERMISSION_DENIED - if the user is not authorized to read + project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - + if the Environment does not exist + operationId: toolresults.projects.histories.executions.environments.get security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -3448,20 +4254,38 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ProjectSettings' + $ref: '#/components/schemas/Environment' parameters: - in: path name: projectId required: true schema: type: string - x-stackQL-resource: projects - x-stackQL-verb: exec - /toolresults/v1beta3/projects/{projectId}/settings: + - in: path + name: historyId + required: true + schema: + type: string + - in: path + name: executionId + required: true + schema: + type: string + - in: path + name: environmentId + required: true + schema: + type: string + /toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/environments: parameters: *ref_1 get: - description: 'Gets the Tool Results settings for a project. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to read from project' - operationId: toolresults.projects.getSettings + description: >- + Lists Environments for a given Execution. The Environments are sorted by + display name. May return any of the following canonical error codes: - + PERMISSION_DENIED - if the user is not authorized to read project - + INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the + containing Execution does not exist + operationId: toolresults.projects.histories.executions.environments.list security: - Oauth2: - https://www.googleapis.com/auth/cloud-platform @@ -3473,12 +4297,29 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ProjectSettings' + $ref: '#/components/schemas/ListEnvironmentsResponse' parameters: - in: path name: projectId required: true schema: type: string - x-stackQL-resource: projects__settings - x-stackQL-verb: select + - in: path + name: historyId + required: true + schema: + type: string + - in: path + name: executionId + required: true + schema: + type: string + - in: query + name: pageToken + schema: + type: string + - in: query + name: pageSize + schema: + type: integer + format: int32