1# -*- coding: utf-8 -*- 
    2# Copyright 2025 Google LLC 
    3# 
    4# Licensed under the Apache License, Version 2.0 (the "License"); 
    5# you may not use this file except in compliance with the License. 
    6# You may obtain a copy of the License at 
    7# 
    8#     http://www.apache.org/licenses/LICENSE-2.0 
    9# 
    10# Unless required by applicable law or agreed to in writing, software 
    11# distributed under the License is distributed on an "AS IS" BASIS, 
    12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
    13# See the License for the specific language governing permissions and 
    14# limitations under the License. 
    15# 
    16from __future__ import annotations 
    17 
    18from typing import MutableMapping, MutableSequence 
    19 
    20import proto  # type: ignore 
    21 
    22from google.protobuf import field_mask_pb2  # type: ignore 
    23from google.protobuf import timestamp_pb2  # type: ignore 
    24 
    25 
    26__protobuf__ = proto.module( 
    27    package="google.logging.v2", 
    28    manifest={ 
    29        "OperationState", 
    30        "LifecycleState", 
    31        "IndexType", 
    32        "IndexConfig", 
    33        "LogBucket", 
    34        "LogView", 
    35        "LogSink", 
    36        "BigQueryDataset", 
    37        "Link", 
    38        "BigQueryOptions", 
    39        "ListBucketsRequest", 
    40        "ListBucketsResponse", 
    41        "CreateBucketRequest", 
    42        "UpdateBucketRequest", 
    43        "GetBucketRequest", 
    44        "DeleteBucketRequest", 
    45        "UndeleteBucketRequest", 
    46        "ListViewsRequest", 
    47        "ListViewsResponse", 
    48        "CreateViewRequest", 
    49        "UpdateViewRequest", 
    50        "GetViewRequest", 
    51        "DeleteViewRequest", 
    52        "ListSinksRequest", 
    53        "ListSinksResponse", 
    54        "GetSinkRequest", 
    55        "CreateSinkRequest", 
    56        "UpdateSinkRequest", 
    57        "DeleteSinkRequest", 
    58        "CreateLinkRequest", 
    59        "DeleteLinkRequest", 
    60        "ListLinksRequest", 
    61        "ListLinksResponse", 
    62        "GetLinkRequest", 
    63        "LogExclusion", 
    64        "ListExclusionsRequest", 
    65        "ListExclusionsResponse", 
    66        "GetExclusionRequest", 
    67        "CreateExclusionRequest", 
    68        "UpdateExclusionRequest", 
    69        "DeleteExclusionRequest", 
    70        "GetCmekSettingsRequest", 
    71        "UpdateCmekSettingsRequest", 
    72        "CmekSettings", 
    73        "GetSettingsRequest", 
    74        "UpdateSettingsRequest", 
    75        "Settings", 
    76        "CopyLogEntriesRequest", 
    77        "CopyLogEntriesMetadata", 
    78        "CopyLogEntriesResponse", 
    79        "BucketMetadata", 
    80        "LinkMetadata", 
    81        "LocationMetadata", 
    82    }, 
    83) 
    84 
    85 
    86class OperationState(proto.Enum): 
    87    r"""List of different operation states. 
    88    High level state of the operation. This is used to report the 
    89    job's current state to the user. Once a long running operation 
    90    is created, the current state of the operation can be queried 
    91    even before the operation is finished and the final result is 
    92    available. 
    93 
    94    Values: 
    95        OPERATION_STATE_UNSPECIFIED (0): 
    96            Should not be used. 
    97        OPERATION_STATE_SCHEDULED (1): 
    98            The operation is scheduled. 
    99        OPERATION_STATE_WAITING_FOR_PERMISSIONS (2): 
    100            Waiting for necessary permissions. 
    101        OPERATION_STATE_RUNNING (3): 
    102            The operation is running. 
    103        OPERATION_STATE_SUCCEEDED (4): 
    104            The operation was completed successfully. 
    105        OPERATION_STATE_FAILED (5): 
    106            The operation failed. 
    107        OPERATION_STATE_CANCELLED (6): 
    108            The operation was cancelled by the user. 
    109    """ 
    110    OPERATION_STATE_UNSPECIFIED = 0 
    111    OPERATION_STATE_SCHEDULED = 1 
    112    OPERATION_STATE_WAITING_FOR_PERMISSIONS = 2 
    113    OPERATION_STATE_RUNNING = 3 
    114    OPERATION_STATE_SUCCEEDED = 4 
    115    OPERATION_STATE_FAILED = 5 
    116    OPERATION_STATE_CANCELLED = 6 
    117 
    118 
    119class LifecycleState(proto.Enum): 
    120    r"""LogBucket lifecycle states. 
    121 
    122    Values: 
    123        LIFECYCLE_STATE_UNSPECIFIED (0): 
    124            Unspecified state. This is only used/useful 
    125            for distinguishing unset values. 
    126        ACTIVE (1): 
    127            The normal and active state. 
    128        DELETE_REQUESTED (2): 
    129            The resource has been marked for deletion by 
    130            the user. For some resources (e.g. buckets), 
    131            this can be reversed by an un-delete operation. 
    132        UPDATING (3): 
    133            The resource has been marked for an update by 
    134            the user. It will remain in this state until the 
    135            update is complete. 
    136        CREATING (4): 
    137            The resource has been marked for creation by 
    138            the user. It will remain in this state until the 
    139            creation is complete. 
    140        FAILED (5): 
    141            The resource is in an INTERNAL error state. 
    142    """ 
    143    LIFECYCLE_STATE_UNSPECIFIED = 0 
    144    ACTIVE = 1 
    145    DELETE_REQUESTED = 2 
    146    UPDATING = 3 
    147    CREATING = 4 
    148    FAILED = 5 
    149 
    150 
    151class IndexType(proto.Enum): 
    152    r"""IndexType is used for custom indexing. It describes the type 
    153    of an indexed field. 
    154 
    155    Values: 
    156        INDEX_TYPE_UNSPECIFIED (0): 
    157            The index's type is unspecified. 
    158        INDEX_TYPE_STRING (1): 
    159            The index is a string-type index. 
    160        INDEX_TYPE_INTEGER (2): 
    161            The index is a integer-type index. 
    162    """ 
    163    INDEX_TYPE_UNSPECIFIED = 0 
    164    INDEX_TYPE_STRING = 1 
    165    INDEX_TYPE_INTEGER = 2 
    166 
    167 
    168class IndexConfig(proto.Message): 
    169    r"""Configuration for an indexed field. 
    170 
    171    Attributes: 
    172        field_path (str): 
    173            Required. The LogEntry field path to index. 
    174 
    175            Note that some paths are automatically indexed, and other 
    176            paths are not eligible for indexing. See `indexing 
    177            documentation <https://cloud.google.com/logging/docs/view/advanced-queries#indexed-fields>`__ 
    178            for details. 
    179 
    180            For example: ``jsonPayload.request.status`` 
    181        type_ (google.cloud.logging_v2.types.IndexType): 
    182            Required. The type of data in this index. 
    183        create_time (google.protobuf.timestamp_pb2.Timestamp): 
    184            Output only. The timestamp when the index was 
    185            last modified. 
    186            This is used to return the timestamp, and will 
    187            be ignored if supplied during update. 
    188    """ 
    189 
    190    field_path: str = proto.Field( 
    191        proto.STRING, 
    192        number=1, 
    193    ) 
    194    type_: "IndexType" = proto.Field( 
    195        proto.ENUM, 
    196        number=2, 
    197        enum="IndexType", 
    198    ) 
    199    create_time: timestamp_pb2.Timestamp = proto.Field( 
    200        proto.MESSAGE, 
    201        number=3, 
    202        message=timestamp_pb2.Timestamp, 
    203    ) 
    204 
    205 
    206class LogBucket(proto.Message): 
    207    r"""Describes a repository in which log entries are stored. 
    208 
    209    Attributes: 
    210        name (str): 
    211            Output only. The resource name of the bucket. 
    212 
    213            For example: 
    214 
    215            ``projects/my-project/locations/global/buckets/my-bucket`` 
    216 
    217            For a list of supported locations, see `Supported 
    218            Regions <https://cloud.google.com/logging/docs/region-support>`__ 
    219 
    220            For the location of ``global`` it is unspecified where log 
    221            entries are actually stored. 
    222 
    223            After a bucket has been created, the location cannot be 
    224            changed. 
    225        description (str): 
    226            Describes this bucket. 
    227        create_time (google.protobuf.timestamp_pb2.Timestamp): 
    228            Output only. The creation timestamp of the 
    229            bucket. This is not set for any of the default 
    230            buckets. 
    231        update_time (google.protobuf.timestamp_pb2.Timestamp): 
    232            Output only. The last update timestamp of the 
    233            bucket. 
    234        retention_days (int): 
    235            Logs will be retained by default for this 
    236            amount of time, after which they will 
    237            automatically be deleted. The minimum retention 
    238            period is 1 day. If this value is set to zero at 
    239            bucket creation time, the default time of 30 
    240            days will be used. 
    241        locked (bool): 
    242            Whether the bucket is locked. 
    243 
    244            The retention period on a locked bucket cannot 
    245            be changed. Locked buckets may only be deleted 
    246            if they are empty. 
    247        lifecycle_state (google.cloud.logging_v2.types.LifecycleState): 
    248            Output only. The bucket lifecycle state. 
    249        analytics_enabled (bool): 
    250            Whether log analytics is enabled for this 
    251            bucket. 
    252            Once enabled, log analytics features cannot be 
    253            disabled. 
    254        restricted_fields (MutableSequence[str]): 
    255            Log entry field paths that are denied access in this bucket. 
    256 
    257            The following fields and their children are eligible: 
    258            ``textPayload``, ``jsonPayload``, ``protoPayload``, 
    259            ``httpRequest``, ``labels``, ``sourceLocation``. 
    260 
    261            Restricting a repeated field will restrict all values. 
    262            Adding a parent will block all child fields. (e.g. 
    263            ``foo.bar`` will block ``foo.bar.baz``) 
    264        index_configs (MutableSequence[google.cloud.logging_v2.types.IndexConfig]): 
    265            A list of indexed fields and related 
    266            configuration data. 
    267        cmek_settings (google.cloud.logging_v2.types.CmekSettings): 
    268            The CMEK settings of the log bucket. If 
    269            present, new log entries written to this log 
    270            bucket are encrypted using the CMEK key provided 
    271            in this configuration. If a log bucket has CMEK 
    272            settings, the CMEK settings cannot be disabled 
    273            later by updating the log bucket. Changing the 
    274            KMS key is allowed. 
    275    """ 
    276 
    277    name: str = proto.Field( 
    278        proto.STRING, 
    279        number=1, 
    280    ) 
    281    description: str = proto.Field( 
    282        proto.STRING, 
    283        number=3, 
    284    ) 
    285    create_time: timestamp_pb2.Timestamp = proto.Field( 
    286        proto.MESSAGE, 
    287        number=4, 
    288        message=timestamp_pb2.Timestamp, 
    289    ) 
    290    update_time: timestamp_pb2.Timestamp = proto.Field( 
    291        proto.MESSAGE, 
    292        number=5, 
    293        message=timestamp_pb2.Timestamp, 
    294    ) 
    295    retention_days: int = proto.Field( 
    296        proto.INT32, 
    297        number=11, 
    298    ) 
    299    locked: bool = proto.Field( 
    300        proto.BOOL, 
    301        number=9, 
    302    ) 
    303    lifecycle_state: "LifecycleState" = proto.Field( 
    304        proto.ENUM, 
    305        number=12, 
    306        enum="LifecycleState", 
    307    ) 
    308    analytics_enabled: bool = proto.Field( 
    309        proto.BOOL, 
    310        number=14, 
    311    ) 
    312    restricted_fields: MutableSequence[str] = proto.RepeatedField( 
    313        proto.STRING, 
    314        number=15, 
    315    ) 
    316    index_configs: MutableSequence["IndexConfig"] = proto.RepeatedField( 
    317        proto.MESSAGE, 
    318        number=17, 
    319        message="IndexConfig", 
    320    ) 
    321    cmek_settings: "CmekSettings" = proto.Field( 
    322        proto.MESSAGE, 
    323        number=19, 
    324        message="CmekSettings", 
    325    ) 
    326 
    327 
    328class LogView(proto.Message): 
    329    r"""Describes a view over log entries in a bucket. 
    330 
    331    Attributes: 
    332        name (str): 
    333            The resource name of the view. 
    334 
    335            For example: 
    336 
    337            ``projects/my-project/locations/global/buckets/my-bucket/views/my-view`` 
    338        description (str): 
    339            Describes this view. 
    340        create_time (google.protobuf.timestamp_pb2.Timestamp): 
    341            Output only. The creation timestamp of the 
    342            view. 
    343        update_time (google.protobuf.timestamp_pb2.Timestamp): 
    344            Output only. The last update timestamp of the 
    345            view. 
    346        filter (str): 
    347            Filter that restricts which log entries in a bucket are 
    348            visible in this view. 
    349 
    350            Filters are restricted to be a logical AND of ==/!= of any 
    351            of the following: 
    352 
    353            -  originating project/folder/organization/billing account. 
    354            -  resource type 
    355            -  log id 
    356 
    357            For example: 
    358 
    359            SOURCE("projects/myproject") AND resource.type = 
    360            "gce_instance" AND LOG_ID("stdout") 
    361    """ 
    362 
    363    name: str = proto.Field( 
    364        proto.STRING, 
    365        number=1, 
    366    ) 
    367    description: str = proto.Field( 
    368        proto.STRING, 
    369        number=3, 
    370    ) 
    371    create_time: timestamp_pb2.Timestamp = proto.Field( 
    372        proto.MESSAGE, 
    373        number=4, 
    374        message=timestamp_pb2.Timestamp, 
    375    ) 
    376    update_time: timestamp_pb2.Timestamp = proto.Field( 
    377        proto.MESSAGE, 
    378        number=5, 
    379        message=timestamp_pb2.Timestamp, 
    380    ) 
    381    filter: str = proto.Field( 
    382        proto.STRING, 
    383        number=7, 
    384    ) 
    385 
    386 
    387class LogSink(proto.Message): 
    388    r"""Describes a sink used to export log entries to one of the 
    389    following destinations in any project: a Cloud Storage bucket, a 
    390    BigQuery dataset, a Pub/Sub topic or a Cloud Logging log bucket. 
    391    A logs filter controls which log entries are exported. The sink 
    392    must be created within a project, organization, billing account, 
    393    or folder. 
    394 
    395 
    396    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields 
    397 
    398    Attributes: 
    399        name (str): 
    400            Required. The client-assigned sink identifier, unique within 
    401            the project. 
    402 
    403            For example: ``"my-syslog-errors-to-pubsub"``. Sink 
    404            identifiers are limited to 100 characters and can include 
    405            only the following characters: upper and lower-case 
    406            alphanumeric characters, underscores, hyphens, and periods. 
    407            First character has to be alphanumeric. 
    408        destination (str): 
    409            Required. The export destination: 
    410 
    411            :: 
    412 
    413                "storage.googleapis.com/[GCS_BUCKET]" 
    414                "bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]" 
    415                "pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]" 
    416 
    417            The sink's ``writer_identity``, set when the sink is 
    418            created, must have permission to write to the destination or 
    419            else the log entries are not exported. For more information, 
    420            see `Exporting Logs with 
    421            Sinks <https://cloud.google.com/logging/docs/api/tasks/exporting-logs>`__. 
    422        filter (str): 
    423            Optional. An `advanced logs 
    424            filter <https://cloud.google.com/logging/docs/view/advanced-queries>`__. 
    425            The only exported log entries are those that are in the 
    426            resource owning the sink and that match the filter. 
    427 
    428            For example: 
    429 
    430            ``logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity>=ERROR`` 
    431        description (str): 
    432            Optional. A description of this sink. 
    433 
    434            The maximum length of the description is 8000 
    435            characters. 
    436        disabled (bool): 
    437            Optional. If set to true, then this sink is 
    438            disabled and it does not export any log entries. 
    439        exclusions (MutableSequence[google.cloud.logging_v2.types.LogExclusion]): 
    440            Optional. Log entries that match any of these exclusion 
    441            filters will not be exported. 
    442 
    443            If a log entry is matched by both ``filter`` and one of 
    444            ``exclusion_filters`` it will not be exported. 
    445        output_version_format (google.cloud.logging_v2.types.LogSink.VersionFormat): 
    446            Deprecated. This field is unused. 
    447        writer_identity (str): 
    448            Output only. An IAM identity—a service account or 
    449            group—under which Cloud Logging writes the exported log 
    450            entries to the sink's destination. This field is either set 
    451            by specifying ``custom_writer_identity`` or set 
    452            automatically by 
    453            [sinks.create][google.logging.v2.ConfigServiceV2.CreateSink] 
    454            and 
    455            [sinks.update][google.logging.v2.ConfigServiceV2.UpdateSink] 
    456            based on the value of ``unique_writer_identity`` in those 
    457            methods. 
    458 
    459            Until you grant this identity write-access to the 
    460            destination, log entry exports from this sink will fail. For 
    461            more information, see `Granting Access for a 
    462            Resource <https://cloud.google.com/iam/docs/granting-roles-to-service-accounts#granting_access_to_a_service_account_for_a_resource>`__. 
    463            Consult the destination service's documentation to determine 
    464            the appropriate IAM roles to assign to the identity. 
    465 
    466            Sinks that have a destination that is a log bucket in the 
    467            same project as the sink cannot have a writer_identity and 
    468            no additional permissions are required. 
    469        include_children (bool): 
    470            Optional. This field applies only to sinks owned by 
    471            organizations and folders. If the field is false, the 
    472            default, only the logs owned by the sink's parent resource 
    473            are available for export. If the field is true, then log 
    474            entries from all the projects, folders, and billing accounts 
    475            contained in the sink's parent resource are also available 
    476            for export. Whether a particular log entry from the children 
    477            is exported depends on the sink's filter expression. 
    478 
    479            For example, if this field is true, then the filter 
    480            ``resource.type=gce_instance`` would export all Compute 
    481            Engine VM instance log entries from all projects in the 
    482            sink's parent. 
    483 
    484            To only export entries from certain child projects, filter 
    485            on the project part of the log name: 
    486 
    487            logName:("projects/test-project1/" OR 
    488            "projects/test-project2/") AND resource.type=gce_instance 
    489        bigquery_options (google.cloud.logging_v2.types.BigQueryOptions): 
    490            Optional. Options that affect sinks exporting 
    491            data to BigQuery. 
    492 
    493            This field is a member of `oneof`_ ``options``. 
    494        create_time (google.protobuf.timestamp_pb2.Timestamp): 
    495            Output only. The creation timestamp of the 
    496            sink. 
    497            This field may not be present for older sinks. 
    498        update_time (google.protobuf.timestamp_pb2.Timestamp): 
    499            Output only. The last update timestamp of the 
    500            sink. 
    501            This field may not be present for older sinks. 
    502    """ 
    503 
    504    class VersionFormat(proto.Enum): 
    505        r"""Deprecated. This is unused. 
    506 
    507        Values: 
    508            VERSION_FORMAT_UNSPECIFIED (0): 
    509                An unspecified format version that will 
    510                default to V2. 
    511            V2 (1): 
    512                ``LogEntry`` version 2 format. 
    513            V1 (2): 
    514                ``LogEntry`` version 1 format. 
    515        """ 
    516        VERSION_FORMAT_UNSPECIFIED = 0 
    517        V2 = 1 
    518        V1 = 2 
    519 
    520    name: str = proto.Field( 
    521        proto.STRING, 
    522        number=1, 
    523    ) 
    524    destination: str = proto.Field( 
    525        proto.STRING, 
    526        number=3, 
    527    ) 
    528    filter: str = proto.Field( 
    529        proto.STRING, 
    530        number=5, 
    531    ) 
    532    description: str = proto.Field( 
    533        proto.STRING, 
    534        number=18, 
    535    ) 
    536    disabled: bool = proto.Field( 
    537        proto.BOOL, 
    538        number=19, 
    539    ) 
    540    exclusions: MutableSequence["LogExclusion"] = proto.RepeatedField( 
    541        proto.MESSAGE, 
    542        number=16, 
    543        message="LogExclusion", 
    544    ) 
    545    output_version_format: VersionFormat = proto.Field( 
    546        proto.ENUM, 
    547        number=6, 
    548        enum=VersionFormat, 
    549    ) 
    550    writer_identity: str = proto.Field( 
    551        proto.STRING, 
    552        number=8, 
    553    ) 
    554    include_children: bool = proto.Field( 
    555        proto.BOOL, 
    556        number=9, 
    557    ) 
    558    bigquery_options: "BigQueryOptions" = proto.Field( 
    559        proto.MESSAGE, 
    560        number=12, 
    561        oneof="options", 
    562        message="BigQueryOptions", 
    563    ) 
    564    create_time: timestamp_pb2.Timestamp = proto.Field( 
    565        proto.MESSAGE, 
    566        number=13, 
    567        message=timestamp_pb2.Timestamp, 
    568    ) 
    569    update_time: timestamp_pb2.Timestamp = proto.Field( 
    570        proto.MESSAGE, 
    571        number=14, 
    572        message=timestamp_pb2.Timestamp, 
    573    ) 
    574 
    575 
    576class BigQueryDataset(proto.Message): 
    577    r"""Describes a BigQuery dataset that was created by a link. 
    578 
    579    Attributes: 
    580        dataset_id (str): 
    581            Output only. The full resource name of the BigQuery dataset. 
    582            The DATASET_ID will match the ID of the link, so the link 
    583            must match the naming restrictions of BigQuery datasets 
    584            (alphanumeric characters and underscores only). 
    585 
    586            The dataset will have a resource path of 
    587            "bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET_ID]". 
    588    """ 
    589 
    590    dataset_id: str = proto.Field( 
    591        proto.STRING, 
    592        number=1, 
    593    ) 
    594 
    595 
    596class Link(proto.Message): 
    597    r"""Describes a link connected to an analytics enabled bucket. 
    598 
    599    Attributes: 
    600        name (str): 
    601            The resource name of the link. The name can have up to 100 
    602            characters. A valid link id (at the end of the link name) 
    603            must only have alphanumeric characters and underscores 
    604            within it. 
    605 
    606            :: 
    607 
    608                "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/links/[LINK_ID]" 
    609                "organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/links/[LINK_ID]" 
    610                "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/links/[LINK_ID]" 
    611                "folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/links/[LINK_ID]" 
    612 
    613            For example: 
    614 
    615            \`projects/my-project/locations/global/buckets/my-bucket/links/my_link 
    616        description (str): 
    617            Describes this link. 
    618 
    619            The maximum length of the description is 8000 
    620            characters. 
    621        create_time (google.protobuf.timestamp_pb2.Timestamp): 
    622            Output only. The creation timestamp of the 
    623            link. 
    624        lifecycle_state (google.cloud.logging_v2.types.LifecycleState): 
    625            Output only. The resource lifecycle state. 
    626        bigquery_dataset (google.cloud.logging_v2.types.BigQueryDataset): 
    627            The information of a BigQuery Dataset. When a 
    628            link is created, a BigQuery dataset is created 
    629            along with it, in the same project as the 
    630            LogBucket it's linked to. This dataset will also 
    631            have BigQuery Views corresponding to the 
    632            LogViews in the bucket. 
    633    """ 
    634 
    635    name: str = proto.Field( 
    636        proto.STRING, 
    637        number=1, 
    638    ) 
    639    description: str = proto.Field( 
    640        proto.STRING, 
    641        number=2, 
    642    ) 
    643    create_time: timestamp_pb2.Timestamp = proto.Field( 
    644        proto.MESSAGE, 
    645        number=3, 
    646        message=timestamp_pb2.Timestamp, 
    647    ) 
    648    lifecycle_state: "LifecycleState" = proto.Field( 
    649        proto.ENUM, 
    650        number=4, 
    651        enum="LifecycleState", 
    652    ) 
    653    bigquery_dataset: "BigQueryDataset" = proto.Field( 
    654        proto.MESSAGE, 
    655        number=5, 
    656        message="BigQueryDataset", 
    657    ) 
    658 
    659 
    660class BigQueryOptions(proto.Message): 
    661    r"""Options that change functionality of a sink exporting data to 
    662    BigQuery. 
    663 
    664    Attributes: 
    665        use_partitioned_tables (bool): 
    666            Optional. Whether to use `BigQuery's partition 
    667            tables <https://cloud.google.com/bigquery/docs/partitioned-tables>`__. 
    668            By default, Cloud Logging creates dated tables based on the 
    669            log entries' timestamps, e.g. syslog_20170523. With 
    670            partitioned tables the date suffix is no longer present and 
    671            `special query 
    672            syntax <https://cloud.google.com/bigquery/docs/querying-partitioned-tables>`__ 
    673            has to be used instead. In both cases, tables are sharded 
    674            based on UTC timezone. 
    675        uses_timestamp_column_partitioning (bool): 
    676            Output only. True if new timestamp column based partitioning 
    677            is in use, false if legacy ingestion-time partitioning is in 
    678            use. 
    679 
    680            All new sinks will have this field set true and will use 
    681            timestamp column based partitioning. If 
    682            use_partitioned_tables is false, this value has no meaning 
    683            and will be false. Legacy sinks using partitioned tables 
    684            will have this field set to false. 
    685    """ 
    686 
    687    use_partitioned_tables: bool = proto.Field( 
    688        proto.BOOL, 
    689        number=1, 
    690    ) 
    691    uses_timestamp_column_partitioning: bool = proto.Field( 
    692        proto.BOOL, 
    693        number=3, 
    694    ) 
    695 
    696 
    697class ListBucketsRequest(proto.Message): 
    698    r"""The parameters to ``ListBuckets``. 
    699 
    700    Attributes: 
    701        parent (str): 
    702            Required. The parent resource whose buckets are to be 
    703            listed: 
    704 
    705            :: 
    706 
    707                "projects/[PROJECT_ID]/locations/[LOCATION_ID]" 
    708                "organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]" 
    709                "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]" 
    710                "folders/[FOLDER_ID]/locations/[LOCATION_ID]" 
    711 
    712            Note: The locations portion of the resource must be 
    713            specified, but supplying the character ``-`` in place of 
    714            [LOCATION_ID] will return all buckets. 
    715        page_token (str): 
    716            Optional. If present, then retrieve the next batch of 
    717            results from the preceding call to this method. 
    718            ``pageToken`` must be the value of ``nextPageToken`` from 
    719            the previous response. The values of other method parameters 
    720            should be identical to those in the previous call. 
    721        page_size (int): 
    722            Optional. The maximum number of results to return from this 
    723            request. Non-positive values are ignored. The presence of 
    724            ``nextPageToken`` in the response indicates that more 
    725            results might be available. 
    726    """ 
    727 
    728    parent: str = proto.Field( 
    729        proto.STRING, 
    730        number=1, 
    731    ) 
    732    page_token: str = proto.Field( 
    733        proto.STRING, 
    734        number=2, 
    735    ) 
    736    page_size: int = proto.Field( 
    737        proto.INT32, 
    738        number=3, 
    739    ) 
    740 
    741 
    742class ListBucketsResponse(proto.Message): 
    743    r"""The response from ListBuckets. 
    744 
    745    Attributes: 
    746        buckets (MutableSequence[google.cloud.logging_v2.types.LogBucket]): 
    747            A list of buckets. 
    748        next_page_token (str): 
    749            If there might be more results than appear in this response, 
    750            then ``nextPageToken`` is included. To get the next set of 
    751            results, call the same method again using the value of 
    752            ``nextPageToken`` as ``pageToken``. 
    753    """ 
    754 
    755    @property 
    756    def raw_page(self): 
    757        return self 
    758 
    759    buckets: MutableSequence["LogBucket"] = proto.RepeatedField( 
    760        proto.MESSAGE, 
    761        number=1, 
    762        message="LogBucket", 
    763    ) 
    764    next_page_token: str = proto.Field( 
    765        proto.STRING, 
    766        number=2, 
    767    ) 
    768 
    769 
    770class CreateBucketRequest(proto.Message): 
    771    r"""The parameters to ``CreateBucket``. 
    772 
    773    Attributes: 
    774        parent (str): 
    775            Required. The resource in which to create the log bucket: 
    776 
    777            :: 
    778 
    779                "projects/[PROJECT_ID]/locations/[LOCATION_ID]" 
    780 
    781            For example: 
    782 
    783            ``"projects/my-project/locations/global"`` 
    784        bucket_id (str): 
    785            Required. A client-assigned identifier such as 
    786            ``"my-bucket"``. Identifiers are limited to 100 characters 
    787            and can include only letters, digits, underscores, hyphens, 
    788            and periods. 
    789        bucket (google.cloud.logging_v2.types.LogBucket): 
    790            Required. The new bucket. The region 
    791            specified in the new bucket must be compliant 
    792            with any Location Restriction Org Policy. The 
    793            name field in the bucket is ignored. 
    794    """ 
    795 
    796    parent: str = proto.Field( 
    797        proto.STRING, 
    798        number=1, 
    799    ) 
    800    bucket_id: str = proto.Field( 
    801        proto.STRING, 
    802        number=2, 
    803    ) 
    804    bucket: "LogBucket" = proto.Field( 
    805        proto.MESSAGE, 
    806        number=3, 
    807        message="LogBucket", 
    808    ) 
    809 
    810 
    811class UpdateBucketRequest(proto.Message): 
    812    r"""The parameters to ``UpdateBucket``. 
    813 
    814    Attributes: 
    815        name (str): 
    816            Required. The full resource name of the bucket to update. 
    817 
    818            :: 
    819 
    820                "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" 
    821                "organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" 
    822                "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" 
    823                "folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" 
    824 
    825            For example: 
    826 
    827            ``"projects/my-project/locations/global/buckets/my-bucket"`` 
    828        bucket (google.cloud.logging_v2.types.LogBucket): 
    829            Required. The updated bucket. 
    830        update_mask (google.protobuf.field_mask_pb2.FieldMask): 
    831            Required. Field mask that specifies the fields in ``bucket`` 
    832            that need an update. A bucket field will be overwritten if, 
    833            and only if, it is in the update mask. ``name`` and output 
    834            only fields cannot be updated. 
    835 
    836            For a detailed ``FieldMask`` definition, see: 
    837            https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.FieldMask 
    838 
    839            For example: ``updateMask=retention_days`` 
    840    """ 
    841 
    842    name: str = proto.Field( 
    843        proto.STRING, 
    844        number=1, 
    845    ) 
    846    bucket: "LogBucket" = proto.Field( 
    847        proto.MESSAGE, 
    848        number=2, 
    849        message="LogBucket", 
    850    ) 
    851    update_mask: field_mask_pb2.FieldMask = proto.Field( 
    852        proto.MESSAGE, 
    853        number=4, 
    854        message=field_mask_pb2.FieldMask, 
    855    ) 
    856 
    857 
    858class GetBucketRequest(proto.Message): 
    859    r"""The parameters to ``GetBucket``. 
    860 
    861    Attributes: 
    862        name (str): 
    863            Required. The resource name of the bucket: 
    864 
    865            :: 
    866 
    867                "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" 
    868                "organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" 
    869                "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" 
    870                "folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" 
    871 
    872            For example: 
    873 
    874            ``"projects/my-project/locations/global/buckets/my-bucket"`` 
    875    """ 
    876 
    877    name: str = proto.Field( 
    878        proto.STRING, 
    879        number=1, 
    880    ) 
    881 
    882 
    883class DeleteBucketRequest(proto.Message): 
    884    r"""The parameters to ``DeleteBucket``. 
    885 
    886    Attributes: 
    887        name (str): 
    888            Required. The full resource name of the bucket to delete. 
    889 
    890            :: 
    891 
    892                "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" 
    893                "organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" 
    894                "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" 
    895                "folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" 
    896 
    897            For example: 
    898 
    899            ``"projects/my-project/locations/global/buckets/my-bucket"`` 
    900    """ 
    901 
    902    name: str = proto.Field( 
    903        proto.STRING, 
    904        number=1, 
    905    ) 
    906 
    907 
    908class UndeleteBucketRequest(proto.Message): 
    909    r"""The parameters to ``UndeleteBucket``. 
    910 
    911    Attributes: 
    912        name (str): 
    913            Required. The full resource name of the bucket to undelete. 
    914 
    915            :: 
    916 
    917                "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" 
    918                "organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" 
    919                "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" 
    920                "folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" 
    921 
    922            For example: 
    923 
    924            ``"projects/my-project/locations/global/buckets/my-bucket"`` 
    925    """ 
    926 
    927    name: str = proto.Field( 
    928        proto.STRING, 
    929        number=1, 
    930    ) 
    931 
    932 
    933class ListViewsRequest(proto.Message): 
    934    r"""The parameters to ``ListViews``. 
    935 
    936    Attributes: 
    937        parent (str): 
    938            Required. The bucket whose views are to be listed: 
    939 
    940            :: 
    941 
    942                "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]". 
    943        page_token (str): 
    944            Optional. If present, then retrieve the next batch of 
    945            results from the preceding call to this method. 
    946            ``pageToken`` must be the value of ``nextPageToken`` from 
    947            the previous response. The values of other method parameters 
    948            should be identical to those in the previous call. 
    949        page_size (int): 
    950            Optional. The maximum number of results to return from this 
    951            request. 
    952 
    953            Non-positive values are ignored. The presence of 
    954            ``nextPageToken`` in the response indicates that more 
    955            results might be available. 
    956    """ 
    957 
    958    parent: str = proto.Field( 
    959        proto.STRING, 
    960        number=1, 
    961    ) 
    962    page_token: str = proto.Field( 
    963        proto.STRING, 
    964        number=2, 
    965    ) 
    966    page_size: int = proto.Field( 
    967        proto.INT32, 
    968        number=3, 
    969    ) 
    970 
    971 
    972class ListViewsResponse(proto.Message): 
    973    r"""The response from ListViews. 
    974 
    975    Attributes: 
    976        views (MutableSequence[google.cloud.logging_v2.types.LogView]): 
    977            A list of views. 
    978        next_page_token (str): 
    979            If there might be more results than appear in this response, 
    980            then ``nextPageToken`` is included. To get the next set of 
    981            results, call the same method again using the value of 
    982            ``nextPageToken`` as ``pageToken``. 
    983    """ 
    984 
    985    @property 
    986    def raw_page(self): 
    987        return self 
    988 
    989    views: MutableSequence["LogView"] = proto.RepeatedField( 
    990        proto.MESSAGE, 
    991        number=1, 
    992        message="LogView", 
    993    ) 
    994    next_page_token: str = proto.Field( 
    995        proto.STRING, 
    996        number=2, 
    997    ) 
    998 
    999 
    1000class CreateViewRequest(proto.Message): 
    1001    r"""The parameters to ``CreateView``. 
    1002 
    1003    Attributes: 
    1004        parent (str): 
    1005            Required. The bucket in which to create the view 
    1006 
    1007            :: 
    1008 
    1009                `"projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"` 
    1010 
    1011            For example: 
    1012 
    1013            ``"projects/my-project/locations/global/buckets/my-bucket"`` 
    1014        view_id (str): 
    1015            Required. A client-assigned identifier such as 
    1016            ``"my-view"``. Identifiers are limited to 100 characters and 
    1017            can include only letters, digits, underscores, hyphens, and 
    1018            periods. 
    1019        view (google.cloud.logging_v2.types.LogView): 
    1020            Required. The new view. 
    1021    """ 
    1022 
    1023    parent: str = proto.Field( 
    1024        proto.STRING, 
    1025        number=1, 
    1026    ) 
    1027    view_id: str = proto.Field( 
    1028        proto.STRING, 
    1029        number=2, 
    1030    ) 
    1031    view: "LogView" = proto.Field( 
    1032        proto.MESSAGE, 
    1033        number=3, 
    1034        message="LogView", 
    1035    ) 
    1036 
    1037 
    1038class UpdateViewRequest(proto.Message): 
    1039    r"""The parameters to ``UpdateView``. 
    1040 
    1041    Attributes: 
    1042        name (str): 
    1043            Required. The full resource name of the view to update 
    1044 
    1045            :: 
    1046 
    1047                "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]" 
    1048 
    1049            For example: 
    1050 
    1051            ``"projects/my-project/locations/global/buckets/my-bucket/views/my-view"`` 
    1052        view (google.cloud.logging_v2.types.LogView): 
    1053            Required. The updated view. 
    1054        update_mask (google.protobuf.field_mask_pb2.FieldMask): 
    1055            Optional. Field mask that specifies the fields in ``view`` 
    1056            that need an update. A field will be overwritten if, and 
    1057            only if, it is in the update mask. ``name`` and output only 
    1058            fields cannot be updated. 
    1059 
    1060            For a detailed ``FieldMask`` definition, see 
    1061            https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.FieldMask 
    1062 
    1063            For example: ``updateMask=filter`` 
    1064    """ 
    1065 
    1066    name: str = proto.Field( 
    1067        proto.STRING, 
    1068        number=1, 
    1069    ) 
    1070    view: "LogView" = proto.Field( 
    1071        proto.MESSAGE, 
    1072        number=2, 
    1073        message="LogView", 
    1074    ) 
    1075    update_mask: field_mask_pb2.FieldMask = proto.Field( 
    1076        proto.MESSAGE, 
    1077        number=4, 
    1078        message=field_mask_pb2.FieldMask, 
    1079    ) 
    1080 
    1081 
    1082class GetViewRequest(proto.Message): 
    1083    r"""The parameters to ``GetView``. 
    1084 
    1085    Attributes: 
    1086        name (str): 
    1087            Required. The resource name of the policy: 
    1088 
    1089            :: 
    1090 
    1091                "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]" 
    1092 
    1093            For example: 
    1094 
    1095            ``"projects/my-project/locations/global/buckets/my-bucket/views/my-view"`` 
    1096    """ 
    1097 
    1098    name: str = proto.Field( 
    1099        proto.STRING, 
    1100        number=1, 
    1101    ) 
    1102 
    1103 
    1104class DeleteViewRequest(proto.Message): 
    1105    r"""The parameters to ``DeleteView``. 
    1106 
    1107    Attributes: 
    1108        name (str): 
    1109            Required. The full resource name of the view to delete: 
    1110 
    1111            :: 
    1112 
    1113                "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]" 
    1114 
    1115            For example: 
    1116 
    1117            :: 
    1118 
    1119               `"projects/my-project/locations/global/buckets/my-bucket/views/my-view"` 
    1120    """ 
    1121 
    1122    name: str = proto.Field( 
    1123        proto.STRING, 
    1124        number=1, 
    1125    ) 
    1126 
    1127 
    1128class ListSinksRequest(proto.Message): 
    1129    r"""The parameters to ``ListSinks``. 
    1130 
    1131    Attributes: 
    1132        parent (str): 
    1133            Required. The parent resource whose sinks are to be listed: 
    1134 
    1135            :: 
    1136 
    1137                "projects/[PROJECT_ID]" 
    1138                "organizations/[ORGANIZATION_ID]" 
    1139                "billingAccounts/[BILLING_ACCOUNT_ID]" 
    1140                "folders/[FOLDER_ID]". 
    1141        page_token (str): 
    1142            Optional. If present, then retrieve the next batch of 
    1143            results from the preceding call to this method. 
    1144            ``pageToken`` must be the value of ``nextPageToken`` from 
    1145            the previous response. The values of other method parameters 
    1146            should be identical to those in the previous call. 
    1147        page_size (int): 
    1148            Optional. The maximum number of results to return from this 
    1149            request. Non-positive values are ignored. The presence of 
    1150            ``nextPageToken`` in the response indicates that more 
    1151            results might be available. 
    1152    """ 
    1153 
    1154    parent: str = proto.Field( 
    1155        proto.STRING, 
    1156        number=1, 
    1157    ) 
    1158    page_token: str = proto.Field( 
    1159        proto.STRING, 
    1160        number=2, 
    1161    ) 
    1162    page_size: int = proto.Field( 
    1163        proto.INT32, 
    1164        number=3, 
    1165    ) 
    1166 
    1167 
    1168class ListSinksResponse(proto.Message): 
    1169    r"""Result returned from ``ListSinks``. 
    1170 
    1171    Attributes: 
    1172        sinks (MutableSequence[google.cloud.logging_v2.types.LogSink]): 
    1173            A list of sinks. 
    1174        next_page_token (str): 
    1175            If there might be more results than appear in this response, 
    1176            then ``nextPageToken`` is included. To get the next set of 
    1177            results, call the same method again using the value of 
    1178            ``nextPageToken`` as ``pageToken``. 
    1179    """ 
    1180 
    1181    @property 
    1182    def raw_page(self): 
    1183        return self 
    1184 
    1185    sinks: MutableSequence["LogSink"] = proto.RepeatedField( 
    1186        proto.MESSAGE, 
    1187        number=1, 
    1188        message="LogSink", 
    1189    ) 
    1190    next_page_token: str = proto.Field( 
    1191        proto.STRING, 
    1192        number=2, 
    1193    ) 
    1194 
    1195 
    1196class GetSinkRequest(proto.Message): 
    1197    r"""The parameters to ``GetSink``. 
    1198 
    1199    Attributes: 
    1200        sink_name (str): 
    1201            Required. The resource name of the sink: 
    1202 
    1203            :: 
    1204 
    1205                "projects/[PROJECT_ID]/sinks/[SINK_ID]" 
    1206                "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]" 
    1207                "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]" 
    1208                "folders/[FOLDER_ID]/sinks/[SINK_ID]" 
    1209 
    1210            For example: 
    1211 
    1212            ``"projects/my-project/sinks/my-sink"`` 
    1213    """ 
    1214 
    1215    sink_name: str = proto.Field( 
    1216        proto.STRING, 
    1217        number=1, 
    1218    ) 
    1219 
    1220 
    1221class CreateSinkRequest(proto.Message): 
    1222    r"""The parameters to ``CreateSink``. 
    1223 
    1224    Attributes: 
    1225        parent (str): 
    1226            Required. The resource in which to create the sink: 
    1227 
    1228            :: 
    1229 
    1230                "projects/[PROJECT_ID]" 
    1231                "organizations/[ORGANIZATION_ID]" 
    1232                "billingAccounts/[BILLING_ACCOUNT_ID]" 
    1233                "folders/[FOLDER_ID]" 
    1234 
    1235            For examples: 
    1236 
    1237            ``"projects/my-project"`` ``"organizations/123456789"`` 
    1238        sink (google.cloud.logging_v2.types.LogSink): 
    1239            Required. The new sink, whose ``name`` parameter is a sink 
    1240            identifier that is not already in use. 
    1241        unique_writer_identity (bool): 
    1242            Optional. Determines the kind of IAM identity returned as 
    1243            ``writer_identity`` in the new sink. If this value is 
    1244            omitted or set to false, and if the sink's parent is a 
    1245            project, then the value returned as ``writer_identity`` is 
    1246            the same group or service account used by Cloud Logging 
    1247            before the addition of writer identities to this API. The 
    1248            sink's destination must be in the same project as the sink 
    1249            itself. 
    1250 
    1251            If this field is set to true, or if the sink is owned by a 
    1252            non-project resource such as an organization, then the value 
    1253            of ``writer_identity`` will be a unique service account used 
    1254            only for exports from the new sink. For more information, 
    1255            see ``writer_identity`` in 
    1256            [LogSink][google.logging.v2.LogSink]. 
    1257    """ 
    1258 
    1259    parent: str = proto.Field( 
    1260        proto.STRING, 
    1261        number=1, 
    1262    ) 
    1263    sink: "LogSink" = proto.Field( 
    1264        proto.MESSAGE, 
    1265        number=2, 
    1266        message="LogSink", 
    1267    ) 
    1268    unique_writer_identity: bool = proto.Field( 
    1269        proto.BOOL, 
    1270        number=3, 
    1271    ) 
    1272 
    1273 
    1274class UpdateSinkRequest(proto.Message): 
    1275    r"""The parameters to ``UpdateSink``. 
    1276 
    1277    Attributes: 
    1278        sink_name (str): 
    1279            Required. The full resource name of the sink to update, 
    1280            including the parent resource and the sink identifier: 
    1281 
    1282            :: 
    1283 
    1284                "projects/[PROJECT_ID]/sinks/[SINK_ID]" 
    1285                "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]" 
    1286                "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]" 
    1287                "folders/[FOLDER_ID]/sinks/[SINK_ID]" 
    1288 
    1289            For example: 
    1290 
    1291            ``"projects/my-project/sinks/my-sink"`` 
    1292        sink (google.cloud.logging_v2.types.LogSink): 
    1293            Required. The updated sink, whose name is the same 
    1294            identifier that appears as part of ``sink_name``. 
    1295        unique_writer_identity (bool): 
    1296            Optional. See 
    1297            [sinks.create][google.logging.v2.ConfigServiceV2.CreateSink] 
    1298            for a description of this field. When updating a sink, the 
    1299            effect of this field on the value of ``writer_identity`` in 
    1300            the updated sink depends on both the old and new values of 
    1301            this field: 
    1302 
    1303            -  If the old and new values of this field are both false or 
    1304               both true, then there is no change to the sink's 
    1305               ``writer_identity``. 
    1306            -  If the old value is false and the new value is true, then 
    1307               ``writer_identity`` is changed to a unique service 
    1308               account. 
    1309            -  It is an error if the old value is true and the new value 
    1310               is set to false or defaulted to false. 
    1311        update_mask (google.protobuf.field_mask_pb2.FieldMask): 
    1312            Optional. Field mask that specifies the fields in ``sink`` 
    1313            that need an update. A sink field will be overwritten if, 
    1314            and only if, it is in the update mask. ``name`` and output 
    1315            only fields cannot be updated. 
    1316 
    1317            An empty ``updateMask`` is temporarily treated as using the 
    1318            following mask for backwards compatibility purposes: 
    1319 
    1320            ``destination,filter,includeChildren`` 
    1321 
    1322            At some point in the future, behavior will be removed and 
    1323            specifying an empty ``updateMask`` will be an error. 
    1324 
    1325            For a detailed ``FieldMask`` definition, see 
    1326            https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.FieldMask 
    1327 
    1328            For example: ``updateMask=filter`` 
    1329    """ 
    1330 
    1331    sink_name: str = proto.Field( 
    1332        proto.STRING, 
    1333        number=1, 
    1334    ) 
    1335    sink: "LogSink" = proto.Field( 
    1336        proto.MESSAGE, 
    1337        number=2, 
    1338        message="LogSink", 
    1339    ) 
    1340    unique_writer_identity: bool = proto.Field( 
    1341        proto.BOOL, 
    1342        number=3, 
    1343    ) 
    1344    update_mask: field_mask_pb2.FieldMask = proto.Field( 
    1345        proto.MESSAGE, 
    1346        number=4, 
    1347        message=field_mask_pb2.FieldMask, 
    1348    ) 
    1349 
    1350 
    1351class DeleteSinkRequest(proto.Message): 
    1352    r"""The parameters to ``DeleteSink``. 
    1353 
    1354    Attributes: 
    1355        sink_name (str): 
    1356            Required. The full resource name of the sink to delete, 
    1357            including the parent resource and the sink identifier: 
    1358 
    1359            :: 
    1360 
    1361                "projects/[PROJECT_ID]/sinks/[SINK_ID]" 
    1362                "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]" 
    1363                "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]" 
    1364                "folders/[FOLDER_ID]/sinks/[SINK_ID]" 
    1365 
    1366            For example: 
    1367 
    1368            ``"projects/my-project/sinks/my-sink"`` 
    1369    """ 
    1370 
    1371    sink_name: str = proto.Field( 
    1372        proto.STRING, 
    1373        number=1, 
    1374    ) 
    1375 
    1376 
    1377class CreateLinkRequest(proto.Message): 
    1378    r"""The parameters to CreateLink. 
    1379 
    1380    Attributes: 
    1381        parent (str): 
    1382            Required. The full resource name of the bucket to create a 
    1383            link for. 
    1384 
    1385            :: 
    1386 
    1387                "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" 
    1388                "organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" 
    1389                "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" 
    1390                "folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]". 
    1391        link (google.cloud.logging_v2.types.Link): 
    1392            Required. The new link. 
    1393        link_id (str): 
    1394            Required. The ID to use for the link. The link_id can have 
    1395            up to 100 characters. A valid link_id must only have 
    1396            alphanumeric characters and underscores within it. 
    1397    """ 
    1398 
    1399    parent: str = proto.Field( 
    1400        proto.STRING, 
    1401        number=1, 
    1402    ) 
    1403    link: "Link" = proto.Field( 
    1404        proto.MESSAGE, 
    1405        number=2, 
    1406        message="Link", 
    1407    ) 
    1408    link_id: str = proto.Field( 
    1409        proto.STRING, 
    1410        number=3, 
    1411    ) 
    1412 
    1413 
    1414class DeleteLinkRequest(proto.Message): 
    1415    r"""The parameters to DeleteLink. 
    1416 
    1417    Attributes: 
    1418        name (str): 
    1419            Required. The full resource name of the link to delete. 
    1420 
    1421            "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/links/[LINK_ID]" 
    1422            "organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/links/[LINK_ID]" 
    1423            "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/links/[LINK_ID]" 
    1424            "folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/links/[LINK_ID]". 
    1425    """ 
    1426 
    1427    name: str = proto.Field( 
    1428        proto.STRING, 
    1429        number=1, 
    1430    ) 
    1431 
    1432 
    1433class ListLinksRequest(proto.Message): 
    1434    r"""The parameters to ListLinks. 
    1435 
    1436    Attributes: 
    1437        parent (str): 
    1438            Required. The parent resource whose links are to be listed: 
    1439 
    1440            "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/links/" 
    1441            "organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/" 
    1442            "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/" 
    1443            "folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/ 
    1444        page_token (str): 
    1445            Optional. If present, then retrieve the next batch of 
    1446            results from the preceding call to this method. 
    1447            ``pageToken`` must be the value of ``nextPageToken`` from 
    1448            the previous response. 
    1449        page_size (int): 
    1450            Optional. The maximum number of results to 
    1451            return from this request. 
    1452    """ 
    1453 
    1454    parent: str = proto.Field( 
    1455        proto.STRING, 
    1456        number=1, 
    1457    ) 
    1458    page_token: str = proto.Field( 
    1459        proto.STRING, 
    1460        number=2, 
    1461    ) 
    1462    page_size: int = proto.Field( 
    1463        proto.INT32, 
    1464        number=3, 
    1465    ) 
    1466 
    1467 
    1468class ListLinksResponse(proto.Message): 
    1469    r"""The response from ListLinks. 
    1470 
    1471    Attributes: 
    1472        links (MutableSequence[google.cloud.logging_v2.types.Link]): 
    1473            A list of links. 
    1474        next_page_token (str): 
    1475            If there might be more results than those appearing in this 
    1476            response, then ``nextPageToken`` is included. To get the 
    1477            next set of results, call the same method again using the 
    1478            value of ``nextPageToken`` as ``pageToken``. 
    1479    """ 
    1480 
    1481    @property 
    1482    def raw_page(self): 
    1483        return self 
    1484 
    1485    links: MutableSequence["Link"] = proto.RepeatedField( 
    1486        proto.MESSAGE, 
    1487        number=1, 
    1488        message="Link", 
    1489    ) 
    1490    next_page_token: str = proto.Field( 
    1491        proto.STRING, 
    1492        number=2, 
    1493    ) 
    1494 
    1495 
    1496class GetLinkRequest(proto.Message): 
    1497    r"""The parameters to GetLink. 
    1498 
    1499    Attributes: 
    1500        name (str): 
    1501            Required. The resource name of the link: 
    1502 
    1503            "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/links/[LINK_ID]" 
    1504            "organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/links/[LINK_ID]" 
    1505            "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/links/[LINK_ID]" 
    1506            "folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/links/[LINK_ID] 
    1507    """ 
    1508 
    1509    name: str = proto.Field( 
    1510        proto.STRING, 
    1511        number=1, 
    1512    ) 
    1513 
    1514 
    1515class LogExclusion(proto.Message): 
    1516    r"""Specifies a set of log entries that are filtered out by a sink. If 
    1517    your Google Cloud resource receives a large volume of log entries, 
    1518    you can use exclusions to reduce your chargeable logs. Note that 
    1519    exclusions on organization-level and folder-level sinks don't apply 
    1520    to child resources. Note also that you cannot modify the \_Required 
    1521    sink or exclude logs from it. 
    1522 
    1523    Attributes: 
    1524        name (str): 
    1525            Required. A client-assigned identifier, such as 
    1526            ``"load-balancer-exclusion"``. Identifiers are limited to 
    1527            100 characters and can include only letters, digits, 
    1528            underscores, hyphens, and periods. First character has to be 
    1529            alphanumeric. 
    1530        description (str): 
    1531            Optional. A description of this exclusion. 
    1532        filter (str): 
    1533            Required. An `advanced logs 
    1534            filter <https://cloud.google.com/logging/docs/view/advanced-queries>`__ 
    1535            that matches the log entries to be excluded. By using the 
    1536            `sample 
    1537            function <https://cloud.google.com/logging/docs/view/advanced-queries#sample>`__, 
    1538            you can exclude less than 100% of the matching log entries. 
    1539 
    1540            For example, the following query matches 99% of low-severity 
    1541            log entries from Google Cloud Storage buckets: 
    1542 
    1543            ``resource.type=gcs_bucket severity<ERROR sample(insertId, 0.99)`` 
    1544        disabled (bool): 
    1545            Optional. If set to True, then this exclusion is disabled 
    1546            and it does not exclude any log entries. You can [update an 
    1547            exclusion][google.logging.v2.ConfigServiceV2.UpdateExclusion] 
    1548            to change the value of this field. 
    1549        create_time (google.protobuf.timestamp_pb2.Timestamp): 
    1550            Output only. The creation timestamp of the 
    1551            exclusion. 
    1552            This field may not be present for older 
    1553            exclusions. 
    1554        update_time (google.protobuf.timestamp_pb2.Timestamp): 
    1555            Output only. The last update timestamp of the 
    1556            exclusion. 
    1557            This field may not be present for older 
    1558            exclusions. 
    1559    """ 
    1560 
    1561    name: str = proto.Field( 
    1562        proto.STRING, 
    1563        number=1, 
    1564    ) 
    1565    description: str = proto.Field( 
    1566        proto.STRING, 
    1567        number=2, 
    1568    ) 
    1569    filter: str = proto.Field( 
    1570        proto.STRING, 
    1571        number=3, 
    1572    ) 
    1573    disabled: bool = proto.Field( 
    1574        proto.BOOL, 
    1575        number=4, 
    1576    ) 
    1577    create_time: timestamp_pb2.Timestamp = proto.Field( 
    1578        proto.MESSAGE, 
    1579        number=5, 
    1580        message=timestamp_pb2.Timestamp, 
    1581    ) 
    1582    update_time: timestamp_pb2.Timestamp = proto.Field( 
    1583        proto.MESSAGE, 
    1584        number=6, 
    1585        message=timestamp_pb2.Timestamp, 
    1586    ) 
    1587 
    1588 
    1589class ListExclusionsRequest(proto.Message): 
    1590    r"""The parameters to ``ListExclusions``. 
    1591 
    1592    Attributes: 
    1593        parent (str): 
    1594            Required. The parent resource whose exclusions are to be 
    1595            listed. 
    1596 
    1597            :: 
    1598 
    1599                "projects/[PROJECT_ID]" 
    1600                "organizations/[ORGANIZATION_ID]" 
    1601                "billingAccounts/[BILLING_ACCOUNT_ID]" 
    1602                "folders/[FOLDER_ID]". 
    1603        page_token (str): 
    1604            Optional. If present, then retrieve the next batch of 
    1605            results from the preceding call to this method. 
    1606            ``pageToken`` must be the value of ``nextPageToken`` from 
    1607            the previous response. The values of other method parameters 
    1608            should be identical to those in the previous call. 
    1609        page_size (int): 
    1610            Optional. The maximum number of results to return from this 
    1611            request. Non-positive values are ignored. The presence of 
    1612            ``nextPageToken`` in the response indicates that more 
    1613            results might be available. 
    1614    """ 
    1615 
    1616    parent: str = proto.Field( 
    1617        proto.STRING, 
    1618        number=1, 
    1619    ) 
    1620    page_token: str = proto.Field( 
    1621        proto.STRING, 
    1622        number=2, 
    1623    ) 
    1624    page_size: int = proto.Field( 
    1625        proto.INT32, 
    1626        number=3, 
    1627    ) 
    1628 
    1629 
    1630class ListExclusionsResponse(proto.Message): 
    1631    r"""Result returned from ``ListExclusions``. 
    1632 
    1633    Attributes: 
    1634        exclusions (MutableSequence[google.cloud.logging_v2.types.LogExclusion]): 
    1635            A list of exclusions. 
    1636        next_page_token (str): 
    1637            If there might be more results than appear in this response, 
    1638            then ``nextPageToken`` is included. To get the next set of 
    1639            results, call the same method again using the value of 
    1640            ``nextPageToken`` as ``pageToken``. 
    1641    """ 
    1642 
    1643    @property 
    1644    def raw_page(self): 
    1645        return self 
    1646 
    1647    exclusions: MutableSequence["LogExclusion"] = proto.RepeatedField( 
    1648        proto.MESSAGE, 
    1649        number=1, 
    1650        message="LogExclusion", 
    1651    ) 
    1652    next_page_token: str = proto.Field( 
    1653        proto.STRING, 
    1654        number=2, 
    1655    ) 
    1656 
    1657 
    1658class GetExclusionRequest(proto.Message): 
    1659    r"""The parameters to ``GetExclusion``. 
    1660 
    1661    Attributes: 
    1662        name (str): 
    1663            Required. The resource name of an existing exclusion: 
    1664 
    1665            :: 
    1666 
    1667                "projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]" 
    1668                "organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]" 
    1669                "billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID]" 
    1670                "folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]" 
    1671 
    1672            For example: 
    1673 
    1674            ``"projects/my-project/exclusions/my-exclusion"`` 
    1675    """ 
    1676 
    1677    name: str = proto.Field( 
    1678        proto.STRING, 
    1679        number=1, 
    1680    ) 
    1681 
    1682 
    1683class CreateExclusionRequest(proto.Message): 
    1684    r"""The parameters to ``CreateExclusion``. 
    1685 
    1686    Attributes: 
    1687        parent (str): 
    1688            Required. The parent resource in which to create the 
    1689            exclusion: 
    1690 
    1691            :: 
    1692 
    1693                "projects/[PROJECT_ID]" 
    1694                "organizations/[ORGANIZATION_ID]" 
    1695                "billingAccounts/[BILLING_ACCOUNT_ID]" 
    1696                "folders/[FOLDER_ID]" 
    1697 
    1698            For examples: 
    1699 
    1700            ``"projects/my-logging-project"`` 
    1701            ``"organizations/123456789"`` 
    1702        exclusion (google.cloud.logging_v2.types.LogExclusion): 
    1703            Required. The new exclusion, whose ``name`` parameter is an 
    1704            exclusion name that is not already used in the parent 
    1705            resource. 
    1706    """ 
    1707 
    1708    parent: str = proto.Field( 
    1709        proto.STRING, 
    1710        number=1, 
    1711    ) 
    1712    exclusion: "LogExclusion" = proto.Field( 
    1713        proto.MESSAGE, 
    1714        number=2, 
    1715        message="LogExclusion", 
    1716    ) 
    1717 
    1718 
    1719class UpdateExclusionRequest(proto.Message): 
    1720    r"""The parameters to ``UpdateExclusion``. 
    1721 
    1722    Attributes: 
    1723        name (str): 
    1724            Required. The resource name of the exclusion to update: 
    1725 
    1726            :: 
    1727 
    1728                "projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]" 
    1729                "organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]" 
    1730                "billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID]" 
    1731                "folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]" 
    1732 
    1733            For example: 
    1734 
    1735            ``"projects/my-project/exclusions/my-exclusion"`` 
    1736        exclusion (google.cloud.logging_v2.types.LogExclusion): 
    1737            Required. New values for the existing exclusion. Only the 
    1738            fields specified in ``update_mask`` are relevant. 
    1739        update_mask (google.protobuf.field_mask_pb2.FieldMask): 
    1740            Required. A non-empty list of fields to change in the 
    1741            existing exclusion. New values for the fields are taken from 
    1742            the corresponding fields in the 
    1743            [LogExclusion][google.logging.v2.LogExclusion] included in 
    1744            this request. Fields not mentioned in ``update_mask`` are 
    1745            not changed and are ignored in the request. 
    1746 
    1747            For example, to change the filter and description of an 
    1748            exclusion, specify an ``update_mask`` of 
    1749            ``"filter,description"``. 
    1750    """ 
    1751 
    1752    name: str = proto.Field( 
    1753        proto.STRING, 
    1754        number=1, 
    1755    ) 
    1756    exclusion: "LogExclusion" = proto.Field( 
    1757        proto.MESSAGE, 
    1758        number=2, 
    1759        message="LogExclusion", 
    1760    ) 
    1761    update_mask: field_mask_pb2.FieldMask = proto.Field( 
    1762        proto.MESSAGE, 
    1763        number=3, 
    1764        message=field_mask_pb2.FieldMask, 
    1765    ) 
    1766 
    1767 
    1768class DeleteExclusionRequest(proto.Message): 
    1769    r"""The parameters to ``DeleteExclusion``. 
    1770 
    1771    Attributes: 
    1772        name (str): 
    1773            Required. The resource name of an existing exclusion to 
    1774            delete: 
    1775 
    1776            :: 
    1777 
    1778                "projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]" 
    1779                "organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]" 
    1780                "billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID]" 
    1781                "folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]" 
    1782 
    1783            For example: 
    1784 
    1785            ``"projects/my-project/exclusions/my-exclusion"`` 
    1786    """ 
    1787 
    1788    name: str = proto.Field( 
    1789        proto.STRING, 
    1790        number=1, 
    1791    ) 
    1792 
    1793 
    1794class GetCmekSettingsRequest(proto.Message): 
    1795    r"""The parameters to 
    1796    [GetCmekSettings][google.logging.v2.ConfigServiceV2.GetCmekSettings]. 
    1797 
    1798    See `Enabling CMEK for Log 
    1799    Router <https://cloud.google.com/logging/docs/routing/managed-encryption>`__ 
    1800    for more information. 
    1801 
    1802    Attributes: 
    1803        name (str): 
    1804            Required. The resource for which to retrieve CMEK settings. 
    1805 
    1806            :: 
    1807 
    1808                "projects/[PROJECT_ID]/cmekSettings" 
    1809                "organizations/[ORGANIZATION_ID]/cmekSettings" 
    1810                "billingAccounts/[BILLING_ACCOUNT_ID]/cmekSettings" 
    1811                "folders/[FOLDER_ID]/cmekSettings" 
    1812 
    1813            For example: 
    1814 
    1815            ``"organizations/12345/cmekSettings"`` 
    1816 
    1817            Note: CMEK for the Log Router can be configured for Google 
    1818            Cloud projects, folders, organizations and billing accounts. 
    1819            Once configured for an organization, it applies to all 
    1820            projects and folders in the Google Cloud organization. 
    1821    """ 
    1822 
    1823    name: str = proto.Field( 
    1824        proto.STRING, 
    1825        number=1, 
    1826    ) 
    1827 
    1828 
    1829class UpdateCmekSettingsRequest(proto.Message): 
    1830    r"""The parameters to 
    1831    [UpdateCmekSettings][google.logging.v2.ConfigServiceV2.UpdateCmekSettings]. 
    1832 
    1833    See `Enabling CMEK for Log 
    1834    Router <https://cloud.google.com/logging/docs/routing/managed-encryption>`__ 
    1835    for more information. 
    1836 
    1837    Attributes: 
    1838        name (str): 
    1839            Required. The resource name for the CMEK settings to update. 
    1840 
    1841            :: 
    1842 
    1843                "projects/[PROJECT_ID]/cmekSettings" 
    1844                "organizations/[ORGANIZATION_ID]/cmekSettings" 
    1845                "billingAccounts/[BILLING_ACCOUNT_ID]/cmekSettings" 
    1846                "folders/[FOLDER_ID]/cmekSettings" 
    1847 
    1848            For example: 
    1849 
    1850            ``"organizations/12345/cmekSettings"`` 
    1851 
    1852            Note: CMEK for the Log Router can currently only be 
    1853            configured for Google Cloud organizations. Once configured, 
    1854            it applies to all projects and folders in the Google Cloud 
    1855            organization. 
    1856        cmek_settings (google.cloud.logging_v2.types.CmekSettings): 
    1857            Required. The CMEK settings to update. 
    1858 
    1859            See `Enabling CMEK for Log 
    1860            Router <https://cloud.google.com/logging/docs/routing/managed-encryption>`__ 
    1861            for more information. 
    1862        update_mask (google.protobuf.field_mask_pb2.FieldMask): 
    1863            Optional. Field mask identifying which fields from 
    1864            ``cmek_settings`` should be updated. A field will be 
    1865            overwritten if and only if it is in the update mask. Output 
    1866            only fields cannot be updated. 
    1867 
    1868            See [FieldMask][google.protobuf.FieldMask] for more 
    1869            information. 
    1870 
    1871            For example: ``"updateMask=kmsKeyName"`` 
    1872    """ 
    1873 
    1874    name: str = proto.Field( 
    1875        proto.STRING, 
    1876        number=1, 
    1877    ) 
    1878    cmek_settings: "CmekSettings" = proto.Field( 
    1879        proto.MESSAGE, 
    1880        number=2, 
    1881        message="CmekSettings", 
    1882    ) 
    1883    update_mask: field_mask_pb2.FieldMask = proto.Field( 
    1884        proto.MESSAGE, 
    1885        number=3, 
    1886        message=field_mask_pb2.FieldMask, 
    1887    ) 
    1888 
    1889 
    1890class CmekSettings(proto.Message): 
    1891    r"""Describes the customer-managed encryption key (CMEK) settings 
    1892    associated with a project, folder, organization, billing account, or 
    1893    flexible resource. 
    1894 
    1895    Note: CMEK for the Log Router can currently only be configured for 
    1896    Google Cloud organizations. Once configured, it applies to all 
    1897    projects and folders in the Google Cloud organization. 
    1898 
    1899    See `Enabling CMEK for Log 
    1900    Router <https://cloud.google.com/logging/docs/routing/managed-encryption>`__ 
    1901    for more information. 
    1902 
    1903    Attributes: 
    1904        name (str): 
    1905            Output only. The resource name of the CMEK 
    1906            settings. 
    1907        kms_key_name (str): 
    1908            The resource name for the configured Cloud KMS key. 
    1909 
    1910            KMS key name format: 
    1911 
    1912            :: 
    1913 
    1914                "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]" 
    1915 
    1916            For example: 
    1917 
    1918            ``"projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key"`` 
    1919 
    1920            To enable CMEK for the Log Router, set this field to a valid 
    1921            ``kms_key_name`` for which the associated service account 
    1922            has the required cloudkms.cryptoKeyEncrypterDecrypter roles 
    1923            assigned for the key. 
    1924 
    1925            The Cloud KMS key used by the Log Router can be updated by 
    1926            changing the ``kms_key_name`` to a new valid key name or 
    1927            disabled by setting the key name to an empty string. 
    1928            Encryption operations that are in progress will be completed 
    1929            with the key that was in use when they started. Decryption 
    1930            operations will be completed using the key that was used at 
    1931            the time of encryption unless access to that key has been 
    1932            revoked. 
    1933 
    1934            To disable CMEK for the Log Router, set this field to an 
    1935            empty string. 
    1936 
    1937            See `Enabling CMEK for Log 
    1938            Router <https://cloud.google.com/logging/docs/routing/managed-encryption>`__ 
    1939            for more information. 
    1940        kms_key_version_name (str): 
    1941            The CryptoKeyVersion resource name for the configured Cloud 
    1942            KMS key. 
    1943 
    1944            KMS key name format: 
    1945 
    1946            :: 
    1947 
    1948                "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]/cryptoKeyVersions/[VERSION]" 
    1949 
    1950            For example: 
    1951 
    1952            ``"projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key/cryptoKeyVersions/1"`` 
    1953 
    1954            This is a read-only field used to convey the specific 
    1955            configured CryptoKeyVersion of ``kms_key`` that has been 
    1956            configured. It will be populated in cases where the CMEK 
    1957            settings are bound to a single key version. 
    1958 
    1959            If this field is populated, the ``kms_key`` is tied to a 
    1960            specific CryptoKeyVersion. 
    1961        service_account_id (str): 
    1962            Output only. The service account that will be used by the 
    1963            Log Router to access your Cloud KMS key. 
    1964 
    1965            Before enabling CMEK for Log Router, you must first assign 
    1966            the cloudkms.cryptoKeyEncrypterDecrypter role to the service 
    1967            account that the Log Router will use to access your Cloud 
    1968            KMS key. Use 
    1969            [GetCmekSettings][google.logging.v2.ConfigServiceV2.GetCmekSettings] 
    1970            to obtain the service account ID. 
    1971 
    1972            See `Enabling CMEK for Log 
    1973            Router <https://cloud.google.com/logging/docs/routing/managed-encryption>`__ 
    1974            for more information. 
    1975    """ 
    1976 
    1977    name: str = proto.Field( 
    1978        proto.STRING, 
    1979        number=1, 
    1980    ) 
    1981    kms_key_name: str = proto.Field( 
    1982        proto.STRING, 
    1983        number=2, 
    1984    ) 
    1985    kms_key_version_name: str = proto.Field( 
    1986        proto.STRING, 
    1987        number=4, 
    1988    ) 
    1989    service_account_id: str = proto.Field( 
    1990        proto.STRING, 
    1991        number=3, 
    1992    ) 
    1993 
    1994 
    1995class GetSettingsRequest(proto.Message): 
    1996    r"""The parameters to 
    1997    [GetSettings][google.logging.v2.ConfigServiceV2.GetSettings]. 
    1998 
    1999    See `Enabling CMEK for Log 
    2000    Router <https://cloud.google.com/logging/docs/routing/managed-encryption>`__ 
    2001    for more information. 
    2002 
    2003    Attributes: 
    2004        name (str): 
    2005            Required. The resource for which to retrieve settings. 
    2006 
    2007            :: 
    2008 
    2009                "projects/[PROJECT_ID]/settings" 
    2010                "organizations/[ORGANIZATION_ID]/settings" 
    2011                "billingAccounts/[BILLING_ACCOUNT_ID]/settings" 
    2012                "folders/[FOLDER_ID]/settings" 
    2013 
    2014            For example: 
    2015 
    2016            ``"organizations/12345/settings"`` 
    2017 
    2018            Note: Settings for the Log Router can be get for Google 
    2019            Cloud projects, folders, organizations and billing accounts. 
    2020            Currently it can only be configured for organizations. Once 
    2021            configured for an organization, it applies to all projects 
    2022            and folders in the Google Cloud organization. 
    2023    """ 
    2024 
    2025    name: str = proto.Field( 
    2026        proto.STRING, 
    2027        number=1, 
    2028    ) 
    2029 
    2030 
    2031class UpdateSettingsRequest(proto.Message): 
    2032    r"""The parameters to 
    2033    [UpdateSettings][google.logging.v2.ConfigServiceV2.UpdateSettings]. 
    2034 
    2035    See `Enabling CMEK for Log 
    2036    Router <https://cloud.google.com/logging/docs/routing/managed-encryption>`__ 
    2037    for more information. 
    2038 
    2039    Attributes: 
    2040        name (str): 
    2041            Required. The resource name for the settings to update. 
    2042 
    2043            :: 
    2044 
    2045                "organizations/[ORGANIZATION_ID]/settings" 
    2046 
    2047            For example: 
    2048 
    2049            ``"organizations/12345/settings"`` 
    2050 
    2051            Note: Settings for the Log Router can currently only be 
    2052            configured for Google Cloud organizations. Once configured, 
    2053            it applies to all projects and folders in the Google Cloud 
    2054            organization. 
    2055        settings (google.cloud.logging_v2.types.Settings): 
    2056            Required. The settings to update. 
    2057 
    2058            See `Enabling CMEK for Log 
    2059            Router <https://cloud.google.com/logging/docs/routing/managed-encryption>`__ 
    2060            for more information. 
    2061        update_mask (google.protobuf.field_mask_pb2.FieldMask): 
    2062            Optional. Field mask identifying which fields from 
    2063            ``settings`` should be updated. A field will be overwritten 
    2064            if and only if it is in the update mask. Output only fields 
    2065            cannot be updated. 
    2066 
    2067            See [FieldMask][google.protobuf.FieldMask] for more 
    2068            information. 
    2069 
    2070            For example: ``"updateMask=kmsKeyName"`` 
    2071    """ 
    2072 
    2073    name: str = proto.Field( 
    2074        proto.STRING, 
    2075        number=1, 
    2076    ) 
    2077    settings: "Settings" = proto.Field( 
    2078        proto.MESSAGE, 
    2079        number=2, 
    2080        message="Settings", 
    2081    ) 
    2082    update_mask: field_mask_pb2.FieldMask = proto.Field( 
    2083        proto.MESSAGE, 
    2084        number=3, 
    2085        message=field_mask_pb2.FieldMask, 
    2086    ) 
    2087 
    2088 
    2089class Settings(proto.Message): 
    2090    r"""Describes the settings associated with a project, folder, 
    2091    organization, billing account, or flexible resource. 
    2092 
    2093    Attributes: 
    2094        name (str): 
    2095            Output only. The resource name of the 
    2096            settings. 
    2097        kms_key_name (str): 
    2098            Optional. The resource name for the configured Cloud KMS 
    2099            key. 
    2100 
    2101            KMS key name format: 
    2102 
    2103            :: 
    2104 
    2105                "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]" 
    2106 
    2107            For example: 
    2108 
    2109            ``"projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key"`` 
    2110 
    2111            To enable CMEK for the Log Router, set this field to a valid 
    2112            ``kms_key_name`` for which the associated service account 
    2113            has the required 
    2114            ``roles/cloudkms.cryptoKeyEncrypterDecrypter`` role assigned 
    2115            for the key. 
    2116 
    2117            The Cloud KMS key used by the Log Router can be updated by 
    2118            changing the ``kms_key_name`` to a new valid key name. 
    2119            Encryption operations that are in progress will be completed 
    2120            with the key that was in use when they started. Decryption 
    2121            operations will be completed using the key that was used at 
    2122            the time of encryption unless access to that key has been 
    2123            revoked. 
    2124 
    2125            To disable CMEK for the Log Router, set this field to an 
    2126            empty string. 
    2127 
    2128            See `Enabling CMEK for Log 
    2129            Router <https://cloud.google.com/logging/docs/routing/managed-encryption>`__ 
    2130            for more information. 
    2131        kms_service_account_id (str): 
    2132            Output only. The service account that will be used by the 
    2133            Log Router to access your Cloud KMS key. 
    2134 
    2135            Before enabling CMEK for Log Router, you must first assign 
    2136            the role ``roles/cloudkms.cryptoKeyEncrypterDecrypter`` to 
    2137            the service account that the Log Router will use to access 
    2138            your Cloud KMS key. Use 
    2139            [GetSettings][google.logging.v2.ConfigServiceV2.GetSettings] 
    2140            to obtain the service account ID. 
    2141 
    2142            See `Enabling CMEK for Log 
    2143            Router <https://cloud.google.com/logging/docs/routing/managed-encryption>`__ 
    2144            for more information. 
    2145        storage_location (str): 
    2146            Optional. The Cloud region that will be used for \_Default 
    2147            and \_Required log buckets for newly created projects and 
    2148            folders. For example ``europe-west1``. This setting does not 
    2149            affect the location of custom log buckets. 
    2150        disable_default_sink (bool): 
    2151            Optional. If set to true, the \_Default sink in newly 
    2152            created projects and folders will created in a disabled 
    2153            state. This can be used to automatically disable log 
    2154            ingestion if there is already an aggregated sink configured 
    2155            in the hierarchy. The \_Default sink can be re-enabled 
    2156            manually if needed. 
    2157    """ 
    2158 
    2159    name: str = proto.Field( 
    2160        proto.STRING, 
    2161        number=1, 
    2162    ) 
    2163    kms_key_name: str = proto.Field( 
    2164        proto.STRING, 
    2165        number=2, 
    2166    ) 
    2167    kms_service_account_id: str = proto.Field( 
    2168        proto.STRING, 
    2169        number=3, 
    2170    ) 
    2171    storage_location: str = proto.Field( 
    2172        proto.STRING, 
    2173        number=4, 
    2174    ) 
    2175    disable_default_sink: bool = proto.Field( 
    2176        proto.BOOL, 
    2177        number=5, 
    2178    ) 
    2179 
    2180 
    2181class CopyLogEntriesRequest(proto.Message): 
    2182    r"""The parameters to CopyLogEntries. 
    2183 
    2184    Attributes: 
    2185        name (str): 
    2186            Required. Log bucket from which to copy log entries. 
    2187 
    2188            For example: 
    2189 
    2190            ``"projects/my-project/locations/global/buckets/my-source-bucket"`` 
    2191        filter (str): 
    2192            Optional. A filter specifying which log 
    2193            entries to copy. The filter must be no more than 
    2194            20k characters. An empty filter matches all log 
    2195            entries. 
    2196        destination (str): 
    2197            Required. Destination to which to copy log 
    2198            entries. 
    2199    """ 
    2200 
    2201    name: str = proto.Field( 
    2202        proto.STRING, 
    2203        number=1, 
    2204    ) 
    2205    filter: str = proto.Field( 
    2206        proto.STRING, 
    2207        number=3, 
    2208    ) 
    2209    destination: str = proto.Field( 
    2210        proto.STRING, 
    2211        number=4, 
    2212    ) 
    2213 
    2214 
    2215class CopyLogEntriesMetadata(proto.Message): 
    2216    r"""Metadata for CopyLogEntries long running operations. 
    2217 
    2218    Attributes: 
    2219        start_time (google.protobuf.timestamp_pb2.Timestamp): 
    2220            The create time of an operation. 
    2221        end_time (google.protobuf.timestamp_pb2.Timestamp): 
    2222            The end time of an operation. 
    2223        state (google.cloud.logging_v2.types.OperationState): 
    2224            State of an operation. 
    2225        cancellation_requested (bool): 
    2226            Identifies whether the user has requested 
    2227            cancellation of the operation. 
    2228        request (google.cloud.logging_v2.types.CopyLogEntriesRequest): 
    2229            CopyLogEntries RPC request. 
    2230        progress (int): 
    2231            Estimated progress of the operation (0 - 
    2232            100%). 
    2233        writer_identity (str): 
    2234            The IAM identity of a service account that must be granted 
    2235            access to the destination. 
    2236 
    2237            If the service account is not granted permission to the 
    2238            destination within an hour, the operation will be cancelled. 
    2239 
    2240            For example: ``"serviceAccount:foo@bar.com"`` 
    2241    """ 
    2242 
    2243    start_time: timestamp_pb2.Timestamp = proto.Field( 
    2244        proto.MESSAGE, 
    2245        number=1, 
    2246        message=timestamp_pb2.Timestamp, 
    2247    ) 
    2248    end_time: timestamp_pb2.Timestamp = proto.Field( 
    2249        proto.MESSAGE, 
    2250        number=2, 
    2251        message=timestamp_pb2.Timestamp, 
    2252    ) 
    2253    state: "OperationState" = proto.Field( 
    2254        proto.ENUM, 
    2255        number=3, 
    2256        enum="OperationState", 
    2257    ) 
    2258    cancellation_requested: bool = proto.Field( 
    2259        proto.BOOL, 
    2260        number=4, 
    2261    ) 
    2262    request: "CopyLogEntriesRequest" = proto.Field( 
    2263        proto.MESSAGE, 
    2264        number=5, 
    2265        message="CopyLogEntriesRequest", 
    2266    ) 
    2267    progress: int = proto.Field( 
    2268        proto.INT32, 
    2269        number=6, 
    2270    ) 
    2271    writer_identity: str = proto.Field( 
    2272        proto.STRING, 
    2273        number=7, 
    2274    ) 
    2275 
    2276 
    2277class CopyLogEntriesResponse(proto.Message): 
    2278    r"""Response type for CopyLogEntries long running operations. 
    2279 
    2280    Attributes: 
    2281        log_entries_copied_count (int): 
    2282            Number of log entries copied. 
    2283    """ 
    2284 
    2285    log_entries_copied_count: int = proto.Field( 
    2286        proto.INT64, 
    2287        number=1, 
    2288    ) 
    2289 
    2290 
    2291class BucketMetadata(proto.Message): 
    2292    r"""Metadata for LongRunningUpdateBucket Operations. 
    2293 
    2294    This message has `oneof`_ fields (mutually exclusive fields). 
    2295    For each oneof, at most one member field can be set at the same time. 
    2296    Setting any member of the oneof automatically clears all other 
    2297    members. 
    2298 
    2299    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields 
    2300 
    2301    Attributes: 
    2302        start_time (google.protobuf.timestamp_pb2.Timestamp): 
    2303            The create time of an operation. 
    2304        end_time (google.protobuf.timestamp_pb2.Timestamp): 
    2305            The end time of an operation. 
    2306        state (google.cloud.logging_v2.types.OperationState): 
    2307            State of an operation. 
    2308        create_bucket_request (google.cloud.logging_v2.types.CreateBucketRequest): 
    2309            LongRunningCreateBucket RPC request. 
    2310 
    2311            This field is a member of `oneof`_ ``request``. 
    2312        update_bucket_request (google.cloud.logging_v2.types.UpdateBucketRequest): 
    2313            LongRunningUpdateBucket RPC request. 
    2314 
    2315            This field is a member of `oneof`_ ``request``. 
    2316    """ 
    2317 
    2318    start_time: timestamp_pb2.Timestamp = proto.Field( 
    2319        proto.MESSAGE, 
    2320        number=1, 
    2321        message=timestamp_pb2.Timestamp, 
    2322    ) 
    2323    end_time: timestamp_pb2.Timestamp = proto.Field( 
    2324        proto.MESSAGE, 
    2325        number=2, 
    2326        message=timestamp_pb2.Timestamp, 
    2327    ) 
    2328    state: "OperationState" = proto.Field( 
    2329        proto.ENUM, 
    2330        number=3, 
    2331        enum="OperationState", 
    2332    ) 
    2333    create_bucket_request: "CreateBucketRequest" = proto.Field( 
    2334        proto.MESSAGE, 
    2335        number=4, 
    2336        oneof="request", 
    2337        message="CreateBucketRequest", 
    2338    ) 
    2339    update_bucket_request: "UpdateBucketRequest" = proto.Field( 
    2340        proto.MESSAGE, 
    2341        number=5, 
    2342        oneof="request", 
    2343        message="UpdateBucketRequest", 
    2344    ) 
    2345 
    2346 
    2347class LinkMetadata(proto.Message): 
    2348    r"""Metadata for long running Link operations. 
    2349 
    2350    This message has `oneof`_ fields (mutually exclusive fields). 
    2351    For each oneof, at most one member field can be set at the same time. 
    2352    Setting any member of the oneof automatically clears all other 
    2353    members. 
    2354 
    2355    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields 
    2356 
    2357    Attributes: 
    2358        start_time (google.protobuf.timestamp_pb2.Timestamp): 
    2359            The start time of an operation. 
    2360        end_time (google.protobuf.timestamp_pb2.Timestamp): 
    2361            The end time of an operation. 
    2362        state (google.cloud.logging_v2.types.OperationState): 
    2363            State of an operation. 
    2364        create_link_request (google.cloud.logging_v2.types.CreateLinkRequest): 
    2365            CreateLink RPC request. 
    2366 
    2367            This field is a member of `oneof`_ ``request``. 
    2368        delete_link_request (google.cloud.logging_v2.types.DeleteLinkRequest): 
    2369            DeleteLink RPC request. 
    2370 
    2371            This field is a member of `oneof`_ ``request``. 
    2372    """ 
    2373 
    2374    start_time: timestamp_pb2.Timestamp = proto.Field( 
    2375        proto.MESSAGE, 
    2376        number=1, 
    2377        message=timestamp_pb2.Timestamp, 
    2378    ) 
    2379    end_time: timestamp_pb2.Timestamp = proto.Field( 
    2380        proto.MESSAGE, 
    2381        number=2, 
    2382        message=timestamp_pb2.Timestamp, 
    2383    ) 
    2384    state: "OperationState" = proto.Field( 
    2385        proto.ENUM, 
    2386        number=3, 
    2387        enum="OperationState", 
    2388    ) 
    2389    create_link_request: "CreateLinkRequest" = proto.Field( 
    2390        proto.MESSAGE, 
    2391        number=4, 
    2392        oneof="request", 
    2393        message="CreateLinkRequest", 
    2394    ) 
    2395    delete_link_request: "DeleteLinkRequest" = proto.Field( 
    2396        proto.MESSAGE, 
    2397        number=5, 
    2398        oneof="request", 
    2399        message="DeleteLinkRequest", 
    2400    ) 
    2401 
    2402 
    2403class LocationMetadata(proto.Message): 
    2404    r"""Cloud Logging specific location metadata. 
    2405 
    2406    Attributes: 
    2407        log_analytics_enabled (bool): 
    2408            Indicates whether or not Log Analytics 
    2409            features are supported in the given location. 
    2410    """ 
    2411 
    2412    log_analytics_enabled: bool = proto.Field( 
    2413        proto.BOOL, 
    2414        number=1, 
    2415    ) 
    2416 
    2417 
    2418__all__ = tuple(sorted(__protobuf__.manifest))