models.py•29.6 kB
# generated by fastapi-codegen:
# filename: openapi.yaml
# timestamp: 2025-06-29T02:07:15+00:00
from __future__ import annotations
from enum import Enum
from typing import Any, Dict, List, Optional
from pydantic import BaseModel, Field
class GdataBlobstore2Info(BaseModel):
blobGeneration: Optional[str] = Field(None, description='The blob generation id.')
blobId: Optional[str] = Field(
None, description='The blob id, e.g., /blobstore/prod/playground/scotty'
)
downloadReadHandle: Optional[str] = Field(
None,
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.',
)
readToken: Optional[str] = Field(
None,
description='The blob read token. Needed to read blobs that have not been replicated. Might not be available until the final call.',
)
uploadMetadataContainer: Optional[str] = Field(
None,
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.',
)
class ReferenceType(Enum):
PATH = 'PATH'
BLOB_REF = 'BLOB_REF'
INLINE = 'INLINE'
BIGSTORE_REF = 'BIGSTORE_REF'
COSMO_BINARY_REFERENCE = 'COSMO_BINARY_REFERENCE'
class GdataContentTypeInfo(BaseModel):
bestGuess: Optional[str] = Field(
None, description="Scotty's best guess of what the content type of the file is."
)
fromBytes: Optional[str] = Field(
None,
description='The content type of the file derived by looking at specific bytes (i.e. "magic bytes") of the actual file.',
)
fromFileName: Optional[str] = Field(
None,
description='The content type of the file derived from the file extension of the original file name used by the client.',
)
fromHeader: Optional[str] = Field(
None,
description='The content type of the file as specified in the request headers, multipart headers, or RUPIO start request.',
)
fromUrlPath: Optional[str] = Field(
None,
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).',
)
class GdataDiffVersionResponse(BaseModel):
objectSizeBytes: Optional[str] = Field(
None, description='The total size of the server object.'
)
objectVersion: Optional[str] = Field(
None, description='The version of the object stored at the server.'
)
class GdataDownloadParameters(BaseModel):
allowGzipCompression: Optional[bool] = Field(
None,
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.",
)
ignoreRange: Optional[bool] = Field(
None,
description='Determining whether or not Apiary should skip the inclusion of any Content-Range header on its response to Scotty.',
)
class ReferenceType1(Enum):
PATH = 'PATH'
BLOB_REF = 'BLOB_REF'
INLINE = 'INLINE'
GET_MEDIA = 'GET_MEDIA'
COMPOSITE_MEDIA = 'COMPOSITE_MEDIA'
BIGSTORE_REF = 'BIGSTORE_REF'
DIFF_VERSION_RESPONSE = 'DIFF_VERSION_RESPONSE'
DIFF_CHECKSUMS_RESPONSE = 'DIFF_CHECKSUMS_RESPONSE'
DIFF_DOWNLOAD_RESPONSE = 'DIFF_DOWNLOAD_RESPONSE'
DIFF_UPLOAD_REQUEST = 'DIFF_UPLOAD_REQUEST'
DIFF_UPLOAD_RESPONSE = 'DIFF_UPLOAD_RESPONSE'
COSMO_BINARY_REFERENCE = 'COSMO_BINARY_REFERENCE'
ARBITRARY_BYTES = 'ARBITRARY_BYTES'
class GdataObjectId(BaseModel):
bucketName: Optional[str] = Field(
None, description='The name of the bucket to which this object belongs.'
)
generation: Optional[str] = Field(
None,
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',
)
objectName: Optional[str] = Field(None, description='The name of the object.')
class IntegrationState(Enum):
AAB_INTEGRATION_STATE_UNSPECIFIED = 'AAB_INTEGRATION_STATE_UNSPECIFIED'
INTEGRATED = 'INTEGRATED'
PLAY_ACCOUNT_NOT_LINKED = 'PLAY_ACCOUNT_NOT_LINKED'
NO_APP_WITH_GIVEN_BUNDLE_ID_IN_PLAY_ACCOUNT = (
'NO_APP_WITH_GIVEN_BUNDLE_ID_IN_PLAY_ACCOUNT'
)
APP_NOT_PUBLISHED = 'APP_NOT_PUBLISHED'
AAB_STATE_UNAVAILABLE = 'AAB_STATE_UNAVAILABLE'
PLAY_IAS_TERMS_NOT_ACCEPTED = 'PLAY_IAS_TERMS_NOT_ACCEPTED'
class GoogleFirebaseAppdistroV1BatchAddTestersRequest(BaseModel):
emails: Optional[List[str]] = Field(
None,
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.',
)
class GoogleFirebaseAppdistroV1BatchDeleteReleasesRequest(BaseModel):
names: Optional[List[str]] = Field(
None,
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.',
)
class GoogleFirebaseAppdistroV1BatchJoinGroupRequest(BaseModel):
createMissingTesters: Optional[bool] = Field(
None,
description="Indicates whether to create tester resources based on `emails` if they don't exist yet.",
)
emails: Optional[List[str]] = Field(
None,
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.',
)
class GoogleFirebaseAppdistroV1BatchLeaveGroupRequest(BaseModel):
emails: Optional[List[str]] = Field(
None,
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.',
)
class GoogleFirebaseAppdistroV1BatchRemoveTestersRequest(BaseModel):
emails: Optional[List[str]] = Field(
None,
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.',
)
class GoogleFirebaseAppdistroV1BatchRemoveTestersResponse(BaseModel):
emails: Optional[List[str]] = Field(
None, description='List of deleted tester emails'
)
class GoogleFirebaseAppdistroV1DistributeReleaseRequest(BaseModel):
groupAliases: Optional[List[str]] = Field(
None,
description='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.',
)
testerEmails: Optional[List[str]] = Field(
None,
description='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.',
)
class GoogleFirebaseAppdistroV1DistributeReleaseResponse(BaseModel):
pass
class GoogleFirebaseAppdistroV1FeedbackReport(BaseModel):
createTime: Optional[str] = Field(
None, description='Output only. The time when the feedback report was created.'
)
firebaseConsoleUri: Optional[str] = Field(
None,
description='Output only. A link to the Firebase console displaying the feedback report.',
)
name: Optional[str] = Field(
None,
description='The name of the feedback report resource. Format: `projects/{project_number}/apps/{app}/releases/{release}/feedbackReports/{feedback_report}`',
)
screenshotUri: Optional[str] = Field(
None,
description='Output only. A signed link (which expires in one hour) that lets you directly download the screenshot.',
)
tester: Optional[str] = Field(
None,
description='Output only. The resource name of the tester who submitted the feedback report.',
)
text: Optional[str] = Field(
None, description='Output only. The text of the feedback report.'
)
class GoogleFirebaseAppdistroV1Group(BaseModel):
displayName: Optional[str] = Field(
None, description='Required. The display name of the group.'
)
inviteLinkCount: Optional[int] = Field(
None, description='Output only. The number of invite links for this group.'
)
name: Optional[str] = Field(
None,
description='The name of the group resource. Format: `projects/{project_number}/groups/{group_alias}`',
)
releaseCount: Optional[int] = Field(
None,
description='Output only. The number of releases this group is permitted to access.',
)
testerCount: Optional[int] = Field(
None,
description='Output only. The number of testers who are members of this group.',
)
class GoogleFirebaseAppdistroV1ListFeedbackReportsResponse(BaseModel):
feedbackReports: Optional[List[GoogleFirebaseAppdistroV1FeedbackReport]] = Field(
None, description='The feedback reports'
)
nextPageToken: Optional[str] = Field(
None,
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.',
)
class GoogleFirebaseAppdistroV1ListGroupsResponse(BaseModel):
groups: Optional[List[GoogleFirebaseAppdistroV1Group]] = Field(
None, description='The groups listed.'
)
nextPageToken: Optional[str] = Field(
None,
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.',
)
class GoogleFirebaseAppdistroV1ReleaseNotes(BaseModel):
text: Optional[str] = Field(None, description='The text of the release notes.')
class GoogleFirebaseAppdistroV1TestCertificate(BaseModel):
hashMd5: Optional[str] = Field(
None,
description='Hex string of MD5 hash of the test certificate used to resign the AAB',
)
hashSha1: Optional[str] = Field(
None,
description='Hex string of SHA1 hash of the test certificate used to resign the AAB',
)
hashSha256: Optional[str] = Field(
None,
description='Hex string of SHA256 hash of the test certificate used to resign the AAB',
)
class GoogleFirebaseAppdistroV1Tester(BaseModel):
displayName: Optional[str] = Field(
None,
description='The name of the tester associated with the Google account used to accept the tester invitation.',
)
groups: Optional[List[str]] = Field(
None, description='The resource names of the groups this tester belongs to.'
)
lastActivityTime: Optional[str] = Field(
None,
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.",
)
name: Optional[str] = Field(
None,
description='The name of the tester resource. Format: `projects/{project_number}/testers/{email_address}`',
)
class GoogleFirebaseAppdistroV1UploadReleaseMetadata(BaseModel):
pass
class Result(Enum):
UPLOAD_RELEASE_RESULT_UNSPECIFIED = 'UPLOAD_RELEASE_RESULT_UNSPECIFIED'
RELEASE_CREATED = 'RELEASE_CREATED'
RELEASE_UPDATED = 'RELEASE_UPDATED'
RELEASE_UNMODIFIED = 'RELEASE_UNMODIFIED'
class GoogleLongrunningCancelOperationRequest(BaseModel):
pass
class GoogleLongrunningWaitOperationRequest(BaseModel):
timeout: Optional[str] = Field(
None,
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.',
)
class GoogleProtobufEmpty(BaseModel):
pass
class GoogleRpcStatus(BaseModel):
code: Optional[int] = Field(
None,
description='The status code, which should be an enum value of google.rpc.Code.',
)
details: Optional[List[Dict[str, Any]]] = Field(
None,
description='A list of messages that carry the error details. There is a common set of message types for APIs to use.',
)
message: Optional[str] = Field(
None,
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.',
)
class FieldXgafv(Enum):
field_1 = '1'
field_2 = '2'
class Alt(Enum):
json = 'json'
media = 'media'
proto = 'proto'
class GdataCompositeMedia(BaseModel):
blobRef: Optional[str] = Field(
None,
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.',
)
blobstore2Info: Optional[GdataBlobstore2Info] = Field(
None,
description='Blobstore v2 info, set if reference_type is BLOBSTORE_REF and it refers to a v2 blob.',
)
cosmoBinaryReference: Optional[str] = Field(
None,
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.",
)
crc32cHash: Optional[int] = Field(None, description='crc32.c hash for the payload.')
inline: Optional[str] = Field(
None, description='Media data, set if reference_type is INLINE'
)
length: Optional[str] = Field(None, description='Size of the data, in bytes')
md5Hash: Optional[str] = Field(None, description='MD5 hash for the payload.')
objectId: Optional[GdataObjectId] = Field(
None,
description='Reference to a TI Blob, set if reference_type is BIGSTORE_REF.',
)
path: Optional[str] = Field(
None, description='Path to the data, set if reference_type is PATH'
)
referenceType: Optional[ReferenceType] = Field(
None, description='Describes what the field reference contains.'
)
sha1Hash: Optional[str] = Field(None, description='SHA-1 hash for the payload.')
class GdataDiffChecksumsResponse(BaseModel):
checksumsLocation: Optional[GdataCompositeMedia] = Field(
None,
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.',
)
chunkSizeBytes: Optional[str] = Field(
None, description='The chunk size of checksums. Must be a multiple of 256KB.'
)
objectLocation: Optional[GdataCompositeMedia] = Field(
None,
description='If set, calculate the checksums based on the contents and return them to the caller.',
)
objectSizeBytes: Optional[str] = Field(
None, description='The total size of the server object.'
)
objectVersion: Optional[str] = Field(
None,
description='The object version of the object the checksums are being returned for.',
)
class GdataDiffDownloadResponse(BaseModel):
objectLocation: Optional[GdataCompositeMedia] = Field(
None, description='The original object location.'
)
class GdataDiffUploadRequest(BaseModel):
checksumsInfo: Optional[GdataCompositeMedia] = Field(
None,
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.',
)
objectInfo: Optional[GdataCompositeMedia] = Field(
None,
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.',
)
objectVersion: Optional[str] = Field(
None,
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.',
)
class GdataDiffUploadResponse(BaseModel):
objectVersion: Optional[str] = Field(
None,
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.',
)
originalObject: Optional[GdataCompositeMedia] = Field(
None,
description='The location of the original file for a diff upload request. Must be filled in if responding to an upload start notification.',
)
class GdataMedia(BaseModel):
algorithm: Optional[str] = Field(
None,
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.',
)
bigstoreObjectRef: Optional[str] = Field(None, description='Use object_id instead.')
blobRef: Optional[str] = Field(
None,
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.',
)
blobstore2Info: Optional[GdataBlobstore2Info] = Field(
None,
description='Blobstore v2 info, set if reference_type is BLOBSTORE_REF and it refers to a v2 blob.',
)
compositeMedia: Optional[List[GdataCompositeMedia]] = Field(
None,
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.',
)
contentType: Optional[str] = Field(None, description='MIME type of the data')
contentTypeInfo: Optional[GdataContentTypeInfo] = Field(
None,
description='Extended content type information provided for Scotty uploads.',
)
cosmoBinaryReference: Optional[str] = Field(
None,
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.",
)
crc32cHash: Optional[int] = Field(
None,
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.',
)
diffChecksumsResponse: Optional[GdataDiffChecksumsResponse] = Field(
None, description='Set if reference_type is DIFF_CHECKSUMS_RESPONSE.'
)
diffDownloadResponse: Optional[GdataDiffDownloadResponse] = Field(
None, description='Set if reference_type is DIFF_DOWNLOAD_RESPONSE.'
)
diffUploadRequest: Optional[GdataDiffUploadRequest] = Field(
None, description='Set if reference_type is DIFF_UPLOAD_REQUEST.'
)
diffUploadResponse: Optional[GdataDiffUploadResponse] = Field(
None, description='Set if reference_type is DIFF_UPLOAD_RESPONSE.'
)
diffVersionResponse: Optional[GdataDiffVersionResponse] = Field(
None, description='Set if reference_type is DIFF_VERSION_RESPONSE.'
)
downloadParameters: Optional[GdataDownloadParameters] = Field(
None, description='Parameters for a media download.'
)
filename: Optional[str] = Field(None, description='Original file name')
hash: Optional[str] = Field(
None,
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/uploader/service/proto/upload_listener.proto&q=class:Hash Hex encoded hash value of the uploaded media.',
)
hashVerified: Optional[bool] = Field(
None,
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.",
)
inline: Optional[str] = Field(
None, description='Media data, set if reference_type is INLINE'
)
isPotentialRetry: Optional[bool] = Field(
None,
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.',
)
length: Optional[str] = Field(None, description='Size of the data, in bytes')
md5Hash: Optional[str] = Field(
None, description='Scotty-provided MD5 hash for an upload.'
)
mediaId: Optional[str] = Field(
None,
description='Media id to forward to the operation GetMedia. Can be set if reference_type is GET_MEDIA.',
)
objectId: Optional[GdataObjectId] = Field(
None,
description='Reference to a TI Blob, set if reference_type is BIGSTORE_REF.',
)
path: Optional[str] = Field(
None, description='Path to the data, set if reference_type is PATH'
)
referenceType: Optional[ReferenceType1] = Field(
None, description='Describes what the field reference contains.'
)
sha1Hash: Optional[str] = Field(
None, description='Scotty-provided SHA1 hash for an upload.'
)
sha256Hash: Optional[str] = Field(
None, description='Scotty-provided SHA256 hash for an upload.'
)
timestamp: Optional[str] = Field(
None,
description='Time at which the media data was last updated, in milliseconds since UNIX epoch',
)
token: Optional[str] = Field(
None, description='A unique fingerprint/version id for the media data'
)
class GoogleFirebaseAppdistroV1AabInfo(BaseModel):
integrationState: Optional[IntegrationState] = Field(
None, description='App bundle integration state. Only valid for android apps.'
)
name: Optional[str] = Field(
None,
description='The name of the `AabInfo` resource. Format: `projects/{project_number}/apps/{app}/aabInfo`',
)
testCertificate: Optional[GoogleFirebaseAppdistroV1TestCertificate] = Field(
None,
description='App bundle test certificate generated for the app. Set after the first app bundle is uploaded for this app.',
)
class GoogleFirebaseAppdistroV1BatchAddTestersResponse(BaseModel):
testers: Optional[List[GoogleFirebaseAppdistroV1Tester]] = Field(
None, description='The testers which are created and/or already exist'
)
class GoogleFirebaseAppdistroV1ListTestersResponse(BaseModel):
nextPageToken: Optional[str] = Field(
None,
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.',
)
testers: Optional[List[GoogleFirebaseAppdistroV1Tester]] = Field(
None, description='The testers listed.'
)
class GoogleFirebaseAppdistroV1Release(BaseModel):
binaryDownloadUri: Optional[str] = Field(
None,
description='Output only. A signed link (which expires in one hour) to directly download the app binary (IPA/APK/AAB) file.',
)
buildVersion: Optional[str] = Field(
None,
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`.',
)
createTime: Optional[str] = Field(
None, description='Output only. The time the release was created.'
)
displayVersion: Optional[str] = Field(
None,
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`.',
)
firebaseConsoleUri: Optional[str] = Field(
None,
description='Output only. A link to the Firebase console displaying a single release.',
)
name: Optional[str] = Field(
None,
description='The name of the release resource. Format: `projects/{project_number}/apps/{app_id}/releases/{release_id}`',
)
releaseNotes: Optional[GoogleFirebaseAppdistroV1ReleaseNotes] = Field(
None, description='Notes of the release.'
)
testingUri: Optional[str] = Field(
None,
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.',
)
class GoogleFirebaseAppdistroV1UploadReleaseRequest(BaseModel):
blob: Optional[GdataMedia] = Field(None, description='Binary to upload')
class GoogleFirebaseAppdistroV1UploadReleaseResponse(BaseModel):
release: Optional[GoogleFirebaseAppdistroV1Release] = Field(
None, description='Release associated with the uploaded binary.'
)
result: Optional[Result] = Field(None, description='Result of upload release.')
class GoogleLongrunningOperation(BaseModel):
done: Optional[bool] = Field(
None,
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: Optional[GoogleRpcStatus] = Field(
None,
description='The error result of the operation in case of failure or cancellation.',
)
metadata: Optional[Dict[str, Any]] = Field(
None,
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.',
)
name: Optional[str] = Field(
None,
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}`.',
)
response: Optional[Dict[str, Any]] = Field(
None,
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`.',
)
class GoogleFirebaseAppdistroV1ListReleasesResponse(BaseModel):
nextPageToken: Optional[str] = Field(
None,
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.',
)
releases: Optional[List[GoogleFirebaseAppdistroV1Release]] = Field(
None, description='The releases'
)
class GoogleLongrunningListOperationsResponse(BaseModel):
nextPageToken: Optional[str] = Field(
None, description='The standard List next-page token.'
)
operations: Optional[List[GoogleLongrunningOperation]] = Field(
None,
description='A list of operations that matches the specified filter in the request.',
)