import { FieldMask, FieldMaskSDKType } from "../../protobuf/field_mask"; import { Timestamp, TimestampSDKType } from "../../protobuf/timestamp"; import * as _m0 from "protobufjs/minimal"; import { isSet, fromJsonTimestamp, fromTimestamp, Long } from "../../../helpers"; /** Deprecated. This is unused. */ export enum LogSink_VersionFormat { /** VERSION_FORMAT_UNSPECIFIED - An unspecified format version that will default to V2. */ VERSION_FORMAT_UNSPECIFIED = 0, /** V2 - `LogEntry` version 2 format. */ V2 = 1, /** V1 - `LogEntry` version 1 format. */ V1 = 2, UNRECOGNIZED = -1, } export const LogSink_VersionFormatSDKType = LogSink_VersionFormat; export function logSink_VersionFormatFromJSON(object: any): LogSink_VersionFormat { switch (object) { case 0: case "VERSION_FORMAT_UNSPECIFIED": return LogSink_VersionFormat.VERSION_FORMAT_UNSPECIFIED; case 1: case "V2": return LogSink_VersionFormat.V2; case 2: case "V1": return LogSink_VersionFormat.V1; case -1: case "UNRECOGNIZED": default: return LogSink_VersionFormat.UNRECOGNIZED; } } export function logSink_VersionFormatToJSON(object: LogSink_VersionFormat): string { switch (object) { case LogSink_VersionFormat.VERSION_FORMAT_UNSPECIFIED: return "VERSION_FORMAT_UNSPECIFIED"; case LogSink_VersionFormat.V2: return "V2"; case LogSink_VersionFormat.V1: return "V1"; case LogSink_VersionFormat.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } /** LogBucket lifecycle states. */ export enum LifecycleState { /** * LIFECYCLE_STATE_UNSPECIFIED - Unspecified state. This is only used/useful for distinguishing unset * values. */ LIFECYCLE_STATE_UNSPECIFIED = 0, /** ACTIVE - The normal and active state. */ ACTIVE = 1, /** * DELETE_REQUESTED - The resource has been marked for deletion by the user. For some resources * (e.g. buckets), this can be reversed by an un-delete operation. */ DELETE_REQUESTED = 2, UNRECOGNIZED = -1, } export const LifecycleStateSDKType = LifecycleState; export function lifecycleStateFromJSON(object: any): LifecycleState { switch (object) { case 0: case "LIFECYCLE_STATE_UNSPECIFIED": return LifecycleState.LIFECYCLE_STATE_UNSPECIFIED; case 1: case "ACTIVE": return LifecycleState.ACTIVE; case 2: case "DELETE_REQUESTED": return LifecycleState.DELETE_REQUESTED; case -1: case "UNRECOGNIZED": default: return LifecycleState.UNRECOGNIZED; } } export function lifecycleStateToJSON(object: LifecycleState): string { switch (object) { case LifecycleState.LIFECYCLE_STATE_UNSPECIFIED: return "LIFECYCLE_STATE_UNSPECIFIED"; case LifecycleState.ACTIVE: return "ACTIVE"; case LifecycleState.DELETE_REQUESTED: return "DELETE_REQUESTED"; case LifecycleState.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } /** * List of different operation states. * High level state of the operation. This is used to report the job's * current state to the user. Once a long running operation is created, * the current state of the operation can be queried even before the * operation is finished and the final result is available. */ export enum OperationState { /** OPERATION_STATE_UNSPECIFIED - Should not be used. */ OPERATION_STATE_UNSPECIFIED = 0, /** OPERATION_STATE_SCHEDULED - The operation is scheduled. */ OPERATION_STATE_SCHEDULED = 1, /** OPERATION_STATE_WAITING_FOR_PERMISSIONS - Waiting for necessary permissions. */ OPERATION_STATE_WAITING_FOR_PERMISSIONS = 2, /** OPERATION_STATE_RUNNING - The operation is running. */ OPERATION_STATE_RUNNING = 3, /** OPERATION_STATE_SUCCEEDED - The operation was completed successfully. */ OPERATION_STATE_SUCCEEDED = 4, /** OPERATION_STATE_FAILED - The operation failed. */ OPERATION_STATE_FAILED = 5, /** OPERATION_STATE_CANCELLED - The operation was cancelled by the user. */ OPERATION_STATE_CANCELLED = 6, UNRECOGNIZED = -1, } export const OperationStateSDKType = OperationState; export function operationStateFromJSON(object: any): OperationState { switch (object) { case 0: case "OPERATION_STATE_UNSPECIFIED": return OperationState.OPERATION_STATE_UNSPECIFIED; case 1: case "OPERATION_STATE_SCHEDULED": return OperationState.OPERATION_STATE_SCHEDULED; case 2: case "OPERATION_STATE_WAITING_FOR_PERMISSIONS": return OperationState.OPERATION_STATE_WAITING_FOR_PERMISSIONS; case 3: case "OPERATION_STATE_RUNNING": return OperationState.OPERATION_STATE_RUNNING; case 4: case "OPERATION_STATE_SUCCEEDED": return OperationState.OPERATION_STATE_SUCCEEDED; case 5: case "OPERATION_STATE_FAILED": return OperationState.OPERATION_STATE_FAILED; case 6: case "OPERATION_STATE_CANCELLED": return OperationState.OPERATION_STATE_CANCELLED; case -1: case "UNRECOGNIZED": default: return OperationState.UNRECOGNIZED; } } export function operationStateToJSON(object: OperationState): string { switch (object) { case OperationState.OPERATION_STATE_UNSPECIFIED: return "OPERATION_STATE_UNSPECIFIED"; case OperationState.OPERATION_STATE_SCHEDULED: return "OPERATION_STATE_SCHEDULED"; case OperationState.OPERATION_STATE_WAITING_FOR_PERMISSIONS: return "OPERATION_STATE_WAITING_FOR_PERMISSIONS"; case OperationState.OPERATION_STATE_RUNNING: return "OPERATION_STATE_RUNNING"; case OperationState.OPERATION_STATE_SUCCEEDED: return "OPERATION_STATE_SUCCEEDED"; case OperationState.OPERATION_STATE_FAILED: return "OPERATION_STATE_FAILED"; case OperationState.OPERATION_STATE_CANCELLED: return "OPERATION_STATE_CANCELLED"; case OperationState.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } /** Describes a repository in which log entries are stored. */ export interface LogBucket { /** * Output only. The resource name of the bucket. * * For example: * * `projects/my-project/locations/global/buckets/my-bucket` * * For a list of supported locations, see [Supported * Regions](https://cloud.google.com/logging/docs/region-support) * * For the location of `global` it is unspecified where log entries are * actually stored. * * After a bucket has been created, the location cannot be changed. */ name: string; /** Describes this bucket. */ description: string; /** * Output only. The creation timestamp of the bucket. This is not set for any of the * default buckets. */ createTime?: Timestamp; /** Output only. The last update timestamp of the bucket. */ updateTime?: Timestamp; /** * Logs will be retained by default for this amount of time, after which they * will automatically be deleted. The minimum retention period is 1 day. If * this value is set to zero at bucket creation time, the default time of 30 * days will be used. */ retentionDays: number; /** * Whether the bucket is locked. * * The retention period on a locked bucket cannot be changed. Locked buckets * may only be deleted if they are empty. */ locked: boolean; /** Output only. The bucket lifecycle state. */ lifecycleState: LifecycleState; /** * Log entry field paths that are denied access in this bucket. * * The following fields and their children are eligible: `textPayload`, * `jsonPayload`, `protoPayload`, `httpRequest`, `labels`, `sourceLocation`. * * Restricting a repeated field will restrict all values. Adding a parent will * block all child fields. (e.g. `foo.bar` will block `foo.bar.baz`) */ restrictedFields: string[]; /** * The CMEK settings of the log bucket. If present, new log entries written to * this log bucket are encrypted using the CMEK key provided in this * configuration. If a log bucket has CMEK settings, the CMEK settings cannot * be disabled later by updating the log bucket. Changing the KMS key is * allowed. */ cmekSettings?: CmekSettings; } /** Describes a repository in which log entries are stored. */ export interface LogBucketSDKType { name: string; description: string; create_time?: TimestampSDKType; update_time?: TimestampSDKType; retention_days: number; locked: boolean; lifecycle_state: LifecycleState; restricted_fields: string[]; cmek_settings?: CmekSettingsSDKType; } /** Describes a view over log entries in a bucket. */ export interface LogView { /** * The resource name of the view. * * For example: * * `projects/my-project/locations/global/buckets/my-bucket/views/my-view` */ name: string; /** Describes this view. */ description: string; /** Output only. The creation timestamp of the view. */ createTime?: Timestamp; /** Output only. The last update timestamp of the view. */ updateTime?: Timestamp; /** * Filter that restricts which log entries in a bucket are visible in this * view. * * Filters are restricted to be a logical AND of ==/!= of any of the * following: * * - originating project/folder/organization/billing account. * - resource type * - log id * * For example: * * SOURCE("projects/myproject") AND resource.type = "gce_instance" * AND LOG_ID("stdout") */ filter: string; } /** Describes a view over log entries in a bucket. */ export interface LogViewSDKType { name: string; description: string; create_time?: TimestampSDKType; update_time?: TimestampSDKType; filter: string; } /** * Describes a sink used to export log entries to one of the following * destinations in any project: a Cloud Storage bucket, a BigQuery dataset, a * Pub/Sub topic or a Cloud Logging log bucket. A logs filter controls which log * entries are exported. The sink must be created within a project, * organization, billing account, or folder. */ export interface LogSink { /** * Required. The client-assigned sink identifier, unique within the project. * * For example: `"my-syslog-errors-to-pubsub"`. Sink identifiers are limited * to 100 characters and can include only the following characters: upper and * lower-case alphanumeric characters, underscores, hyphens, and periods. * First character has to be alphanumeric. */ name: string; /** * Required. The export destination: * * "storage.googleapis.com/[GCS_BUCKET]" * "bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]" * "pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]" * * The sink's `writer_identity`, set when the sink is created, must have * permission to write to the destination or else the log entries are not * exported. For more information, see * [Exporting Logs with * Sinks](https://cloud.google.com/logging/docs/api/tasks/exporting-logs). */ destination: string; /** * Optional. An [advanced logs * filter](https://cloud.google.com/logging/docs/view/advanced-queries). The * only exported log entries are those that are in the resource owning the * sink and that match the filter. * * For example: * * `logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity>=ERROR` */ filter: string; /** * Optional. A description of this sink. * * The maximum length of the description is 8000 characters. */ description: string; /** * Optional. If set to true, then this sink is disabled and it does not export any log * entries. */ disabled: boolean; /** * Optional. Log entries that match any of these exclusion filters will not be exported. * * If a log entry is matched by both `filter` and one of `exclusion_filters` * it will not be exported. */ exclusions: LogExclusion[]; /** Deprecated. This field is unused. */ /** @deprecated */ outputVersionFormat: LogSink_VersionFormat; /** * Output only. An IAM identity—a service account or group—under which Cloud * Logging writes the exported log entries to the sink's destination. This * field is set by * [sinks.create][google.logging.v2.ConfigServiceV2.CreateSink] and * [sinks.update][google.logging.v2.ConfigServiceV2.UpdateSink] based on the * value of `unique_writer_identity` in those methods. * * Until you grant this identity write-access to the destination, log entry * exports from this sink will fail. For more information, see [Granting * Access for a * Resource](https://cloud.google.com/iam/docs/granting-roles-to-service-accounts#granting_access_to_a_service_account_for_a_resource). * Consult the destination service's documentation to determine the * appropriate IAM roles to assign to the identity. * * Sinks that have a destination that is a log bucket in the same project as * the sink do not have a writer_identity and no additional permissions are * required. */ writerIdentity: string; /** * Optional. This field applies only to sinks owned by organizations and folders. If the * field is false, the default, only the logs owned by the sink's parent * resource are available for export. If the field is true, then log entries * from all the projects, folders, and billing accounts contained in the * sink's parent resource are also available for export. Whether a particular * log entry from the children is exported depends on the sink's filter * expression. * * For example, if this field is true, then the filter * `resource.type=gce_instance` would export all Compute Engine VM instance * log entries from all projects in the sink's parent. * * To only export entries from certain child projects, filter on the project * part of the log name: * * logName:("projects/test-project1/" OR "projects/test-project2/") AND * resource.type=gce_instance */ includeChildren: boolean; /** Optional. Options that affect sinks exporting data to BigQuery. */ bigqueryOptions?: BigQueryOptions; /** * Output only. The creation timestamp of the sink. * * This field may not be present for older sinks. */ createTime?: Timestamp; /** * Output only. The last update timestamp of the sink. * * This field may not be present for older sinks. */ updateTime?: Timestamp; } /** * Describes a sink used to export log entries to one of the following * destinations in any project: a Cloud Storage bucket, a BigQuery dataset, a * Pub/Sub topic or a Cloud Logging log bucket. A logs filter controls which log * entries are exported. The sink must be created within a project, * organization, billing account, or folder. */ export interface LogSinkSDKType { name: string; destination: string; filter: string; description: string; disabled: boolean; exclusions: LogExclusionSDKType[]; /** @deprecated */ output_version_format: LogSink_VersionFormat; writer_identity: string; include_children: boolean; bigquery_options?: BigQueryOptionsSDKType; create_time?: TimestampSDKType; update_time?: TimestampSDKType; } /** Options that change functionality of a sink exporting data to BigQuery. */ export interface BigQueryOptions { /** * Optional. Whether to use [BigQuery's partition * tables](https://cloud.google.com/bigquery/docs/partitioned-tables). By * default, Cloud Logging creates dated tables based on the log entries' * timestamps, e.g. syslog_20170523. With partitioned tables the date suffix * is no longer present and [special query * syntax](https://cloud.google.com/bigquery/docs/querying-partitioned-tables) * has to be used instead. In both cases, tables are sharded based on UTC * timezone. */ usePartitionedTables: boolean; /** * Output only. True if new timestamp column based partitioning is in use, false if legacy * ingestion-time partitioning is in use. * * All new sinks will have this field set true and will use timestamp column * based partitioning. If use_partitioned_tables is false, this value has no * meaning and will be false. Legacy sinks using partitioned tables will have * this field set to false. */ usesTimestampColumnPartitioning: boolean; } /** Options that change functionality of a sink exporting data to BigQuery. */ export interface BigQueryOptionsSDKType { use_partitioned_tables: boolean; uses_timestamp_column_partitioning: boolean; } /** The parameters to `ListBuckets`. */ export interface ListBucketsRequest { /** * Required. The parent resource whose buckets are to be listed: * * "projects/[PROJECT_ID]/locations/[LOCATION_ID]" * "organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]" * "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]" * "folders/[FOLDER_ID]/locations/[LOCATION_ID]" * * Note: The locations portion of the resource must be specified, but * supplying the character `-` in place of [LOCATION_ID] will return all * buckets. */ parent: string; /** * Optional. If present, then retrieve the next batch of results from the preceding call * to this method. `pageToken` must be the value of `nextPageToken` from the * previous response. The values of other method parameters should be * identical to those in the previous call. */ pageToken: string; /** * Optional. The maximum number of results to return from this request. Non-positive * values are ignored. The presence of `nextPageToken` in the response * indicates that more results might be available. */ pageSize: number; } /** The parameters to `ListBuckets`. */ export interface ListBucketsRequestSDKType { parent: string; page_token: string; page_size: number; } /** The response from ListBuckets. */ export interface ListBucketsResponse { /** A list of buckets. */ buckets: LogBucket[]; /** * If there might be more results than appear in this response, then * `nextPageToken` is included. To get the next set of results, call the same * method again using the value of `nextPageToken` as `pageToken`. */ nextPageToken: string; } /** The response from ListBuckets. */ export interface ListBucketsResponseSDKType { buckets: LogBucketSDKType[]; next_page_token: string; } /** The parameters to `CreateBucket`. */ export interface CreateBucketRequest { /** * Required. The resource in which to create the log bucket: * * "projects/[PROJECT_ID]/locations/[LOCATION_ID]" * * For example: * * `"projects/my-project/locations/global"` */ parent: string; /** * Required. A client-assigned identifier such as `"my-bucket"`. Identifiers are limited * to 100 characters and can include only letters, digits, underscores, * hyphens, and periods. */ bucketId: string; /** * Required. The new bucket. The region specified in the new bucket must be compliant * with any Location Restriction Org Policy. The name field in the bucket is * ignored. */ bucket?: LogBucket; } /** The parameters to `CreateBucket`. */ export interface CreateBucketRequestSDKType { parent: string; bucket_id: string; bucket?: LogBucketSDKType; } /** The parameters to `UpdateBucket`. */ export interface UpdateBucketRequest { /** * Required. The full resource name of the bucket to update. * * "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" * "organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" * "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" * "folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" * * For example: * * `"projects/my-project/locations/global/buckets/my-bucket"` */ name: string; /** Required. The updated bucket. */ bucket?: LogBucket; /** * Required. Field mask that specifies the fields in `bucket` that need an update. A * bucket field will be overwritten if, and only if, it is in the update mask. * `name` and output only fields cannot be updated. * * For a detailed `FieldMask` definition, see: * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.FieldMask * * For example: `updateMask=retention_days` */ updateMask?: FieldMask; } /** The parameters to `UpdateBucket`. */ export interface UpdateBucketRequestSDKType { name: string; bucket?: LogBucketSDKType; update_mask?: FieldMaskSDKType; } /** The parameters to `GetBucket`. */ export interface GetBucketRequest { /** * Required. The resource name of the bucket: * * "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" * "organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" * "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" * "folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" * * For example: * * `"projects/my-project/locations/global/buckets/my-bucket"` */ name: string; } /** The parameters to `GetBucket`. */ export interface GetBucketRequestSDKType { name: string; } /** The parameters to `DeleteBucket`. */ export interface DeleteBucketRequest { /** * Required. The full resource name of the bucket to delete. * * "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" * "organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" * "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" * "folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" * * For example: * * `"projects/my-project/locations/global/buckets/my-bucket"` */ name: string; } /** The parameters to `DeleteBucket`. */ export interface DeleteBucketRequestSDKType { name: string; } /** The parameters to `UndeleteBucket`. */ export interface UndeleteBucketRequest { /** * Required. The full resource name of the bucket to undelete. * * "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" * "organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" * "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" * "folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" * * For example: * * `"projects/my-project/locations/global/buckets/my-bucket"` */ name: string; } /** The parameters to `UndeleteBucket`. */ export interface UndeleteBucketRequestSDKType { name: string; } /** The parameters to `ListViews`. */ export interface ListViewsRequest { /** * Required. The bucket whose views are to be listed: * * "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" */ parent: string; /** * Optional. If present, then retrieve the next batch of results from the preceding call * to this method. `pageToken` must be the value of `nextPageToken` from the * previous response. The values of other method parameters should be * identical to those in the previous call. */ pageToken: string; /** * Optional. The maximum number of results to return from this request. * * Non-positive values are ignored. The presence of `nextPageToken` in the * response indicates that more results might be available. */ pageSize: number; } /** The parameters to `ListViews`. */ export interface ListViewsRequestSDKType { parent: string; page_token: string; page_size: number; } /** The response from ListViews. */ export interface ListViewsResponse { /** A list of views. */ views: LogView[]; /** * If there might be more results than appear in this response, then * `nextPageToken` is included. To get the next set of results, call the same * method again using the value of `nextPageToken` as `pageToken`. */ nextPageToken: string; } /** The response from ListViews. */ export interface ListViewsResponseSDKType { views: LogViewSDKType[]; next_page_token: string; } /** The parameters to `CreateView`. */ export interface CreateViewRequest { /** * Required. The bucket in which to create the view * * `"projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"` * * For example: * * `"projects/my-project/locations/global/buckets/my-bucket"` */ parent: string; /** Required. The id to use for this view. */ viewId: string; /** Required. The new view. */ view?: LogView; } /** The parameters to `CreateView`. */ export interface CreateViewRequestSDKType { parent: string; view_id: string; view?: LogViewSDKType; } /** The parameters to `UpdateView`. */ export interface UpdateViewRequest { /** * Required. The full resource name of the view to update * * "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]" * * For example: * * `"projects/my-project/locations/global/buckets/my-bucket/views/my-view"` */ name: string; /** Required. The updated view. */ view?: LogView; /** * Optional. Field mask that specifies the fields in `view` that need * an update. A field will be overwritten if, and only if, it is * in the update mask. `name` and output only fields cannot be updated. * * For a detailed `FieldMask` definition, see * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.FieldMask * * For example: `updateMask=filter` */ updateMask?: FieldMask; } /** The parameters to `UpdateView`. */ export interface UpdateViewRequestSDKType { name: string; view?: LogViewSDKType; update_mask?: FieldMaskSDKType; } /** The parameters to `GetView`. */ export interface GetViewRequest { /** * Required. The resource name of the policy: * * "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]" * * For example: * * `"projects/my-project/locations/global/buckets/my-bucket/views/my-view"` */ name: string; } /** The parameters to `GetView`. */ export interface GetViewRequestSDKType { name: string; } /** The parameters to `DeleteView`. */ export interface DeleteViewRequest { /** * Required. The full resource name of the view to delete: * * "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]" * * For example: * * `"projects/my-project/locations/global/buckets/my-bucket/views/my-view"` */ name: string; } /** The parameters to `DeleteView`. */ export interface DeleteViewRequestSDKType { name: string; } /** The parameters to `ListSinks`. */ export interface ListSinksRequest { /** * Required. The parent resource whose sinks are to be listed: * * "projects/[PROJECT_ID]" * "organizations/[ORGANIZATION_ID]" * "billingAccounts/[BILLING_ACCOUNT_ID]" * "folders/[FOLDER_ID]" */ parent: string; /** * Optional. If present, then retrieve the next batch of results from the * preceding call to this method. `pageToken` must be the value of * `nextPageToken` from the previous response. The values of other method * parameters should be identical to those in the previous call. */ pageToken: string; /** * Optional. The maximum number of results to return from this request. * Non-positive values are ignored. The presence of `nextPageToken` in the * response indicates that more results might be available. */ pageSize: number; } /** The parameters to `ListSinks`. */ export interface ListSinksRequestSDKType { parent: string; page_token: string; page_size: number; } /** Result returned from `ListSinks`. */ export interface ListSinksResponse { /** A list of sinks. */ sinks: LogSink[]; /** * If there might be more results than appear in this response, then * `nextPageToken` is included. To get the next set of results, call the same * method again using the value of `nextPageToken` as `pageToken`. */ nextPageToken: string; } /** Result returned from `ListSinks`. */ export interface ListSinksResponseSDKType { sinks: LogSinkSDKType[]; next_page_token: string; } /** The parameters to `GetSink`. */ export interface GetSinkRequest { /** * Required. The resource name of the sink: * * "projects/[PROJECT_ID]/sinks/[SINK_ID]" * "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]" * "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]" * "folders/[FOLDER_ID]/sinks/[SINK_ID]" * * For example: * * `"projects/my-project/sinks/my-sink"` */ sinkName: string; } /** The parameters to `GetSink`. */ export interface GetSinkRequestSDKType { sink_name: string; } /** The parameters to `CreateSink`. */ export interface CreateSinkRequest { /** * Required. The resource in which to create the sink: * * "projects/[PROJECT_ID]" * "organizations/[ORGANIZATION_ID]" * "billingAccounts/[BILLING_ACCOUNT_ID]" * "folders/[FOLDER_ID]" * * For examples: * * `"projects/my-project"` * `"organizations/123456789"` */ parent: string; /** * Required. The new sink, whose `name` parameter is a sink identifier that * is not already in use. */ sink?: LogSink; /** * Optional. Determines the kind of IAM identity returned as `writer_identity` * in the new sink. If this value is omitted or set to false, and if the * sink's parent is a project, then the value returned as `writer_identity` is * the same group or service account used by Cloud Logging before the addition * of writer identities to this API. The sink's destination must be in the * same project as the sink itself. * * If this field is set to true, or if the sink is owned by a non-project * resource such as an organization, then the value of `writer_identity` will * be a unique service account used only for exports from the new sink. For * more information, see `writer_identity` in [LogSink][google.logging.v2.LogSink]. */ uniqueWriterIdentity: boolean; } /** The parameters to `CreateSink`. */ export interface CreateSinkRequestSDKType { parent: string; sink?: LogSinkSDKType; unique_writer_identity: boolean; } /** The parameters to `UpdateSink`. */ export interface UpdateSinkRequest { /** * Required. The full resource name of the sink to update, including the parent * resource and the sink identifier: * * "projects/[PROJECT_ID]/sinks/[SINK_ID]" * "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]" * "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]" * "folders/[FOLDER_ID]/sinks/[SINK_ID]" * * For example: * * `"projects/my-project/sinks/my-sink"` */ sinkName: string; /** * Required. The updated sink, whose name is the same identifier that appears as part * of `sink_name`. */ sink?: LogSink; /** * Optional. See [sinks.create][google.logging.v2.ConfigServiceV2.CreateSink] * for a description of this field. When updating a sink, the effect of this * field on the value of `writer_identity` in the updated sink depends on both * the old and new values of this field: * * + If the old and new values of this field are both false or both true, * then there is no change to the sink's `writer_identity`. * + If the old value is false and the new value is true, then * `writer_identity` is changed to a unique service account. * + It is an error if the old value is true and the new value is * set to false or defaulted to false. */ uniqueWriterIdentity: boolean; /** * Optional. Field mask that specifies the fields in `sink` that need * an update. A sink field will be overwritten if, and only if, it is * in the update mask. `name` and output only fields cannot be updated. * * An empty `updateMask` is temporarily treated as using the following mask * for backwards compatibility purposes: * * `destination,filter,includeChildren` * * At some point in the future, behavior will be removed and specifying an * empty `updateMask` will be an error. * * For a detailed `FieldMask` definition, see * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.FieldMask * * For example: `updateMask=filter` */ updateMask?: FieldMask; } /** The parameters to `UpdateSink`. */ export interface UpdateSinkRequestSDKType { sink_name: string; sink?: LogSinkSDKType; unique_writer_identity: boolean; update_mask?: FieldMaskSDKType; } /** The parameters to `DeleteSink`. */ export interface DeleteSinkRequest { /** * Required. The full resource name of the sink to delete, including the parent * resource and the sink identifier: * * "projects/[PROJECT_ID]/sinks/[SINK_ID]" * "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]" * "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]" * "folders/[FOLDER_ID]/sinks/[SINK_ID]" * * For example: * * `"projects/my-project/sinks/my-sink"` */ sinkName: string; } /** The parameters to `DeleteSink`. */ export interface DeleteSinkRequestSDKType { sink_name: string; } /** * Specifies a set of log entries that are filtered out by a sink. If * your Google Cloud resource receives a large volume of log entries, you can * use exclusions to reduce your chargeable logs. Note that exclusions on * organization-level and folder-level sinks don't apply to child resources. * Note also that you cannot modify the _Required sink or exclude logs from it. */ export interface LogExclusion { /** * Required. A client-assigned identifier, such as `"load-balancer-exclusion"`. * Identifiers are limited to 100 characters and can include only letters, * digits, underscores, hyphens, and periods. First character has to be * alphanumeric. */ name: string; /** Optional. A description of this exclusion. */ description: string; /** * Required. An [advanced logs * filter](https://cloud.google.com/logging/docs/view/advanced-queries) that * matches the log entries to be excluded. By using the [sample * function](https://cloud.google.com/logging/docs/view/advanced-queries#sample), * you can exclude less than 100% of the matching log entries. * * For example, the following query matches 99% of low-severity log entries * from Google Cloud Storage buckets: * * `resource.type=gcs_bucket severity>> 3) { case 1: message.name = reader.string(); break; case 3: message.description = reader.string(); break; case 4: message.createTime = Timestamp.decode(reader, reader.uint32()); break; case 5: message.updateTime = Timestamp.decode(reader, reader.uint32()); break; case 11: message.retentionDays = reader.int32(); break; case 9: message.locked = reader.bool(); break; case 12: message.lifecycleState = (reader.int32() as any); break; case 15: message.restrictedFields.push(reader.string()); break; case 19: message.cmekSettings = CmekSettings.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): LogBucket { return { name: isSet(object.name) ? String(object.name) : "", description: isSet(object.description) ? String(object.description) : "", createTime: isSet(object.createTime) ? fromJsonTimestamp(object.createTime) : undefined, updateTime: isSet(object.updateTime) ? fromJsonTimestamp(object.updateTime) : undefined, retentionDays: isSet(object.retentionDays) ? Number(object.retentionDays) : 0, locked: isSet(object.locked) ? Boolean(object.locked) : false, lifecycleState: isSet(object.lifecycleState) ? lifecycleStateFromJSON(object.lifecycleState) : 0, restrictedFields: Array.isArray(object?.restrictedFields) ? object.restrictedFields.map((e: any) => String(e)) : [], cmekSettings: isSet(object.cmekSettings) ? CmekSettings.fromJSON(object.cmekSettings) : undefined }; }, toJSON(message: LogBucket): unknown { const obj: any = {}; message.name !== undefined && (obj.name = message.name); message.description !== undefined && (obj.description = message.description); message.createTime !== undefined && (obj.createTime = fromTimestamp(message.createTime).toISOString()); message.updateTime !== undefined && (obj.updateTime = fromTimestamp(message.updateTime).toISOString()); message.retentionDays !== undefined && (obj.retentionDays = Math.round(message.retentionDays)); message.locked !== undefined && (obj.locked = message.locked); message.lifecycleState !== undefined && (obj.lifecycleState = lifecycleStateToJSON(message.lifecycleState)); if (message.restrictedFields) { obj.restrictedFields = message.restrictedFields.map(e => e); } else { obj.restrictedFields = []; } message.cmekSettings !== undefined && (obj.cmekSettings = message.cmekSettings ? CmekSettings.toJSON(message.cmekSettings) : undefined); return obj; }, fromPartial(object: Partial): LogBucket { const message = createBaseLogBucket(); message.name = object.name ?? ""; message.description = object.description ?? ""; message.createTime = object.createTime !== undefined && object.createTime !== null ? Timestamp.fromPartial(object.createTime) : undefined; message.updateTime = object.updateTime !== undefined && object.updateTime !== null ? Timestamp.fromPartial(object.updateTime) : undefined; message.retentionDays = object.retentionDays ?? 0; message.locked = object.locked ?? false; message.lifecycleState = object.lifecycleState ?? 0; message.restrictedFields = object.restrictedFields?.map(e => e) || []; message.cmekSettings = object.cmekSettings !== undefined && object.cmekSettings !== null ? CmekSettings.fromPartial(object.cmekSettings) : undefined; return message; } }; function createBaseLogView(): LogView { return { name: "", description: "", createTime: undefined, updateTime: undefined, filter: "" }; } export const LogView = { encode(message: LogView, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.name !== "") { writer.uint32(10).string(message.name); } if (message.description !== "") { writer.uint32(26).string(message.description); } if (message.createTime !== undefined) { Timestamp.encode(message.createTime, writer.uint32(34).fork()).ldelim(); } if (message.updateTime !== undefined) { Timestamp.encode(message.updateTime, writer.uint32(42).fork()).ldelim(); } if (message.filter !== "") { writer.uint32(58).string(message.filter); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): LogView { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseLogView(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.name = reader.string(); break; case 3: message.description = reader.string(); break; case 4: message.createTime = Timestamp.decode(reader, reader.uint32()); break; case 5: message.updateTime = Timestamp.decode(reader, reader.uint32()); break; case 7: message.filter = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): LogView { return { name: isSet(object.name) ? String(object.name) : "", description: isSet(object.description) ? String(object.description) : "", createTime: isSet(object.createTime) ? fromJsonTimestamp(object.createTime) : undefined, updateTime: isSet(object.updateTime) ? fromJsonTimestamp(object.updateTime) : undefined, filter: isSet(object.filter) ? String(object.filter) : "" }; }, toJSON(message: LogView): unknown { const obj: any = {}; message.name !== undefined && (obj.name = message.name); message.description !== undefined && (obj.description = message.description); message.createTime !== undefined && (obj.createTime = fromTimestamp(message.createTime).toISOString()); message.updateTime !== undefined && (obj.updateTime = fromTimestamp(message.updateTime).toISOString()); message.filter !== undefined && (obj.filter = message.filter); return obj; }, fromPartial(object: Partial): LogView { const message = createBaseLogView(); message.name = object.name ?? ""; message.description = object.description ?? ""; message.createTime = object.createTime !== undefined && object.createTime !== null ? Timestamp.fromPartial(object.createTime) : undefined; message.updateTime = object.updateTime !== undefined && object.updateTime !== null ? Timestamp.fromPartial(object.updateTime) : undefined; message.filter = object.filter ?? ""; return message; } }; function createBaseLogSink(): LogSink { return { name: "", destination: "", filter: "", description: "", disabled: false, exclusions: [], outputVersionFormat: 0, writerIdentity: "", includeChildren: false, bigqueryOptions: undefined, createTime: undefined, updateTime: undefined }; } export const LogSink = { encode(message: LogSink, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.name !== "") { writer.uint32(10).string(message.name); } if (message.destination !== "") { writer.uint32(26).string(message.destination); } if (message.filter !== "") { writer.uint32(42).string(message.filter); } if (message.description !== "") { writer.uint32(146).string(message.description); } if (message.disabled === true) { writer.uint32(152).bool(message.disabled); } for (const v of message.exclusions) { LogExclusion.encode(v!, writer.uint32(130).fork()).ldelim(); } if (message.outputVersionFormat !== 0) { writer.uint32(48).int32(message.outputVersionFormat); } if (message.writerIdentity !== "") { writer.uint32(66).string(message.writerIdentity); } if (message.includeChildren === true) { writer.uint32(72).bool(message.includeChildren); } if (message.bigqueryOptions !== undefined) { BigQueryOptions.encode(message.bigqueryOptions, writer.uint32(98).fork()).ldelim(); } if (message.createTime !== undefined) { Timestamp.encode(message.createTime, writer.uint32(106).fork()).ldelim(); } if (message.updateTime !== undefined) { Timestamp.encode(message.updateTime, writer.uint32(114).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): LogSink { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseLogSink(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.name = reader.string(); break; case 3: message.destination = reader.string(); break; case 5: message.filter = reader.string(); break; case 18: message.description = reader.string(); break; case 19: message.disabled = reader.bool(); break; case 16: message.exclusions.push(LogExclusion.decode(reader, reader.uint32())); break; case 6: message.outputVersionFormat = (reader.int32() as any); break; case 8: message.writerIdentity = reader.string(); break; case 9: message.includeChildren = reader.bool(); break; case 12: message.bigqueryOptions = BigQueryOptions.decode(reader, reader.uint32()); break; case 13: message.createTime = Timestamp.decode(reader, reader.uint32()); break; case 14: message.updateTime = Timestamp.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): LogSink { return { name: isSet(object.name) ? String(object.name) : "", destination: isSet(object.destination) ? String(object.destination) : "", filter: isSet(object.filter) ? String(object.filter) : "", description: isSet(object.description) ? String(object.description) : "", disabled: isSet(object.disabled) ? Boolean(object.disabled) : false, exclusions: Array.isArray(object?.exclusions) ? object.exclusions.map((e: any) => LogExclusion.fromJSON(e)) : [], outputVersionFormat: isSet(object.outputVersionFormat) ? logSink_VersionFormatFromJSON(object.outputVersionFormat) : 0, writerIdentity: isSet(object.writerIdentity) ? String(object.writerIdentity) : "", includeChildren: isSet(object.includeChildren) ? Boolean(object.includeChildren) : false, bigqueryOptions: isSet(object.bigqueryOptions) ? BigQueryOptions.fromJSON(object.bigqueryOptions) : undefined, createTime: isSet(object.createTime) ? fromJsonTimestamp(object.createTime) : undefined, updateTime: isSet(object.updateTime) ? fromJsonTimestamp(object.updateTime) : undefined }; }, toJSON(message: LogSink): unknown { const obj: any = {}; message.name !== undefined && (obj.name = message.name); message.destination !== undefined && (obj.destination = message.destination); message.filter !== undefined && (obj.filter = message.filter); message.description !== undefined && (obj.description = message.description); message.disabled !== undefined && (obj.disabled = message.disabled); if (message.exclusions) { obj.exclusions = message.exclusions.map(e => e ? LogExclusion.toJSON(e) : undefined); } else { obj.exclusions = []; } message.outputVersionFormat !== undefined && (obj.outputVersionFormat = logSink_VersionFormatToJSON(message.outputVersionFormat)); message.writerIdentity !== undefined && (obj.writerIdentity = message.writerIdentity); message.includeChildren !== undefined && (obj.includeChildren = message.includeChildren); message.bigqueryOptions !== undefined && (obj.bigqueryOptions = message.bigqueryOptions ? BigQueryOptions.toJSON(message.bigqueryOptions) : undefined); message.createTime !== undefined && (obj.createTime = fromTimestamp(message.createTime).toISOString()); message.updateTime !== undefined && (obj.updateTime = fromTimestamp(message.updateTime).toISOString()); return obj; }, fromPartial(object: Partial): LogSink { const message = createBaseLogSink(); message.name = object.name ?? ""; message.destination = object.destination ?? ""; message.filter = object.filter ?? ""; message.description = object.description ?? ""; message.disabled = object.disabled ?? false; message.exclusions = object.exclusions?.map(e => LogExclusion.fromPartial(e)) || []; message.outputVersionFormat = object.outputVersionFormat ?? 0; message.writerIdentity = object.writerIdentity ?? ""; message.includeChildren = object.includeChildren ?? false; message.bigqueryOptions = object.bigqueryOptions !== undefined && object.bigqueryOptions !== null ? BigQueryOptions.fromPartial(object.bigqueryOptions) : undefined; message.createTime = object.createTime !== undefined && object.createTime !== null ? Timestamp.fromPartial(object.createTime) : undefined; message.updateTime = object.updateTime !== undefined && object.updateTime !== null ? Timestamp.fromPartial(object.updateTime) : undefined; return message; } }; function createBaseBigQueryOptions(): BigQueryOptions { return { usePartitionedTables: false, usesTimestampColumnPartitioning: false }; } export const BigQueryOptions = { encode(message: BigQueryOptions, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.usePartitionedTables === true) { writer.uint32(8).bool(message.usePartitionedTables); } if (message.usesTimestampColumnPartitioning === true) { writer.uint32(24).bool(message.usesTimestampColumnPartitioning); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): BigQueryOptions { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseBigQueryOptions(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.usePartitionedTables = reader.bool(); break; case 3: message.usesTimestampColumnPartitioning = reader.bool(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): BigQueryOptions { return { usePartitionedTables: isSet(object.usePartitionedTables) ? Boolean(object.usePartitionedTables) : false, usesTimestampColumnPartitioning: isSet(object.usesTimestampColumnPartitioning) ? Boolean(object.usesTimestampColumnPartitioning) : false }; }, toJSON(message: BigQueryOptions): unknown { const obj: any = {}; message.usePartitionedTables !== undefined && (obj.usePartitionedTables = message.usePartitionedTables); message.usesTimestampColumnPartitioning !== undefined && (obj.usesTimestampColumnPartitioning = message.usesTimestampColumnPartitioning); return obj; }, fromPartial(object: Partial): BigQueryOptions { const message = createBaseBigQueryOptions(); message.usePartitionedTables = object.usePartitionedTables ?? false; message.usesTimestampColumnPartitioning = object.usesTimestampColumnPartitioning ?? false; return message; } }; function createBaseListBucketsRequest(): ListBucketsRequest { return { parent: "", pageToken: "", pageSize: 0 }; } export const ListBucketsRequest = { encode(message: ListBucketsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.parent !== "") { writer.uint32(10).string(message.parent); } if (message.pageToken !== "") { writer.uint32(18).string(message.pageToken); } if (message.pageSize !== 0) { writer.uint32(24).int32(message.pageSize); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): ListBucketsRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseListBucketsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.parent = reader.string(); break; case 2: message.pageToken = reader.string(); break; case 3: message.pageSize = reader.int32(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): ListBucketsRequest { return { parent: isSet(object.parent) ? String(object.parent) : "", pageToken: isSet(object.pageToken) ? String(object.pageToken) : "", pageSize: isSet(object.pageSize) ? Number(object.pageSize) : 0 }; }, toJSON(message: ListBucketsRequest): unknown { const obj: any = {}; message.parent !== undefined && (obj.parent = message.parent); message.pageToken !== undefined && (obj.pageToken = message.pageToken); message.pageSize !== undefined && (obj.pageSize = Math.round(message.pageSize)); return obj; }, fromPartial(object: Partial): ListBucketsRequest { const message = createBaseListBucketsRequest(); message.parent = object.parent ?? ""; message.pageToken = object.pageToken ?? ""; message.pageSize = object.pageSize ?? 0; return message; } }; function createBaseListBucketsResponse(): ListBucketsResponse { return { buckets: [], nextPageToken: "" }; } export const ListBucketsResponse = { encode(message: ListBucketsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { for (const v of message.buckets) { LogBucket.encode(v!, writer.uint32(10).fork()).ldelim(); } if (message.nextPageToken !== "") { writer.uint32(18).string(message.nextPageToken); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): ListBucketsResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseListBucketsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.buckets.push(LogBucket.decode(reader, reader.uint32())); break; case 2: message.nextPageToken = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): ListBucketsResponse { return { buckets: Array.isArray(object?.buckets) ? object.buckets.map((e: any) => LogBucket.fromJSON(e)) : [], nextPageToken: isSet(object.nextPageToken) ? String(object.nextPageToken) : "" }; }, toJSON(message: ListBucketsResponse): unknown { const obj: any = {}; if (message.buckets) { obj.buckets = message.buckets.map(e => e ? LogBucket.toJSON(e) : undefined); } else { obj.buckets = []; } message.nextPageToken !== undefined && (obj.nextPageToken = message.nextPageToken); return obj; }, fromPartial(object: Partial): ListBucketsResponse { const message = createBaseListBucketsResponse(); message.buckets = object.buckets?.map(e => LogBucket.fromPartial(e)) || []; message.nextPageToken = object.nextPageToken ?? ""; return message; } }; function createBaseCreateBucketRequest(): CreateBucketRequest { return { parent: "", bucketId: "", bucket: undefined }; } export const CreateBucketRequest = { encode(message: CreateBucketRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.parent !== "") { writer.uint32(10).string(message.parent); } if (message.bucketId !== "") { writer.uint32(18).string(message.bucketId); } if (message.bucket !== undefined) { LogBucket.encode(message.bucket, writer.uint32(26).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): CreateBucketRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseCreateBucketRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.parent = reader.string(); break; case 2: message.bucketId = reader.string(); break; case 3: message.bucket = LogBucket.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): CreateBucketRequest { return { parent: isSet(object.parent) ? String(object.parent) : "", bucketId: isSet(object.bucketId) ? String(object.bucketId) : "", bucket: isSet(object.bucket) ? LogBucket.fromJSON(object.bucket) : undefined }; }, toJSON(message: CreateBucketRequest): unknown { const obj: any = {}; message.parent !== undefined && (obj.parent = message.parent); message.bucketId !== undefined && (obj.bucketId = message.bucketId); message.bucket !== undefined && (obj.bucket = message.bucket ? LogBucket.toJSON(message.bucket) : undefined); return obj; }, fromPartial(object: Partial): CreateBucketRequest { const message = createBaseCreateBucketRequest(); message.parent = object.parent ?? ""; message.bucketId = object.bucketId ?? ""; message.bucket = object.bucket !== undefined && object.bucket !== null ? LogBucket.fromPartial(object.bucket) : undefined; return message; } }; function createBaseUpdateBucketRequest(): UpdateBucketRequest { return { name: "", bucket: undefined, updateMask: undefined }; } export const UpdateBucketRequest = { encode(message: UpdateBucketRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.name !== "") { writer.uint32(10).string(message.name); } if (message.bucket !== undefined) { LogBucket.encode(message.bucket, writer.uint32(18).fork()).ldelim(); } if (message.updateMask !== undefined) { FieldMask.encode(message.updateMask, writer.uint32(34).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): UpdateBucketRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseUpdateBucketRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.name = reader.string(); break; case 2: message.bucket = LogBucket.decode(reader, reader.uint32()); break; case 4: message.updateMask = FieldMask.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): UpdateBucketRequest { return { name: isSet(object.name) ? String(object.name) : "", bucket: isSet(object.bucket) ? LogBucket.fromJSON(object.bucket) : undefined, updateMask: isSet(object.updateMask) ? FieldMask.fromJSON(object.updateMask) : undefined }; }, toJSON(message: UpdateBucketRequest): unknown { const obj: any = {}; message.name !== undefined && (obj.name = message.name); message.bucket !== undefined && (obj.bucket = message.bucket ? LogBucket.toJSON(message.bucket) : undefined); message.updateMask !== undefined && (obj.updateMask = message.updateMask ? FieldMask.toJSON(message.updateMask) : undefined); return obj; }, fromPartial(object: Partial): UpdateBucketRequest { const message = createBaseUpdateBucketRequest(); message.name = object.name ?? ""; message.bucket = object.bucket !== undefined && object.bucket !== null ? LogBucket.fromPartial(object.bucket) : undefined; message.updateMask = object.updateMask !== undefined && object.updateMask !== null ? FieldMask.fromPartial(object.updateMask) : undefined; return message; } }; function createBaseGetBucketRequest(): GetBucketRequest { return { name: "" }; } export const GetBucketRequest = { encode(message: GetBucketRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.name !== "") { writer.uint32(10).string(message.name); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): GetBucketRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetBucketRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.name = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): GetBucketRequest { return { name: isSet(object.name) ? String(object.name) : "" }; }, toJSON(message: GetBucketRequest): unknown { const obj: any = {}; message.name !== undefined && (obj.name = message.name); return obj; }, fromPartial(object: Partial): GetBucketRequest { const message = createBaseGetBucketRequest(); message.name = object.name ?? ""; return message; } }; function createBaseDeleteBucketRequest(): DeleteBucketRequest { return { name: "" }; } export const DeleteBucketRequest = { encode(message: DeleteBucketRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.name !== "") { writer.uint32(10).string(message.name); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): DeleteBucketRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseDeleteBucketRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.name = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): DeleteBucketRequest { return { name: isSet(object.name) ? String(object.name) : "" }; }, toJSON(message: DeleteBucketRequest): unknown { const obj: any = {}; message.name !== undefined && (obj.name = message.name); return obj; }, fromPartial(object: Partial): DeleteBucketRequest { const message = createBaseDeleteBucketRequest(); message.name = object.name ?? ""; return message; } }; function createBaseUndeleteBucketRequest(): UndeleteBucketRequest { return { name: "" }; } export const UndeleteBucketRequest = { encode(message: UndeleteBucketRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.name !== "") { writer.uint32(10).string(message.name); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): UndeleteBucketRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseUndeleteBucketRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.name = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): UndeleteBucketRequest { return { name: isSet(object.name) ? String(object.name) : "" }; }, toJSON(message: UndeleteBucketRequest): unknown { const obj: any = {}; message.name !== undefined && (obj.name = message.name); return obj; }, fromPartial(object: Partial): UndeleteBucketRequest { const message = createBaseUndeleteBucketRequest(); message.name = object.name ?? ""; return message; } }; function createBaseListViewsRequest(): ListViewsRequest { return { parent: "", pageToken: "", pageSize: 0 }; } export const ListViewsRequest = { encode(message: ListViewsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.parent !== "") { writer.uint32(10).string(message.parent); } if (message.pageToken !== "") { writer.uint32(18).string(message.pageToken); } if (message.pageSize !== 0) { writer.uint32(24).int32(message.pageSize); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): ListViewsRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseListViewsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.parent = reader.string(); break; case 2: message.pageToken = reader.string(); break; case 3: message.pageSize = reader.int32(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): ListViewsRequest { return { parent: isSet(object.parent) ? String(object.parent) : "", pageToken: isSet(object.pageToken) ? String(object.pageToken) : "", pageSize: isSet(object.pageSize) ? Number(object.pageSize) : 0 }; }, toJSON(message: ListViewsRequest): unknown { const obj: any = {}; message.parent !== undefined && (obj.parent = message.parent); message.pageToken !== undefined && (obj.pageToken = message.pageToken); message.pageSize !== undefined && (obj.pageSize = Math.round(message.pageSize)); return obj; }, fromPartial(object: Partial): ListViewsRequest { const message = createBaseListViewsRequest(); message.parent = object.parent ?? ""; message.pageToken = object.pageToken ?? ""; message.pageSize = object.pageSize ?? 0; return message; } }; function createBaseListViewsResponse(): ListViewsResponse { return { views: [], nextPageToken: "" }; } export const ListViewsResponse = { encode(message: ListViewsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { for (const v of message.views) { LogView.encode(v!, writer.uint32(10).fork()).ldelim(); } if (message.nextPageToken !== "") { writer.uint32(18).string(message.nextPageToken); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): ListViewsResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseListViewsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.views.push(LogView.decode(reader, reader.uint32())); break; case 2: message.nextPageToken = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): ListViewsResponse { return { views: Array.isArray(object?.views) ? object.views.map((e: any) => LogView.fromJSON(e)) : [], nextPageToken: isSet(object.nextPageToken) ? String(object.nextPageToken) : "" }; }, toJSON(message: ListViewsResponse): unknown { const obj: any = {}; if (message.views) { obj.views = message.views.map(e => e ? LogView.toJSON(e) : undefined); } else { obj.views = []; } message.nextPageToken !== undefined && (obj.nextPageToken = message.nextPageToken); return obj; }, fromPartial(object: Partial): ListViewsResponse { const message = createBaseListViewsResponse(); message.views = object.views?.map(e => LogView.fromPartial(e)) || []; message.nextPageToken = object.nextPageToken ?? ""; return message; } }; function createBaseCreateViewRequest(): CreateViewRequest { return { parent: "", viewId: "", view: undefined }; } export const CreateViewRequest = { encode(message: CreateViewRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.parent !== "") { writer.uint32(10).string(message.parent); } if (message.viewId !== "") { writer.uint32(18).string(message.viewId); } if (message.view !== undefined) { LogView.encode(message.view, writer.uint32(26).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): CreateViewRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseCreateViewRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.parent = reader.string(); break; case 2: message.viewId = reader.string(); break; case 3: message.view = LogView.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): CreateViewRequest { return { parent: isSet(object.parent) ? String(object.parent) : "", viewId: isSet(object.viewId) ? String(object.viewId) : "", view: isSet(object.view) ? LogView.fromJSON(object.view) : undefined }; }, toJSON(message: CreateViewRequest): unknown { const obj: any = {}; message.parent !== undefined && (obj.parent = message.parent); message.viewId !== undefined && (obj.viewId = message.viewId); message.view !== undefined && (obj.view = message.view ? LogView.toJSON(message.view) : undefined); return obj; }, fromPartial(object: Partial): CreateViewRequest { const message = createBaseCreateViewRequest(); message.parent = object.parent ?? ""; message.viewId = object.viewId ?? ""; message.view = object.view !== undefined && object.view !== null ? LogView.fromPartial(object.view) : undefined; return message; } }; function createBaseUpdateViewRequest(): UpdateViewRequest { return { name: "", view: undefined, updateMask: undefined }; } export const UpdateViewRequest = { encode(message: UpdateViewRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.name !== "") { writer.uint32(10).string(message.name); } if (message.view !== undefined) { LogView.encode(message.view, writer.uint32(18).fork()).ldelim(); } if (message.updateMask !== undefined) { FieldMask.encode(message.updateMask, writer.uint32(34).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): UpdateViewRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseUpdateViewRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.name = reader.string(); break; case 2: message.view = LogView.decode(reader, reader.uint32()); break; case 4: message.updateMask = FieldMask.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): UpdateViewRequest { return { name: isSet(object.name) ? String(object.name) : "", view: isSet(object.view) ? LogView.fromJSON(object.view) : undefined, updateMask: isSet(object.updateMask) ? FieldMask.fromJSON(object.updateMask) : undefined }; }, toJSON(message: UpdateViewRequest): unknown { const obj: any = {}; message.name !== undefined && (obj.name = message.name); message.view !== undefined && (obj.view = message.view ? LogView.toJSON(message.view) : undefined); message.updateMask !== undefined && (obj.updateMask = message.updateMask ? FieldMask.toJSON(message.updateMask) : undefined); return obj; }, fromPartial(object: Partial): UpdateViewRequest { const message = createBaseUpdateViewRequest(); message.name = object.name ?? ""; message.view = object.view !== undefined && object.view !== null ? LogView.fromPartial(object.view) : undefined; message.updateMask = object.updateMask !== undefined && object.updateMask !== null ? FieldMask.fromPartial(object.updateMask) : undefined; return message; } }; function createBaseGetViewRequest(): GetViewRequest { return { name: "" }; } export const GetViewRequest = { encode(message: GetViewRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.name !== "") { writer.uint32(10).string(message.name); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): GetViewRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetViewRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.name = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): GetViewRequest { return { name: isSet(object.name) ? String(object.name) : "" }; }, toJSON(message: GetViewRequest): unknown { const obj: any = {}; message.name !== undefined && (obj.name = message.name); return obj; }, fromPartial(object: Partial): GetViewRequest { const message = createBaseGetViewRequest(); message.name = object.name ?? ""; return message; } }; function createBaseDeleteViewRequest(): DeleteViewRequest { return { name: "" }; } export const DeleteViewRequest = { encode(message: DeleteViewRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.name !== "") { writer.uint32(10).string(message.name); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): DeleteViewRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseDeleteViewRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.name = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): DeleteViewRequest { return { name: isSet(object.name) ? String(object.name) : "" }; }, toJSON(message: DeleteViewRequest): unknown { const obj: any = {}; message.name !== undefined && (obj.name = message.name); return obj; }, fromPartial(object: Partial): DeleteViewRequest { const message = createBaseDeleteViewRequest(); message.name = object.name ?? ""; return message; } }; function createBaseListSinksRequest(): ListSinksRequest { return { parent: "", pageToken: "", pageSize: 0 }; } export const ListSinksRequest = { encode(message: ListSinksRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.parent !== "") { writer.uint32(10).string(message.parent); } if (message.pageToken !== "") { writer.uint32(18).string(message.pageToken); } if (message.pageSize !== 0) { writer.uint32(24).int32(message.pageSize); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): ListSinksRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseListSinksRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.parent = reader.string(); break; case 2: message.pageToken = reader.string(); break; case 3: message.pageSize = reader.int32(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): ListSinksRequest { return { parent: isSet(object.parent) ? String(object.parent) : "", pageToken: isSet(object.pageToken) ? String(object.pageToken) : "", pageSize: isSet(object.pageSize) ? Number(object.pageSize) : 0 }; }, toJSON(message: ListSinksRequest): unknown { const obj: any = {}; message.parent !== undefined && (obj.parent = message.parent); message.pageToken !== undefined && (obj.pageToken = message.pageToken); message.pageSize !== undefined && (obj.pageSize = Math.round(message.pageSize)); return obj; }, fromPartial(object: Partial): ListSinksRequest { const message = createBaseListSinksRequest(); message.parent = object.parent ?? ""; message.pageToken = object.pageToken ?? ""; message.pageSize = object.pageSize ?? 0; return message; } }; function createBaseListSinksResponse(): ListSinksResponse { return { sinks: [], nextPageToken: "" }; } export const ListSinksResponse = { encode(message: ListSinksResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { for (const v of message.sinks) { LogSink.encode(v!, writer.uint32(10).fork()).ldelim(); } if (message.nextPageToken !== "") { writer.uint32(18).string(message.nextPageToken); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): ListSinksResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseListSinksResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.sinks.push(LogSink.decode(reader, reader.uint32())); break; case 2: message.nextPageToken = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): ListSinksResponse { return { sinks: Array.isArray(object?.sinks) ? object.sinks.map((e: any) => LogSink.fromJSON(e)) : [], nextPageToken: isSet(object.nextPageToken) ? String(object.nextPageToken) : "" }; }, toJSON(message: ListSinksResponse): unknown { const obj: any = {}; if (message.sinks) { obj.sinks = message.sinks.map(e => e ? LogSink.toJSON(e) : undefined); } else { obj.sinks = []; } message.nextPageToken !== undefined && (obj.nextPageToken = message.nextPageToken); return obj; }, fromPartial(object: Partial): ListSinksResponse { const message = createBaseListSinksResponse(); message.sinks = object.sinks?.map(e => LogSink.fromPartial(e)) || []; message.nextPageToken = object.nextPageToken ?? ""; return message; } }; function createBaseGetSinkRequest(): GetSinkRequest { return { sinkName: "" }; } export const GetSinkRequest = { encode(message: GetSinkRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.sinkName !== "") { writer.uint32(10).string(message.sinkName); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): GetSinkRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetSinkRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.sinkName = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): GetSinkRequest { return { sinkName: isSet(object.sinkName) ? String(object.sinkName) : "" }; }, toJSON(message: GetSinkRequest): unknown { const obj: any = {}; message.sinkName !== undefined && (obj.sinkName = message.sinkName); return obj; }, fromPartial(object: Partial): GetSinkRequest { const message = createBaseGetSinkRequest(); message.sinkName = object.sinkName ?? ""; return message; } }; function createBaseCreateSinkRequest(): CreateSinkRequest { return { parent: "", sink: undefined, uniqueWriterIdentity: false }; } export const CreateSinkRequest = { encode(message: CreateSinkRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.parent !== "") { writer.uint32(10).string(message.parent); } if (message.sink !== undefined) { LogSink.encode(message.sink, writer.uint32(18).fork()).ldelim(); } if (message.uniqueWriterIdentity === true) { writer.uint32(24).bool(message.uniqueWriterIdentity); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): CreateSinkRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseCreateSinkRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.parent = reader.string(); break; case 2: message.sink = LogSink.decode(reader, reader.uint32()); break; case 3: message.uniqueWriterIdentity = reader.bool(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): CreateSinkRequest { return { parent: isSet(object.parent) ? String(object.parent) : "", sink: isSet(object.sink) ? LogSink.fromJSON(object.sink) : undefined, uniqueWriterIdentity: isSet(object.uniqueWriterIdentity) ? Boolean(object.uniqueWriterIdentity) : false }; }, toJSON(message: CreateSinkRequest): unknown { const obj: any = {}; message.parent !== undefined && (obj.parent = message.parent); message.sink !== undefined && (obj.sink = message.sink ? LogSink.toJSON(message.sink) : undefined); message.uniqueWriterIdentity !== undefined && (obj.uniqueWriterIdentity = message.uniqueWriterIdentity); return obj; }, fromPartial(object: Partial): CreateSinkRequest { const message = createBaseCreateSinkRequest(); message.parent = object.parent ?? ""; message.sink = object.sink !== undefined && object.sink !== null ? LogSink.fromPartial(object.sink) : undefined; message.uniqueWriterIdentity = object.uniqueWriterIdentity ?? false; return message; } }; function createBaseUpdateSinkRequest(): UpdateSinkRequest { return { sinkName: "", sink: undefined, uniqueWriterIdentity: false, updateMask: undefined }; } export const UpdateSinkRequest = { encode(message: UpdateSinkRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.sinkName !== "") { writer.uint32(10).string(message.sinkName); } if (message.sink !== undefined) { LogSink.encode(message.sink, writer.uint32(18).fork()).ldelim(); } if (message.uniqueWriterIdentity === true) { writer.uint32(24).bool(message.uniqueWriterIdentity); } if (message.updateMask !== undefined) { FieldMask.encode(message.updateMask, writer.uint32(34).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): UpdateSinkRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseUpdateSinkRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.sinkName = reader.string(); break; case 2: message.sink = LogSink.decode(reader, reader.uint32()); break; case 3: message.uniqueWriterIdentity = reader.bool(); break; case 4: message.updateMask = FieldMask.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): UpdateSinkRequest { return { sinkName: isSet(object.sinkName) ? String(object.sinkName) : "", sink: isSet(object.sink) ? LogSink.fromJSON(object.sink) : undefined, uniqueWriterIdentity: isSet(object.uniqueWriterIdentity) ? Boolean(object.uniqueWriterIdentity) : false, updateMask: isSet(object.updateMask) ? FieldMask.fromJSON(object.updateMask) : undefined }; }, toJSON(message: UpdateSinkRequest): unknown { const obj: any = {}; message.sinkName !== undefined && (obj.sinkName = message.sinkName); message.sink !== undefined && (obj.sink = message.sink ? LogSink.toJSON(message.sink) : undefined); message.uniqueWriterIdentity !== undefined && (obj.uniqueWriterIdentity = message.uniqueWriterIdentity); message.updateMask !== undefined && (obj.updateMask = message.updateMask ? FieldMask.toJSON(message.updateMask) : undefined); return obj; }, fromPartial(object: Partial): UpdateSinkRequest { const message = createBaseUpdateSinkRequest(); message.sinkName = object.sinkName ?? ""; message.sink = object.sink !== undefined && object.sink !== null ? LogSink.fromPartial(object.sink) : undefined; message.uniqueWriterIdentity = object.uniqueWriterIdentity ?? false; message.updateMask = object.updateMask !== undefined && object.updateMask !== null ? FieldMask.fromPartial(object.updateMask) : undefined; return message; } }; function createBaseDeleteSinkRequest(): DeleteSinkRequest { return { sinkName: "" }; } export const DeleteSinkRequest = { encode(message: DeleteSinkRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.sinkName !== "") { writer.uint32(10).string(message.sinkName); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): DeleteSinkRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseDeleteSinkRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.sinkName = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): DeleteSinkRequest { return { sinkName: isSet(object.sinkName) ? String(object.sinkName) : "" }; }, toJSON(message: DeleteSinkRequest): unknown { const obj: any = {}; message.sinkName !== undefined && (obj.sinkName = message.sinkName); return obj; }, fromPartial(object: Partial): DeleteSinkRequest { const message = createBaseDeleteSinkRequest(); message.sinkName = object.sinkName ?? ""; return message; } }; function createBaseLogExclusion(): LogExclusion { return { name: "", description: "", filter: "", disabled: false, createTime: undefined, updateTime: undefined }; } export const LogExclusion = { encode(message: LogExclusion, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.name !== "") { writer.uint32(10).string(message.name); } if (message.description !== "") { writer.uint32(18).string(message.description); } if (message.filter !== "") { writer.uint32(26).string(message.filter); } if (message.disabled === true) { writer.uint32(32).bool(message.disabled); } if (message.createTime !== undefined) { Timestamp.encode(message.createTime, writer.uint32(42).fork()).ldelim(); } if (message.updateTime !== undefined) { Timestamp.encode(message.updateTime, writer.uint32(50).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): LogExclusion { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseLogExclusion(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.name = reader.string(); break; case 2: message.description = reader.string(); break; case 3: message.filter = reader.string(); break; case 4: message.disabled = reader.bool(); break; case 5: message.createTime = Timestamp.decode(reader, reader.uint32()); break; case 6: message.updateTime = Timestamp.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): LogExclusion { return { name: isSet(object.name) ? String(object.name) : "", description: isSet(object.description) ? String(object.description) : "", filter: isSet(object.filter) ? String(object.filter) : "", disabled: isSet(object.disabled) ? Boolean(object.disabled) : false, createTime: isSet(object.createTime) ? fromJsonTimestamp(object.createTime) : undefined, updateTime: isSet(object.updateTime) ? fromJsonTimestamp(object.updateTime) : undefined }; }, toJSON(message: LogExclusion): unknown { const obj: any = {}; message.name !== undefined && (obj.name = message.name); message.description !== undefined && (obj.description = message.description); message.filter !== undefined && (obj.filter = message.filter); message.disabled !== undefined && (obj.disabled = message.disabled); message.createTime !== undefined && (obj.createTime = fromTimestamp(message.createTime).toISOString()); message.updateTime !== undefined && (obj.updateTime = fromTimestamp(message.updateTime).toISOString()); return obj; }, fromPartial(object: Partial): LogExclusion { const message = createBaseLogExclusion(); message.name = object.name ?? ""; message.description = object.description ?? ""; message.filter = object.filter ?? ""; message.disabled = object.disabled ?? false; message.createTime = object.createTime !== undefined && object.createTime !== null ? Timestamp.fromPartial(object.createTime) : undefined; message.updateTime = object.updateTime !== undefined && object.updateTime !== null ? Timestamp.fromPartial(object.updateTime) : undefined; return message; } }; function createBaseListExclusionsRequest(): ListExclusionsRequest { return { parent: "", pageToken: "", pageSize: 0 }; } export const ListExclusionsRequest = { encode(message: ListExclusionsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.parent !== "") { writer.uint32(10).string(message.parent); } if (message.pageToken !== "") { writer.uint32(18).string(message.pageToken); } if (message.pageSize !== 0) { writer.uint32(24).int32(message.pageSize); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): ListExclusionsRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseListExclusionsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.parent = reader.string(); break; case 2: message.pageToken = reader.string(); break; case 3: message.pageSize = reader.int32(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): ListExclusionsRequest { return { parent: isSet(object.parent) ? String(object.parent) : "", pageToken: isSet(object.pageToken) ? String(object.pageToken) : "", pageSize: isSet(object.pageSize) ? Number(object.pageSize) : 0 }; }, toJSON(message: ListExclusionsRequest): unknown { const obj: any = {}; message.parent !== undefined && (obj.parent = message.parent); message.pageToken !== undefined && (obj.pageToken = message.pageToken); message.pageSize !== undefined && (obj.pageSize = Math.round(message.pageSize)); return obj; }, fromPartial(object: Partial): ListExclusionsRequest { const message = createBaseListExclusionsRequest(); message.parent = object.parent ?? ""; message.pageToken = object.pageToken ?? ""; message.pageSize = object.pageSize ?? 0; return message; } }; function createBaseListExclusionsResponse(): ListExclusionsResponse { return { exclusions: [], nextPageToken: "" }; } export const ListExclusionsResponse = { encode(message: ListExclusionsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { for (const v of message.exclusions) { LogExclusion.encode(v!, writer.uint32(10).fork()).ldelim(); } if (message.nextPageToken !== "") { writer.uint32(18).string(message.nextPageToken); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): ListExclusionsResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseListExclusionsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.exclusions.push(LogExclusion.decode(reader, reader.uint32())); break; case 2: message.nextPageToken = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): ListExclusionsResponse { return { exclusions: Array.isArray(object?.exclusions) ? object.exclusions.map((e: any) => LogExclusion.fromJSON(e)) : [], nextPageToken: isSet(object.nextPageToken) ? String(object.nextPageToken) : "" }; }, toJSON(message: ListExclusionsResponse): unknown { const obj: any = {}; if (message.exclusions) { obj.exclusions = message.exclusions.map(e => e ? LogExclusion.toJSON(e) : undefined); } else { obj.exclusions = []; } message.nextPageToken !== undefined && (obj.nextPageToken = message.nextPageToken); return obj; }, fromPartial(object: Partial): ListExclusionsResponse { const message = createBaseListExclusionsResponse(); message.exclusions = object.exclusions?.map(e => LogExclusion.fromPartial(e)) || []; message.nextPageToken = object.nextPageToken ?? ""; return message; } }; function createBaseGetExclusionRequest(): GetExclusionRequest { return { name: "" }; } export const GetExclusionRequest = { encode(message: GetExclusionRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.name !== "") { writer.uint32(10).string(message.name); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): GetExclusionRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetExclusionRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.name = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): GetExclusionRequest { return { name: isSet(object.name) ? String(object.name) : "" }; }, toJSON(message: GetExclusionRequest): unknown { const obj: any = {}; message.name !== undefined && (obj.name = message.name); return obj; }, fromPartial(object: Partial): GetExclusionRequest { const message = createBaseGetExclusionRequest(); message.name = object.name ?? ""; return message; } }; function createBaseCreateExclusionRequest(): CreateExclusionRequest { return { parent: "", exclusion: undefined }; } export const CreateExclusionRequest = { encode(message: CreateExclusionRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.parent !== "") { writer.uint32(10).string(message.parent); } if (message.exclusion !== undefined) { LogExclusion.encode(message.exclusion, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): CreateExclusionRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseCreateExclusionRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.parent = reader.string(); break; case 2: message.exclusion = LogExclusion.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): CreateExclusionRequest { return { parent: isSet(object.parent) ? String(object.parent) : "", exclusion: isSet(object.exclusion) ? LogExclusion.fromJSON(object.exclusion) : undefined }; }, toJSON(message: CreateExclusionRequest): unknown { const obj: any = {}; message.parent !== undefined && (obj.parent = message.parent); message.exclusion !== undefined && (obj.exclusion = message.exclusion ? LogExclusion.toJSON(message.exclusion) : undefined); return obj; }, fromPartial(object: Partial): CreateExclusionRequest { const message = createBaseCreateExclusionRequest(); message.parent = object.parent ?? ""; message.exclusion = object.exclusion !== undefined && object.exclusion !== null ? LogExclusion.fromPartial(object.exclusion) : undefined; return message; } }; function createBaseUpdateExclusionRequest(): UpdateExclusionRequest { return { name: "", exclusion: undefined, updateMask: undefined }; } export const UpdateExclusionRequest = { encode(message: UpdateExclusionRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.name !== "") { writer.uint32(10).string(message.name); } if (message.exclusion !== undefined) { LogExclusion.encode(message.exclusion, writer.uint32(18).fork()).ldelim(); } if (message.updateMask !== undefined) { FieldMask.encode(message.updateMask, writer.uint32(26).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): UpdateExclusionRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseUpdateExclusionRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.name = reader.string(); break; case 2: message.exclusion = LogExclusion.decode(reader, reader.uint32()); break; case 3: message.updateMask = FieldMask.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): UpdateExclusionRequest { return { name: isSet(object.name) ? String(object.name) : "", exclusion: isSet(object.exclusion) ? LogExclusion.fromJSON(object.exclusion) : undefined, updateMask: isSet(object.updateMask) ? FieldMask.fromJSON(object.updateMask) : undefined }; }, toJSON(message: UpdateExclusionRequest): unknown { const obj: any = {}; message.name !== undefined && (obj.name = message.name); message.exclusion !== undefined && (obj.exclusion = message.exclusion ? LogExclusion.toJSON(message.exclusion) : undefined); message.updateMask !== undefined && (obj.updateMask = message.updateMask ? FieldMask.toJSON(message.updateMask) : undefined); return obj; }, fromPartial(object: Partial): UpdateExclusionRequest { const message = createBaseUpdateExclusionRequest(); message.name = object.name ?? ""; message.exclusion = object.exclusion !== undefined && object.exclusion !== null ? LogExclusion.fromPartial(object.exclusion) : undefined; message.updateMask = object.updateMask !== undefined && object.updateMask !== null ? FieldMask.fromPartial(object.updateMask) : undefined; return message; } }; function createBaseDeleteExclusionRequest(): DeleteExclusionRequest { return { name: "" }; } export const DeleteExclusionRequest = { encode(message: DeleteExclusionRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.name !== "") { writer.uint32(10).string(message.name); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): DeleteExclusionRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseDeleteExclusionRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.name = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): DeleteExclusionRequest { return { name: isSet(object.name) ? String(object.name) : "" }; }, toJSON(message: DeleteExclusionRequest): unknown { const obj: any = {}; message.name !== undefined && (obj.name = message.name); return obj; }, fromPartial(object: Partial): DeleteExclusionRequest { const message = createBaseDeleteExclusionRequest(); message.name = object.name ?? ""; return message; } }; function createBaseGetCmekSettingsRequest(): GetCmekSettingsRequest { return { name: "" }; } export const GetCmekSettingsRequest = { encode(message: GetCmekSettingsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.name !== "") { writer.uint32(10).string(message.name); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): GetCmekSettingsRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetCmekSettingsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.name = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): GetCmekSettingsRequest { return { name: isSet(object.name) ? String(object.name) : "" }; }, toJSON(message: GetCmekSettingsRequest): unknown { const obj: any = {}; message.name !== undefined && (obj.name = message.name); return obj; }, fromPartial(object: Partial): GetCmekSettingsRequest { const message = createBaseGetCmekSettingsRequest(); message.name = object.name ?? ""; return message; } }; function createBaseUpdateCmekSettingsRequest(): UpdateCmekSettingsRequest { return { name: "", cmekSettings: undefined, updateMask: undefined }; } export const UpdateCmekSettingsRequest = { encode(message: UpdateCmekSettingsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.name !== "") { writer.uint32(10).string(message.name); } if (message.cmekSettings !== undefined) { CmekSettings.encode(message.cmekSettings, writer.uint32(18).fork()).ldelim(); } if (message.updateMask !== undefined) { FieldMask.encode(message.updateMask, writer.uint32(26).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): UpdateCmekSettingsRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseUpdateCmekSettingsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.name = reader.string(); break; case 2: message.cmekSettings = CmekSettings.decode(reader, reader.uint32()); break; case 3: message.updateMask = FieldMask.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): UpdateCmekSettingsRequest { return { name: isSet(object.name) ? String(object.name) : "", cmekSettings: isSet(object.cmekSettings) ? CmekSettings.fromJSON(object.cmekSettings) : undefined, updateMask: isSet(object.updateMask) ? FieldMask.fromJSON(object.updateMask) : undefined }; }, toJSON(message: UpdateCmekSettingsRequest): unknown { const obj: any = {}; message.name !== undefined && (obj.name = message.name); message.cmekSettings !== undefined && (obj.cmekSettings = message.cmekSettings ? CmekSettings.toJSON(message.cmekSettings) : undefined); message.updateMask !== undefined && (obj.updateMask = message.updateMask ? FieldMask.toJSON(message.updateMask) : undefined); return obj; }, fromPartial(object: Partial): UpdateCmekSettingsRequest { const message = createBaseUpdateCmekSettingsRequest(); message.name = object.name ?? ""; message.cmekSettings = object.cmekSettings !== undefined && object.cmekSettings !== null ? CmekSettings.fromPartial(object.cmekSettings) : undefined; message.updateMask = object.updateMask !== undefined && object.updateMask !== null ? FieldMask.fromPartial(object.updateMask) : undefined; return message; } }; function createBaseCmekSettings(): CmekSettings { return { name: "", kmsKeyName: "", serviceAccountId: "" }; } export const CmekSettings = { encode(message: CmekSettings, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.name !== "") { writer.uint32(10).string(message.name); } if (message.kmsKeyName !== "") { writer.uint32(18).string(message.kmsKeyName); } if (message.serviceAccountId !== "") { writer.uint32(26).string(message.serviceAccountId); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): CmekSettings { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseCmekSettings(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.name = reader.string(); break; case 2: message.kmsKeyName = reader.string(); break; case 3: message.serviceAccountId = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): CmekSettings { return { name: isSet(object.name) ? String(object.name) : "", kmsKeyName: isSet(object.kmsKeyName) ? String(object.kmsKeyName) : "", serviceAccountId: isSet(object.serviceAccountId) ? String(object.serviceAccountId) : "" }; }, toJSON(message: CmekSettings): unknown { const obj: any = {}; message.name !== undefined && (obj.name = message.name); message.kmsKeyName !== undefined && (obj.kmsKeyName = message.kmsKeyName); message.serviceAccountId !== undefined && (obj.serviceAccountId = message.serviceAccountId); return obj; }, fromPartial(object: Partial): CmekSettings { const message = createBaseCmekSettings(); message.name = object.name ?? ""; message.kmsKeyName = object.kmsKeyName ?? ""; message.serviceAccountId = object.serviceAccountId ?? ""; return message; } }; function createBaseGetSettingsRequest(): GetSettingsRequest { return { name: "" }; } export const GetSettingsRequest = { encode(message: GetSettingsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.name !== "") { writer.uint32(10).string(message.name); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): GetSettingsRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetSettingsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.name = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): GetSettingsRequest { return { name: isSet(object.name) ? String(object.name) : "" }; }, toJSON(message: GetSettingsRequest): unknown { const obj: any = {}; message.name !== undefined && (obj.name = message.name); return obj; }, fromPartial(object: Partial): GetSettingsRequest { const message = createBaseGetSettingsRequest(); message.name = object.name ?? ""; return message; } }; function createBaseUpdateSettingsRequest(): UpdateSettingsRequest { return { name: "", settings: undefined, updateMask: undefined }; } export const UpdateSettingsRequest = { encode(message: UpdateSettingsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.name !== "") { writer.uint32(10).string(message.name); } if (message.settings !== undefined) { Settings.encode(message.settings, writer.uint32(18).fork()).ldelim(); } if (message.updateMask !== undefined) { FieldMask.encode(message.updateMask, writer.uint32(26).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): UpdateSettingsRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseUpdateSettingsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.name = reader.string(); break; case 2: message.settings = Settings.decode(reader, reader.uint32()); break; case 3: message.updateMask = FieldMask.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): UpdateSettingsRequest { return { name: isSet(object.name) ? String(object.name) : "", settings: isSet(object.settings) ? Settings.fromJSON(object.settings) : undefined, updateMask: isSet(object.updateMask) ? FieldMask.fromJSON(object.updateMask) : undefined }; }, toJSON(message: UpdateSettingsRequest): unknown { const obj: any = {}; message.name !== undefined && (obj.name = message.name); message.settings !== undefined && (obj.settings = message.settings ? Settings.toJSON(message.settings) : undefined); message.updateMask !== undefined && (obj.updateMask = message.updateMask ? FieldMask.toJSON(message.updateMask) : undefined); return obj; }, fromPartial(object: Partial): UpdateSettingsRequest { const message = createBaseUpdateSettingsRequest(); message.name = object.name ?? ""; message.settings = object.settings !== undefined && object.settings !== null ? Settings.fromPartial(object.settings) : undefined; message.updateMask = object.updateMask !== undefined && object.updateMask !== null ? FieldMask.fromPartial(object.updateMask) : undefined; return message; } }; function createBaseSettings(): Settings { return { name: "", kmsKeyName: "", kmsServiceAccountId: "", storageLocation: "", disableDefaultSink: false }; } export const Settings = { encode(message: Settings, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.name !== "") { writer.uint32(10).string(message.name); } if (message.kmsKeyName !== "") { writer.uint32(18).string(message.kmsKeyName); } if (message.kmsServiceAccountId !== "") { writer.uint32(26).string(message.kmsServiceAccountId); } if (message.storageLocation !== "") { writer.uint32(34).string(message.storageLocation); } if (message.disableDefaultSink === true) { writer.uint32(40).bool(message.disableDefaultSink); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): Settings { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseSettings(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.name = reader.string(); break; case 2: message.kmsKeyName = reader.string(); break; case 3: message.kmsServiceAccountId = reader.string(); break; case 4: message.storageLocation = reader.string(); break; case 5: message.disableDefaultSink = reader.bool(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): Settings { return { name: isSet(object.name) ? String(object.name) : "", kmsKeyName: isSet(object.kmsKeyName) ? String(object.kmsKeyName) : "", kmsServiceAccountId: isSet(object.kmsServiceAccountId) ? String(object.kmsServiceAccountId) : "", storageLocation: isSet(object.storageLocation) ? String(object.storageLocation) : "", disableDefaultSink: isSet(object.disableDefaultSink) ? Boolean(object.disableDefaultSink) : false }; }, toJSON(message: Settings): unknown { const obj: any = {}; message.name !== undefined && (obj.name = message.name); message.kmsKeyName !== undefined && (obj.kmsKeyName = message.kmsKeyName); message.kmsServiceAccountId !== undefined && (obj.kmsServiceAccountId = message.kmsServiceAccountId); message.storageLocation !== undefined && (obj.storageLocation = message.storageLocation); message.disableDefaultSink !== undefined && (obj.disableDefaultSink = message.disableDefaultSink); return obj; }, fromPartial(object: Partial): Settings { const message = createBaseSettings(); message.name = object.name ?? ""; message.kmsKeyName = object.kmsKeyName ?? ""; message.kmsServiceAccountId = object.kmsServiceAccountId ?? ""; message.storageLocation = object.storageLocation ?? ""; message.disableDefaultSink = object.disableDefaultSink ?? false; return message; } }; function createBaseCopyLogEntriesRequest(): CopyLogEntriesRequest { return { name: "", filter: "", destination: "" }; } export const CopyLogEntriesRequest = { encode(message: CopyLogEntriesRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.name !== "") { writer.uint32(10).string(message.name); } if (message.filter !== "") { writer.uint32(26).string(message.filter); } if (message.destination !== "") { writer.uint32(34).string(message.destination); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): CopyLogEntriesRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseCopyLogEntriesRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.name = reader.string(); break; case 3: message.filter = reader.string(); break; case 4: message.destination = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): CopyLogEntriesRequest { return { name: isSet(object.name) ? String(object.name) : "", filter: isSet(object.filter) ? String(object.filter) : "", destination: isSet(object.destination) ? String(object.destination) : "" }; }, toJSON(message: CopyLogEntriesRequest): unknown { const obj: any = {}; message.name !== undefined && (obj.name = message.name); message.filter !== undefined && (obj.filter = message.filter); message.destination !== undefined && (obj.destination = message.destination); return obj; }, fromPartial(object: Partial): CopyLogEntriesRequest { const message = createBaseCopyLogEntriesRequest(); message.name = object.name ?? ""; message.filter = object.filter ?? ""; message.destination = object.destination ?? ""; return message; } }; function createBaseCopyLogEntriesMetadata(): CopyLogEntriesMetadata { return { startTime: undefined, endTime: undefined, state: 0, cancellationRequested: false, request: undefined, progress: 0, writerIdentity: "" }; } export const CopyLogEntriesMetadata = { encode(message: CopyLogEntriesMetadata, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.startTime !== undefined) { Timestamp.encode(message.startTime, writer.uint32(10).fork()).ldelim(); } if (message.endTime !== undefined) { Timestamp.encode(message.endTime, writer.uint32(18).fork()).ldelim(); } if (message.state !== 0) { writer.uint32(24).int32(message.state); } if (message.cancellationRequested === true) { writer.uint32(32).bool(message.cancellationRequested); } if (message.request !== undefined) { CopyLogEntriesRequest.encode(message.request, writer.uint32(42).fork()).ldelim(); } if (message.progress !== 0) { writer.uint32(48).int32(message.progress); } if (message.writerIdentity !== "") { writer.uint32(58).string(message.writerIdentity); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): CopyLogEntriesMetadata { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseCopyLogEntriesMetadata(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.startTime = Timestamp.decode(reader, reader.uint32()); break; case 2: message.endTime = Timestamp.decode(reader, reader.uint32()); break; case 3: message.state = (reader.int32() as any); break; case 4: message.cancellationRequested = reader.bool(); break; case 5: message.request = CopyLogEntriesRequest.decode(reader, reader.uint32()); break; case 6: message.progress = reader.int32(); break; case 7: message.writerIdentity = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): CopyLogEntriesMetadata { return { startTime: isSet(object.startTime) ? fromJsonTimestamp(object.startTime) : undefined, endTime: isSet(object.endTime) ? fromJsonTimestamp(object.endTime) : undefined, state: isSet(object.state) ? operationStateFromJSON(object.state) : 0, cancellationRequested: isSet(object.cancellationRequested) ? Boolean(object.cancellationRequested) : false, request: isSet(object.request) ? CopyLogEntriesRequest.fromJSON(object.request) : undefined, progress: isSet(object.progress) ? Number(object.progress) : 0, writerIdentity: isSet(object.writerIdentity) ? String(object.writerIdentity) : "" }; }, toJSON(message: CopyLogEntriesMetadata): unknown { const obj: any = {}; message.startTime !== undefined && (obj.startTime = fromTimestamp(message.startTime).toISOString()); message.endTime !== undefined && (obj.endTime = fromTimestamp(message.endTime).toISOString()); message.state !== undefined && (obj.state = operationStateToJSON(message.state)); message.cancellationRequested !== undefined && (obj.cancellationRequested = message.cancellationRequested); message.request !== undefined && (obj.request = message.request ? CopyLogEntriesRequest.toJSON(message.request) : undefined); message.progress !== undefined && (obj.progress = Math.round(message.progress)); message.writerIdentity !== undefined && (obj.writerIdentity = message.writerIdentity); return obj; }, fromPartial(object: Partial): CopyLogEntriesMetadata { const message = createBaseCopyLogEntriesMetadata(); message.startTime = object.startTime !== undefined && object.startTime !== null ? Timestamp.fromPartial(object.startTime) : undefined; message.endTime = object.endTime !== undefined && object.endTime !== null ? Timestamp.fromPartial(object.endTime) : undefined; message.state = object.state ?? 0; message.cancellationRequested = object.cancellationRequested ?? false; message.request = object.request !== undefined && object.request !== null ? CopyLogEntriesRequest.fromPartial(object.request) : undefined; message.progress = object.progress ?? 0; message.writerIdentity = object.writerIdentity ?? ""; return message; } }; function createBaseCopyLogEntriesResponse(): CopyLogEntriesResponse { return { logEntriesCopiedCount: Long.ZERO }; } export const CopyLogEntriesResponse = { encode(message: CopyLogEntriesResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (!message.logEntriesCopiedCount.isZero()) { writer.uint32(8).int64(message.logEntriesCopiedCount); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): CopyLogEntriesResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseCopyLogEntriesResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.logEntriesCopiedCount = (reader.int64() as Long); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): CopyLogEntriesResponse { return { logEntriesCopiedCount: isSet(object.logEntriesCopiedCount) ? Long.fromValue(object.logEntriesCopiedCount) : Long.ZERO }; }, toJSON(message: CopyLogEntriesResponse): unknown { const obj: any = {}; message.logEntriesCopiedCount !== undefined && (obj.logEntriesCopiedCount = (message.logEntriesCopiedCount || Long.ZERO).toString()); return obj; }, fromPartial(object: Partial): CopyLogEntriesResponse { const message = createBaseCopyLogEntriesResponse(); message.logEntriesCopiedCount = object.logEntriesCopiedCount !== undefined && object.logEntriesCopiedCount !== null ? Long.fromValue(object.logEntriesCopiedCount) : Long.ZERO; return message; } };