# frozen_string_literal: true # Copyright 2021 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Auto-generated by gapic-generator-ruby. DO NOT EDIT! module Google module Cloud module Filestore module V1 # Network configuration for the instance. # @!attribute [rw] network # @return [::String] # The name of the Google Compute Engine # [VPC network](https://cloud.google.com/vpc/docs/vpc) to which the # instance is connected. # @!attribute [rw] modes # @return [::Array<::Google::Cloud::Filestore::V1::NetworkConfig::AddressMode>] # Internet protocol versions for which the instance has IP addresses # assigned. For this version, only MODE_IPV4 is supported. # @!attribute [rw] reserved_ip_range # @return [::String] # Optional, reserved_ip_range can have one of the following two types of # values. # # * CIDR range value when using DIRECT_PEERING connect mode. # * [Allocated IP address # range](https://cloud.google.com/compute/docs/ip-addresses/reserve-static-internal-ip-address) # when using PRIVATE_SERVICE_ACCESS connect mode. # # When the name of an allocated IP address range is specified, it must be one # of the ranges associated with the private service access connection. # When specified as a direct CIDR value, it must be a /29 CIDR block for # Basic tier, a /24 CIDR block for High Scale tier, or a /26 CIDR block for # Enterprise tier in one of the [internal IP address # ranges](https://www.arin.net/reference/research/statistics/address_filters/) # that identifies the range of IP addresses reserved for this instance. For # example, 10.0.0.0/29, 192.168.0.0/24 or 192.168.0.0/26, respectively. The # range you specify can't overlap with either existing subnets or assigned IP # address ranges for other Filestore instances in the selected VPC # network. # @!attribute [r] ip_addresses # @return [::Array<::String>] # Output only. IPv4 addresses in the format # `{octet1}.{octet2}.{octet3}.{octet4}` or IPv6 addresses in the format # `{block1}:{block2}:{block3}:{block4}:{block5}:{block6}:{block7}:{block8}`. # @!attribute [rw] connect_mode # @return [::Google::Cloud::Filestore::V1::NetworkConfig::ConnectMode] # The network connect mode of the Filestore instance. # If not provided, the connect mode defaults to DIRECT_PEERING. class NetworkConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Internet protocol versions supported by Filestore. module AddressMode # Internet protocol not set. ADDRESS_MODE_UNSPECIFIED = 0 # Use the IPv4 internet protocol. MODE_IPV4 = 1 end # Available connection modes. module ConnectMode # Not set. CONNECT_MODE_UNSPECIFIED = 0 # Connect via direct peering to the Filestore service. DIRECT_PEERING = 1 # Connect to your Filestore instance using Private Service # Access. Private services access provides an IP address range for multiple # Google Cloud services, including Filestore. PRIVATE_SERVICE_ACCESS = 2 end end # File share configuration for the instance. # @!attribute [rw] name # @return [::String] # The name of the file share (must be 16 characters or less). # @!attribute [rw] capacity_gb # @return [::Integer] # File share capacity in gigabytes (GB). # Filestore defines 1 GB as 1024^3 bytes. # @!attribute [rw] source_backup # @return [::String] # The resource name of the backup, in the format # `projects/{project_number}/locations/{location_id}/backups/{backup_id}`, # that this file share has been restored from. # @!attribute [rw] nfs_export_options # @return [::Array<::Google::Cloud::Filestore::V1::NfsExportOptions>] # Nfs Export Options. # There is a limit of 10 export options per file share. class FileShareConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # NFS export options specifications. # @!attribute [rw] ip_ranges # @return [::Array<::String>] # List of either an IPv4 addresses in the format # `{octet1}.{octet2}.{octet3}.{octet4}` or CIDR ranges in the format # `{octet1}.{octet2}.{octet3}.{octet4}/{mask size}` which may mount the # file share. # Overlapping IP ranges are not allowed, both within and across # NfsExportOptions. An error will be returned. # The limit is 64 IP ranges/addresses for each FileShareConfig among all # NfsExportOptions. # @!attribute [rw] access_mode # @return [::Google::Cloud::Filestore::V1::NfsExportOptions::AccessMode] # Either READ_ONLY, for allowing only read requests on the exported # directory, or READ_WRITE, for allowing both read and write requests. # The default is READ_WRITE. # @!attribute [rw] squash_mode # @return [::Google::Cloud::Filestore::V1::NfsExportOptions::SquashMode] # Either NO_ROOT_SQUASH, for allowing root access on the exported directory, # or ROOT_SQUASH, for not allowing root access. The default is # NO_ROOT_SQUASH. # @!attribute [rw] anon_uid # @return [::Integer] # An integer representing the anonymous user id with a default value of # 65534. # Anon_uid may only be set with squash_mode of ROOT_SQUASH. An error will be # returned if this field is specified for other squash_mode settings. # @!attribute [rw] anon_gid # @return [::Integer] # An integer representing the anonymous group id with a default value of # 65534. # Anon_gid may only be set with squash_mode of ROOT_SQUASH. An error will be # returned if this field is specified for other squash_mode settings. class NfsExportOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # The access mode. module AccessMode # AccessMode not set. ACCESS_MODE_UNSPECIFIED = 0 # The client can only read the file share. READ_ONLY = 1 # The client can read and write the file share (default). READ_WRITE = 2 end # The squash mode. module SquashMode # SquashMode not set. SQUASH_MODE_UNSPECIFIED = 0 # The Root user has root access to the file share (default). NO_ROOT_SQUASH = 1 # The Root user has squashed access to the anonymous uid/gid. ROOT_SQUASH = 2 end end # A Filestore instance. # @!attribute [r] name # @return [::String] # Output only. The resource name of the instance, in the format # `projects/{project}/locations/{location}/instances/{instance}`. # @!attribute [rw] description # @return [::String] # The description of the instance (2048 characters or less). # @!attribute [r] state # @return [::Google::Cloud::Filestore::V1::Instance::State] # Output only. The instance state. # @!attribute [r] status_message # @return [::String] # Output only. Additional information about the instance state, if available. # @!attribute [r] create_time # @return [::Google::Protobuf::Timestamp] # Output only. The time when the instance was created. # @!attribute [rw] tier # @return [::Google::Cloud::Filestore::V1::Instance::Tier] # The service tier of the instance. # @!attribute [rw] labels # @return [::Google::Protobuf::Map{::String => ::String}] # Resource labels to represent user provided metadata. # @!attribute [rw] file_shares # @return [::Array<::Google::Cloud::Filestore::V1::FileShareConfig>] # File system shares on the instance. # For this version, only a single file share is supported. # @!attribute [rw] networks # @return [::Array<::Google::Cloud::Filestore::V1::NetworkConfig>] # VPC networks to which the instance is connected. # For this version, only a single network is supported. # @!attribute [rw] etag # @return [::String] # Server-specified ETag for the instance resource to prevent simultaneous # updates from overwriting each other. # @!attribute [r] satisfies_pzs # @return [::Google::Protobuf::BoolValue] # Output only. Reserved for future use. # @!attribute [rw] kms_key_name # @return [::String] # KMS key name used for data encryption. # @!attribute [r] suspension_reasons # @return [::Array<::Google::Cloud::Filestore::V1::Instance::SuspensionReason>] # Output only. Field indicates all the reasons the instance is in "SUSPENDED" # state. class Instance include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # The instance state. module State # State not set. STATE_UNSPECIFIED = 0 # The instance is being created. CREATING = 1 # The instance is available for use. READY = 2 # Work is being done on the instance. You can get further details from the # `statusMessage` field of the `Instance` resource. REPAIRING = 3 # The instance is shutting down. DELETING = 4 # The instance is experiencing an issue and might be unusable. You can get # further details from the `statusMessage` field of the `Instance` # resource. ERROR = 6 # The instance is restoring a backup to an existing file share and may be # unusable during this time. RESTORING = 7 # The instance is suspended. You can get further details from # the `suspension_reasons` field of the `Instance` resource. SUSPENDED = 8 # The instance is in the process of becoming suspended. SUSPENDING = 9 # The instance is in the process of becoming active. RESUMING = 10 end # Available service tiers. module Tier # Not set. TIER_UNSPECIFIED = 0 # STANDARD tier. BASIC_HDD is the preferred term for this tier. STANDARD = 1 # PREMIUM tier. BASIC_SSD is the preferred term for this tier. PREMIUM = 2 # BASIC instances offer a maximum capacity of 63.9 TB. # BASIC_HDD is an alias for STANDARD Tier, offering economical # performance backed by HDD. BASIC_HDD = 3 # BASIC instances offer a maximum capacity of 63.9 TB. # BASIC_SSD is an alias for PREMIUM Tier, and offers improved # performance backed by SSD. BASIC_SSD = 4 # HIGH_SCALE instances offer expanded capacity and performance scaling # capabilities. HIGH_SCALE_SSD = 5 # ENTERPRISE instances offer the features and availability needed for # mission-critical workloads. ENTERPRISE = 6 end # SuspensionReason contains the possible reasons for a suspension. module SuspensionReason # Not set. SUSPENSION_REASON_UNSPECIFIED = 0 # The KMS key used by the instance is either revoked or denied access to. KMS_KEY_ISSUE = 1 end end # CreateInstanceRequest creates an instance. # @!attribute [rw] parent # @return [::String] # Required. The instance's project and location, in the format # `projects/{project_id}/locations/{location}`. In Filestore, # locations map to Google Cloud zones, for example **us-west1-b**. # @!attribute [rw] instance_id # @return [::String] # Required. The name of the instance to create. # The name must be unique for the specified project and location. # @!attribute [rw] instance # @return [::Google::Cloud::Filestore::V1::Instance] # Required. An {::Google::Cloud::Filestore::V1::Instance instance resource} class CreateInstanceRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # GetInstanceRequest gets the state of an instance. # @!attribute [rw] name # @return [::String] # Required. The instance resource name, in the format # `projects/{project_id}/locations/{location}/instances/{instance_id}`. class GetInstanceRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # UpdateInstanceRequest updates the settings of an instance. # @!attribute [rw] update_mask # @return [::Google::Protobuf::FieldMask] # Mask of fields to update. At least one path must be supplied in this # field. The elements of the repeated paths field may only include these # fields: # # * "description" # * "file_shares" # * "labels" # @!attribute [rw] instance # @return [::Google::Cloud::Filestore::V1::Instance] # Only fields specified in update_mask are updated. class UpdateInstanceRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # RestoreInstanceRequest restores an existing instance's file share from a # backup. # @!attribute [rw] name # @return [::String] # Required. The resource name of the instance, in the format # `projects/{project_number}/locations/{location_id}/instances/{instance_id}`. # @!attribute [rw] file_share # @return [::String] # Required. Name of the file share in the Filestore instance that the backup # is being restored to. # @!attribute [rw] source_backup # @return [::String] # The resource name of the backup, in the format # `projects/{project_number}/locations/{location_id}/backups/{backup_id}`. class RestoreInstanceRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # DeleteInstanceRequest deletes an instance. # @!attribute [rw] name # @return [::String] # Required. The instance resource name, in the format # `projects/{project_id}/locations/{location}/instances/{instance_id}` # @!attribute [rw] force # @return [::Boolean] # If set to true, all snapshots of the instance will also be deleted. # (Otherwise, the request will only work if the instance has no snapshots.) class DeleteInstanceRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ListInstancesRequest lists instances. # @!attribute [rw] parent # @return [::String] # Required. The project and location for which to retrieve instance # information, in the format `projects/{project_id}/locations/{location}`. In # Cloud Filestore, locations map to Google Cloud zones, for example # **us-west1-b**. To retrieve instance information for all locations, use "-" # for the # `{location}` value. # @!attribute [rw] page_size # @return [::Integer] # The maximum number of items to return. # @!attribute [rw] page_token # @return [::String] # The next_page_token value to use if there are additional # results to retrieve for this list request. # @!attribute [rw] order_by # @return [::String] # Sort results. Supported values are "name", "name desc" or "" (unsorted). # @!attribute [rw] filter # @return [::String] # List filter. class ListInstancesRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ListInstancesResponse is the result of ListInstancesRequest. # @!attribute [rw] instances # @return [::Array<::Google::Cloud::Filestore::V1::Instance>] # A list of instances in the project for the specified location. # # If the `{location}` value in the request is "-", the response contains a # list of instances from all locations. If any location is unreachable, the # response will only return instances in reachable locations and the # "unreachable" field will be populated with a list of unreachable locations. # @!attribute [rw] next_page_token # @return [::String] # The token you can use to retrieve the next page of results. Not returned # if there are no more results in the list. # @!attribute [rw] unreachable # @return [::Array<::String>] # Locations that could not be reached. class ListInstancesResponse include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A Filestore snapshot. # @!attribute [r] name # @return [::String] # Output only. The resource name of the snapshot, in the format # `projects/{project_id}/locations/{location_id}/instances/{instance_id}/snapshots/{snapshot_id}`. # @!attribute [rw] description # @return [::String] # A description of the snapshot with 2048 characters or less. # Requests with longer descriptions will be rejected. # @!attribute [r] state # @return [::Google::Cloud::Filestore::V1::Snapshot::State] # Output only. The snapshot state. # @!attribute [r] create_time # @return [::Google::Protobuf::Timestamp] # Output only. The time when the snapshot was created. # @!attribute [rw] labels # @return [::Google::Protobuf::Map{::String => ::String}] # Resource labels to represent user provided metadata. # @!attribute [r] filesystem_used_bytes # @return [::Integer] # Output only. The amount of bytes needed to allocate a full copy of the # snapshot content class Snapshot include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # The snapshot state. module State # State not set. STATE_UNSPECIFIED = 0 # Snapshot is being created. CREATING = 1 # Snapshot is available for use. READY = 2 # Snapshot is being deleted. DELETING = 3 end end # CreateSnapshotRequest creates a snapshot. # @!attribute [rw] parent # @return [::String] # Required. The Filestore Instance to create the snapshots of, in the format # `projects/{project_id}/locations/{location}/instances/{instance_id}` # @!attribute [rw] snapshot_id # @return [::String] # Required. The ID to use for the snapshot. # The ID must be unique within the specified instance. # # This value must start with a lowercase letter followed by up to 62 # lowercase letters, numbers, or hyphens, and cannot end with a hyphen. # @!attribute [rw] snapshot # @return [::Google::Cloud::Filestore::V1::Snapshot] # Required. A snapshot resource. class CreateSnapshotRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # GetSnapshotRequest gets the state of a snapshot. # @!attribute [rw] name # @return [::String] # Required. The snapshot resource name, in the format # `projects/{project_id}/locations/{location}/instances/{instance_id}/snapshots/{snapshot_id}` class GetSnapshotRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # DeleteSnapshotRequest deletes a snapshot. # @!attribute [rw] name # @return [::String] # Required. The snapshot resource name, in the format # `projects/{project_id}/locations/{location}/instances/{instance_id}/snapshots/{snapshot_id}` class DeleteSnapshotRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # UpdateSnapshotRequest updates description and/or labels for a snapshot. # @!attribute [rw] update_mask # @return [::Google::Protobuf::FieldMask] # Required. Mask of fields to update. At least one path must be supplied in # this field. # @!attribute [rw] snapshot # @return [::Google::Cloud::Filestore::V1::Snapshot] # Required. A snapshot resource. class UpdateSnapshotRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ListSnapshotsRequest lists snapshots. # @!attribute [rw] parent # @return [::String] # Required. The instance for which to retrieve snapshot information, # in the format # `projects/{project_id}/locations/{location}/instances/{instance_id}`. # @!attribute [rw] page_size # @return [::Integer] # The maximum number of items to return. # @!attribute [rw] page_token # @return [::String] # The next_page_token value to use if there are additional # results to retrieve for this list request. # @!attribute [rw] order_by # @return [::String] # Sort results. Supported values are "name", "name desc" or "" (unsorted). # @!attribute [rw] filter # @return [::String] # List filter. class ListSnapshotsRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ListSnapshotsResponse is the result of ListSnapshotsRequest. # @!attribute [rw] snapshots # @return [::Array<::Google::Cloud::Filestore::V1::Snapshot>] # A list of snapshots in the project for the specified instance. # @!attribute [rw] next_page_token # @return [::String] # The token you can use to retrieve the next page of results. Not returned # if there are no more results in the list. class ListSnapshotsResponse include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A Filestore backup. # @!attribute [r] name # @return [::String] # Output only. The resource name of the backup, in the format # `projects/{project_number}/locations/{location_id}/backups/{backup_id}`. # @!attribute [rw] description # @return [::String] # A description of the backup with 2048 characters or less. # Requests with longer descriptions will be rejected. # @!attribute [r] state # @return [::Google::Cloud::Filestore::V1::Backup::State] # Output only. The backup state. # @!attribute [r] create_time # @return [::Google::Protobuf::Timestamp] # Output only. The time when the backup was created. # @!attribute [rw] labels # @return [::Google::Protobuf::Map{::String => ::String}] # Resource labels to represent user provided metadata. # @!attribute [r] capacity_gb # @return [::Integer] # Output only. Capacity of the source file share when the backup was created. # @!attribute [r] storage_bytes # @return [::Integer] # Output only. The size of the storage used by the backup. As backups share # storage, this number is expected to change with backup creation/deletion. # @!attribute [rw] source_instance # @return [::String] # The resource name of the source Filestore instance, in the format # `projects/{project_number}/locations/{location_id}/instances/{instance_id}`, # used to create this backup. # @!attribute [rw] source_file_share # @return [::String] # Name of the file share in the source Filestore instance that the # backup is created from. # @!attribute [r] source_instance_tier # @return [::Google::Cloud::Filestore::V1::Instance::Tier] # Output only. The service tier of the source Filestore instance that this # backup is created from. # @!attribute [r] download_bytes # @return [::Integer] # Output only. Amount of bytes that will be downloaded if the backup is # restored. This may be different than storage bytes, since sequential # backups of the same disk will share storage. # @!attribute [r] satisfies_pzs # @return [::Google::Protobuf::BoolValue] # Output only. Reserved for future use. # @!attribute [rw] kms_key # @return [::String] # Immutable. KMS key name used for data encryption. class Backup include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # The backup state. module State # State not set. STATE_UNSPECIFIED = 0 # Backup is being created. CREATING = 1 # Backup has been taken and the operation is being finalized. At this # point, changes to the file share will not be reflected in the backup. FINALIZING = 2 # Backup is available for use. READY = 3 # Backup is being deleted. DELETING = 4 end end # CreateBackupRequest creates a backup. # @!attribute [rw] parent # @return [::String] # Required. The backup's project and location, in the format # `projects/{project_number}/locations/{location}`. In Filestore, # backup locations map to Google Cloud regions, for example **us-west1**. # @!attribute [rw] backup # @return [::Google::Cloud::Filestore::V1::Backup] # Required. A {::Google::Cloud::Filestore::V1::Backup backup resource} # @!attribute [rw] backup_id # @return [::String] # Required. The ID to use for the backup. # The ID must be unique within the specified project and location. # # This value must start with a lowercase letter followed by up to 62 # lowercase letters, numbers, or hyphens, and cannot end with a hyphen. # Values that do not match this pattern will trigger an INVALID_ARGUMENT # error. class CreateBackupRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # DeleteBackupRequest deletes a backup. # @!attribute [rw] name # @return [::String] # Required. The backup resource name, in the format # `projects/{project_number}/locations/{location}/backups/{backup_id}` class DeleteBackupRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # UpdateBackupRequest updates description and/or labels for a backup. # @!attribute [rw] backup # @return [::Google::Cloud::Filestore::V1::Backup] # Required. A {::Google::Cloud::Filestore::V1::Backup backup resource} # @!attribute [rw] update_mask # @return [::Google::Protobuf::FieldMask] # Required. Mask of fields to update. At least one path must be supplied in # this field. class UpdateBackupRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # GetBackupRequest gets the state of a backup. # @!attribute [rw] name # @return [::String] # Required. The backup resource name, in the format # `projects/{project_number}/locations/{location}/backups/{backup_id}`. class GetBackupRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ListBackupsRequest lists backups. # @!attribute [rw] parent # @return [::String] # Required. The project and location for which to retrieve backup # information, in the format # `projects/{project_number}/locations/{location}`. In Filestore, backup # locations map to Google Cloud regions, for example **us-west1**. To # retrieve backup information for all locations, use "-" for the # `{location}` value. # @!attribute [rw] page_size # @return [::Integer] # The maximum number of items to return. # @!attribute [rw] page_token # @return [::String] # The next_page_token value to use if there are additional # results to retrieve for this list request. # @!attribute [rw] order_by # @return [::String] # Sort results. Supported values are "name", "name desc" or "" (unsorted). # @!attribute [rw] filter # @return [::String] # List filter. class ListBackupsRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ListBackupsResponse is the result of ListBackupsRequest. # @!attribute [rw] backups # @return [::Array<::Google::Cloud::Filestore::V1::Backup>] # A list of backups in the project for the specified location. # # If the `{location}` value in the request is "-", the response contains a # list of backups from all locations. If any location is unreachable, the # response will only return backups in reachable locations and the # "unreachable" field will be populated with a list of unreachable # locations. # @!attribute [rw] next_page_token # @return [::String] # The token you can use to retrieve the next page of results. Not returned # if there are no more results in the list. # @!attribute [rw] unreachable # @return [::Array<::String>] # Locations that could not be reached. class ListBackupsResponse include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end end end