diff --git a/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_edgenetworknetworks.edgenetwork.cnrm.cloud.google.com.yaml b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_edgenetworknetworks.edgenetwork.cnrm.cloud.google.com.yaml new file mode 100644 index 0000000000..751e6922f2 --- /dev/null +++ b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_edgenetworknetworks.edgenetwork.cnrm.cloud.google.com.yaml @@ -0,0 +1,179 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cnrm.cloud.google.com/version: 0.0.0-dev + creationTimestamp: null + labels: + cnrm.cloud.google.com/managed-by-kcc: "true" + cnrm.cloud.google.com/stability-level: stable + cnrm.cloud.google.com/system: "true" + cnrm.cloud.google.com/tf2crd: "true" + name: edgenetworknetworks.edgenetwork.cnrm.cloud.google.com +spec: + group: edgenetwork.cnrm.cloud.google.com + names: + categories: + - gcp + kind: EdgeNetworkNetwork + plural: edgenetworknetworks + shortNames: + - gcpedgenetworknetwork + - gcpedgenetworknetworks + singular: edgenetworknetwork + preserveUnknownFields: false + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - description: When 'True', the most recent reconcile of the resource succeeded + jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - description: The reason for the value in 'Ready' + jsonPath: .status.conditions[?(@.type=='Ready')].reason + name: Status + type: string + - description: The last transition time for the value in 'Status' + jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime + name: Status Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: 'apiVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + type: string + kind: + description: 'kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + properties: + description: + description: Immutable. A free-text description of the resource. Max + length 1024 characters. + type: string + location: + description: Immutable. The Google Cloud region to which the target + Distributed Cloud Edge zone belongs. + type: string + mtu: + description: 'Immutable. IP (L3) MTU value of the network. Default + value is ''1500''. Possible values are: ''1500'', ''9000''.' + type: integer + projectRef: + description: The project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `name` field of a `Project` resource.' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + resourceID: + description: Immutable. Optional. The networkId of the resource. Used + for creation and acquisition. When unset, the value of `metadata.name` + is used as the default. + type: string + zone: + description: Immutable. The name of the target Distributed Cloud Edge + zone. + type: string + required: + - location + - projectRef + - zone + type: object + status: + properties: + conditions: + description: Conditions represent the latest available observation + of the resource's current state. + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: Status is the status of the condition. Can be True, + False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array + createTime: + description: |- + The time when the subnet was created. + A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine + fractional digits. Examples: '2014-10-02T15:01:23Z' and '2014-10-02T15:01:23.045123456Z'. + type: string + name: + description: |- + The canonical name of this resource, with format + 'projects/{{project}}/locations/{{location}}/zones/{{zone}}/networks/{{network_id}}'. + type: string + observedGeneration: + description: ObservedGeneration is the generation of the resource + that was most recently observed by the Config Connector controller. + If this is equal to metadata.generation, then that means that the + current reported status reflects the most recent desired state of + the resource. + type: integer + updateTime: + description: |- + The time when the subnet was last updated. + A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine + fractional digits. Examples: '2014-10-02T15:01:23Z' and '2014-10-02T15:01:23.045123456Z'. + type: string + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_edgenetworksubnets.edgenetwork.cnrm.cloud.google.com.yaml b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_edgenetworksubnets.edgenetwork.cnrm.cloud.google.com.yaml new file mode 100644 index 0000000000..0236d50c27 --- /dev/null +++ b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_edgenetworksubnets.edgenetwork.cnrm.cloud.google.com.yaml @@ -0,0 +1,223 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cnrm.cloud.google.com/version: 0.0.0-dev + creationTimestamp: null + labels: + cnrm.cloud.google.com/managed-by-kcc: "true" + cnrm.cloud.google.com/stability-level: stable + cnrm.cloud.google.com/system: "true" + cnrm.cloud.google.com/tf2crd: "true" + name: edgenetworksubnets.edgenetwork.cnrm.cloud.google.com +spec: + group: edgenetwork.cnrm.cloud.google.com + names: + categories: + - gcp + kind: EdgeNetworkSubnet + plural: edgenetworksubnets + shortNames: + - gcpedgenetworksubnet + - gcpedgenetworksubnets + singular: edgenetworksubnet + preserveUnknownFields: false + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - description: When 'True', the most recent reconcile of the resource succeeded + jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - description: The reason for the value in 'Ready' + jsonPath: .status.conditions[?(@.type=='Ready')].reason + name: Status + type: string + - description: The last transition time for the value in 'Status' + jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime + name: Status Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: 'apiVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + type: string + kind: + description: 'kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + properties: + description: + description: Immutable. A free-text description of the resource. Max + length 1024 characters. + type: string + ipv4Cidr: + description: Immutable. The ranges of ipv4 addresses that are owned + by this subnetwork, in CIDR format. + items: + type: string + type: array + ipv6Cidr: + description: Immutable. The ranges of ipv6 addresses that are owned + by this subnetwork, in CIDR format. + items: + type: string + type: array + location: + description: Immutable. The Google Cloud region to which the target + Distributed Cloud Edge zone belongs. + type: string + networkRef: + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `name` field of an `EdgeNetworkNetwork` + resource.' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + projectRef: + description: The project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `name` field of a `Project` resource.' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + resourceID: + description: Immutable. Optional. The subnetId of the resource. Used + for creation and acquisition. When unset, the value of `metadata.name` + is used as the default. + type: string + vlanId: + description: Immutable. VLAN ID for this subnetwork. If not specified, + one is assigned automatically. + type: integer + zone: + description: Immutable. The name of the target Distributed Cloud Edge + zone. + type: string + required: + - location + - networkRef + - projectRef + - zone + type: object + status: + properties: + conditions: + description: Conditions represent the latest available observation + of the resource's current state. + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: Status is the status of the condition. Can be True, + False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array + createTime: + description: |- + The time when the subnet was created. + A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine + fractional digits. Examples: '2014-10-02T15:01:23Z' and '2014-10-02T15:01:23.045123456Z'. + type: string + name: + description: |- + The canonical name of this resource, with format + 'projects/{{project}}/locations/{{location}}/zones/{{zone}}/subnets/{{subnet_id}}'. + type: string + observedGeneration: + description: ObservedGeneration is the generation of the resource + that was most recently observed by the Config Connector controller. + If this is equal to metadata.generation, then that means that the + current reported status reflects the most recent desired state of + the resource. + type: integer + state: + description: Current stage of the resource to the device by config + push. + type: string + updateTime: + description: |- + The time when the subnet was last updated. + A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine + fractional digits. Examples: '2014-10-02T15:01:23Z' and '2014-10-02T15:01:23.045123456Z'. + type: string + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/config/installbundle/components/clusterroles/cnrm_admin.yaml b/config/installbundle/components/clusterroles/cnrm_admin.yaml index 648a710a82..5835da604c 100644 --- a/config/installbundle/components/clusterroles/cnrm_admin.yaml +++ b/config/installbundle/components/clusterroles/cnrm_admin.yaml @@ -535,6 +535,18 @@ rules: - update - patch - delete +- apiGroups: + - edgenetwork.cnrm.cloud.google.com + resources: + - '*' + verbs: + - get + - list + - watch + - create + - update + - patch + - delete - apiGroups: - essentialcontacts.cnrm.cloud.google.com resources: diff --git a/config/installbundle/components/clusterroles/cnrm_viewer.yaml b/config/installbundle/components/clusterroles/cnrm_viewer.yaml index 50911ddc30..2b4fe8aaa7 100644 --- a/config/installbundle/components/clusterroles/cnrm_viewer.yaml +++ b/config/installbundle/components/clusterroles/cnrm_viewer.yaml @@ -358,6 +358,14 @@ rules: - get - list - watch +- apiGroups: + - edgenetwork.cnrm.cloud.google.com + resources: + - '*' + verbs: + - get + - list + - watch - apiGroups: - essentialcontacts.cnrm.cloud.google.com resources: diff --git a/config/samples/resources/edgenetworknetwork/edgenetwork_v1beta1_edgenetworknetwork.yaml b/config/samples/resources/edgenetworknetwork/edgenetwork_v1beta1_edgenetworknetwork.yaml new file mode 100644 index 0000000000..e9d726dc8b --- /dev/null +++ b/config/samples/resources/edgenetworknetwork/edgenetwork_v1beta1_edgenetworknetwork.yaml @@ -0,0 +1,24 @@ +# Copyright 2023 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 +# +# http://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. + +apiVersion: edgenetwork.cnrm.cloud.google.com/v1beta1 +kind: EdgeNetworkNetwork +metadata: + name: edgenetworknetwork-sample +spec: + description: "A sample edgenetwork network" + location: us-central1 + zone: us-central1-edge-den123 + mtu: 9000 + diff --git a/config/samples/resources/edgenetworksubnet/edgenetwork_v1beta1_edgenetworknetwork.yaml b/config/samples/resources/edgenetworksubnet/edgenetwork_v1beta1_edgenetworknetwork.yaml new file mode 100644 index 0000000000..b1375da88f --- /dev/null +++ b/config/samples/resources/edgenetworksubnet/edgenetwork_v1beta1_edgenetworknetwork.yaml @@ -0,0 +1,24 @@ +# Copyright 2023 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 +# +# http://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. + +apiVersion: edgenetwork.cnrm.cloud.google.com/v1beta1 +kind: EdgeNetworkNetwork +metadata: + name: edgenetworksubnet-dep +spec: + description: "A sample edgenetwork network" + location: us-central1 + zone: us-central1-edge-den123 + mtu: 9000 + diff --git a/config/samples/resources/edgenetworksubnet/edgenetwork_v1beta1_edgenetworksubnet.yaml b/config/samples/resources/edgenetworksubnet/edgenetwork_v1beta1_edgenetworksubnet.yaml new file mode 100644 index 0000000000..660bb75427 --- /dev/null +++ b/config/samples/resources/edgenetworksubnet/edgenetwork_v1beta1_edgenetworksubnet.yaml @@ -0,0 +1,28 @@ +# Copyright 2023 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 +# +# http://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. + +apiVersion: edgenetwork.cnrm.cloud.google.com/v1beta1 +kind: EdgeNetworkSubnet +metadata: + name: edgenetworksubnet-sample +spec: + description: "A sample edgenetwork subnet" + location: us-central1 + zone: us-central1-edge-den123 + networkRef: + name: edgenetworksubnet-dep + ipv4Cidr: + - 1.1.1.1/24 + - 2.2.2.2/32 + diff --git a/config/servicemappings/edgenetwork.yaml b/config/servicemappings/edgenetwork.yaml new file mode 100644 index 0000000000..5ca087cbad --- /dev/null +++ b/config/servicemappings/edgenetwork.yaml @@ -0,0 +1,75 @@ +# Copyright 2023 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 +# +# http://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. + +apiVersion: core.cnrm.cloud.google.com/v1alpha1 +kind: ServiceMapping +metadata: + name: edgenetwork.cnrm.cloud.google.com + namespace: cnrm-system +spec: + name: EdgeNetwork + version: v1beta1 + serviceHostName: edgenetwork.googleapis.com + resources: + - name: google_edgenetwork_network + kind: EdgeNetworkNetwork + idTemplate: "projects/{{project}}/locations/{{location}}/zones/{{zone}}/networks/{{network_id}}" + idTemplateCanBeUsedToMatchResourceName: false + resourceAvailableInAssetInventory: false + metadataMapping: + labels: labels + name: network_id + resourceID: + targetField: network_id + hierarchicalReferences: + - type: project + key: projectRef + resourceReferences: + - tfField: project + key: projectRef + description: |- + The project that this resource belongs to. + gvk: + kind: Project + version: v1beta1 + group: resourcemanager.cnrm.cloud.google.com + - name: google_edgenetwork_subnet + kind: EdgeNetworkSubnet + idTemplate: "projects/{{project}}/locations/{{location}}/zones/{{zone}}/subnets/{{subnet_id}}" + idTemplateCanBeUsedToMatchResourceName: false + resourceAvailableInAssetInventory: false + metadataMapping: + labels: labels + name: subnet_id + resourceID: + targetField: subnet_id + hierarchicalReferences: + - type: project + key: projectRef + resourceReferences: + - tfField: project + key: projectRef + description: |- + The project that this resource belongs to. + gvk: + kind: Project + version: v1beta1 + group: resourcemanager.cnrm.cloud.google.com + - key: networkRef + tfField: network + gvk: + kind: EdgeNetworkNetwork + version: v1beta1 + group: edgenetwork.cnrm.cloud.google.com + targetField: name diff --git a/config/tests/samples/create/harness.go b/config/tests/samples/create/harness.go index b404af4e38..8b6e8be44b 100644 --- a/config/tests/samples/create/harness.go +++ b/config/tests/samples/create/harness.go @@ -326,6 +326,9 @@ func MaybeSkip(t *testing.T, name string, resources []*unstructured.Unstructured case schema.GroupKind{Group: "iam.cnrm.cloud.google.com", Kind: "IAMPolicyMember"}: case schema.GroupKind{Group: "iam.cnrm.cloud.google.com", Kind: "IAMServiceAccount"}: + case schema.GroupKind{Group: "edgenetwork.cnrm.cloud.google.com", Kind: "EdgeNetworkNetwork"}: + case schema.GroupKind{Group: "edgenetwork.cnrm.cloud.google.com", Kind: "EdgeNetworkSubnet"}: + case schema.GroupKind{Group: "networkservices.cnrm.cloud.google.com", Kind: "NetworkServicesMesh"}: case schema.GroupKind{Group: "privateca.cnrm.cloud.google.com", Kind: "PrivateCACAPool"}: diff --git a/config/tests/samples/create/samples_test.go b/config/tests/samples/create/samples_test.go index 4411970e2d..dafae68091 100644 --- a/config/tests/samples/create/samples_test.go +++ b/config/tests/samples/create/samples_test.go @@ -64,6 +64,8 @@ var testDisabledList = map[string]bool{ // The resources below have special test requirements "computeinterconnectattachment": true, "firestoreindex": true, + "edgenetworknetwork": true, + "edgenetworksubnet": true, // The test external cluster to be attached requires special setup. // It cannot be attached to multiple projects, or be used multiple times if it's already registered. "container-attached-cluster-basic": true, diff --git a/mockgcp/Makefile b/mockgcp/Makefile index fe72cfbcde..66fe8fe54c 100644 --- a/mockgcp/Makefile +++ b/mockgcp/Makefile @@ -28,6 +28,7 @@ gen-proto: ./third_party/googleapis/mockgcp/cloud/certificatemanager/v1/*.proto \ ./third_party/googleapis/mockgcp/cloud/compute/v1/*.proto \ ./third_party/googleapis/mockgcp/cloud/gkemulticloud/v1/*.proto \ + ./third_party/googleapis/mockgcp/cloud/edgenetwork/v1/*.proto \ ./third_party/googleapis/mockgcp/cloud/functions/v1/*.proto \ ./third_party/googleapis/mockgcp/cloud/networkservices/v1/*.proto \ ./third_party/googleapis/mockgcp/cloud/security/privateca/v1/*.proto \ diff --git a/mockgcp/generated/mockgcp/cloud/edgenetwork/v1/resources.pb.go b/mockgcp/generated/mockgcp/cloud/edgenetwork/v1/resources.pb.go new file mode 100644 index 0000000000..25de19b678 --- /dev/null +++ b/mockgcp/generated/mockgcp/cloud/edgenetwork/v1/resources.pb.go @@ -0,0 +1,2869 @@ +// Copyright 2022 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 +// +// http://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. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v3.12.4 +// source: mockgcp/cloud/edgenetwork/v1/resources.proto + +package edgenetwork + +import ( + timestamp "github.com/golang/protobuf/ptypes/timestamp" + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// ResourceState describes the state the resource. +// A normal lifecycle of a new resource being created would be: PENDING -> +// PROVISIONING -> RUNNING. A normal lifecycle of an existing resource being +// deleted would be: RUNNING -> DELETING. Any failures during processing will +// result the resource to be in a SUSPENDED state. +type ResourceState int32 + +const ( + // Unspecified state. + ResourceState_STATE_UNKNOWN ResourceState = 0 + // The resource is being prepared to be applied to the rack. + ResourceState_STATE_PENDING ResourceState = 1 + // The resource has started being applied to the rack. + ResourceState_STATE_PROVISIONING ResourceState = 2 + // The resource has been pushed to the rack. + ResourceState_STATE_RUNNING ResourceState = 3 + // The resource failed to push to the rack. + ResourceState_STATE_SUSPENDED ResourceState = 4 + // The resource is under deletion. + ResourceState_STATE_DELETING ResourceState = 5 +) + +// Enum value maps for ResourceState. +var ( + ResourceState_name = map[int32]string{ + 0: "STATE_UNKNOWN", + 1: "STATE_PENDING", + 2: "STATE_PROVISIONING", + 3: "STATE_RUNNING", + 4: "STATE_SUSPENDED", + 5: "STATE_DELETING", + } + ResourceState_value = map[string]int32{ + "STATE_UNKNOWN": 0, + "STATE_PENDING": 1, + "STATE_PROVISIONING": 2, + "STATE_RUNNING": 3, + "STATE_SUSPENDED": 4, + "STATE_DELETING": 5, + } +) + +func (x ResourceState) Enum() *ResourceState { + p := new(ResourceState) + *p = x + return p +} + +func (x ResourceState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ResourceState) Descriptor() protoreflect.EnumDescriptor { + return file_mockgcp_cloud_edgenetwork_v1_resources_proto_enumTypes[0].Descriptor() +} + +func (ResourceState) Type() protoreflect.EnumType { + return &file_mockgcp_cloud_edgenetwork_v1_resources_proto_enumTypes[0] +} + +func (x ResourceState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ResourceState.Descriptor instead. +func (ResourceState) EnumDescriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDescGZIP(), []int{0} +} + +// Type of interconnect. +type Interconnect_InterconnectType int32 + +const ( + // Unspecified. + Interconnect_INTERCONNECT_TYPE_UNSPECIFIED Interconnect_InterconnectType = 0 + // Dedicated Interconnect. + Interconnect_DEDICATED Interconnect_InterconnectType = 1 +) + +// Enum value maps for Interconnect_InterconnectType. +var ( + Interconnect_InterconnectType_name = map[int32]string{ + 0: "INTERCONNECT_TYPE_UNSPECIFIED", + 1: "DEDICATED", + } + Interconnect_InterconnectType_value = map[string]int32{ + "INTERCONNECT_TYPE_UNSPECIFIED": 0, + "DEDICATED": 1, + } +) + +func (x Interconnect_InterconnectType) Enum() *Interconnect_InterconnectType { + p := new(Interconnect_InterconnectType) + *p = x + return p +} + +func (x Interconnect_InterconnectType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Interconnect_InterconnectType) Descriptor() protoreflect.EnumDescriptor { + return file_mockgcp_cloud_edgenetwork_v1_resources_proto_enumTypes[1].Descriptor() +} + +func (Interconnect_InterconnectType) Type() protoreflect.EnumType { + return &file_mockgcp_cloud_edgenetwork_v1_resources_proto_enumTypes[1] +} + +func (x Interconnect_InterconnectType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Interconnect_InterconnectType.Descriptor instead. +func (Interconnect_InterconnectType) EnumDescriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDescGZIP(), []int{3, 0} +} + +// State enum for LACP link. +type InterconnectDiagnostics_LinkLACPStatus_State int32 + +const ( + // The default state indicating state is in unknown state. + InterconnectDiagnostics_LinkLACPStatus_UNKNOWN InterconnectDiagnostics_LinkLACPStatus_State = 0 + // The link is configured and active within the bundle. + InterconnectDiagnostics_LinkLACPStatus_ACTIVE InterconnectDiagnostics_LinkLACPStatus_State = 1 + // The link is not configured within the bundle, this means the rest of + // the object should be empty. + InterconnectDiagnostics_LinkLACPStatus_DETACHED InterconnectDiagnostics_LinkLACPStatus_State = 2 +) + +// Enum value maps for InterconnectDiagnostics_LinkLACPStatus_State. +var ( + InterconnectDiagnostics_LinkLACPStatus_State_name = map[int32]string{ + 0: "UNKNOWN", + 1: "ACTIVE", + 2: "DETACHED", + } + InterconnectDiagnostics_LinkLACPStatus_State_value = map[string]int32{ + "UNKNOWN": 0, + "ACTIVE": 1, + "DETACHED": 2, + } +) + +func (x InterconnectDiagnostics_LinkLACPStatus_State) Enum() *InterconnectDiagnostics_LinkLACPStatus_State { + p := new(InterconnectDiagnostics_LinkLACPStatus_State) + *p = x + return p +} + +func (x InterconnectDiagnostics_LinkLACPStatus_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (InterconnectDiagnostics_LinkLACPStatus_State) Descriptor() protoreflect.EnumDescriptor { + return file_mockgcp_cloud_edgenetwork_v1_resources_proto_enumTypes[2].Descriptor() +} + +func (InterconnectDiagnostics_LinkLACPStatus_State) Type() protoreflect.EnumType { + return &file_mockgcp_cloud_edgenetwork_v1_resources_proto_enumTypes[2] +} + +func (x InterconnectDiagnostics_LinkLACPStatus_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use InterconnectDiagnostics_LinkLACPStatus_State.Descriptor instead. +func (InterconnectDiagnostics_LinkLACPStatus_State) EnumDescriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDescGZIP(), []int{8, 2, 0} +} + +// Status of the BGP peer: {UP, DOWN} +type RouterStatus_BgpPeerStatus_BgpStatus int32 + +const ( + // The default status indicating BGP session is in unknown state. + RouterStatus_BgpPeerStatus_UNKNOWN RouterStatus_BgpPeerStatus_BgpStatus = 0 + // The UP status indicating BGP session is established. + RouterStatus_BgpPeerStatus_UP RouterStatus_BgpPeerStatus_BgpStatus = 1 + // The DOWN state indicating BGP session is not established yet. + RouterStatus_BgpPeerStatus_DOWN RouterStatus_BgpPeerStatus_BgpStatus = 2 +) + +// Enum value maps for RouterStatus_BgpPeerStatus_BgpStatus. +var ( + RouterStatus_BgpPeerStatus_BgpStatus_name = map[int32]string{ + 0: "UNKNOWN", + 1: "UP", + 2: "DOWN", + } + RouterStatus_BgpPeerStatus_BgpStatus_value = map[string]int32{ + "UNKNOWN": 0, + "UP": 1, + "DOWN": 2, + } +) + +func (x RouterStatus_BgpPeerStatus_BgpStatus) Enum() *RouterStatus_BgpPeerStatus_BgpStatus { + p := new(RouterStatus_BgpPeerStatus_BgpStatus) + *p = x + return p +} + +func (x RouterStatus_BgpPeerStatus_BgpStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (RouterStatus_BgpPeerStatus_BgpStatus) Descriptor() protoreflect.EnumDescriptor { + return file_mockgcp_cloud_edgenetwork_v1_resources_proto_enumTypes[3].Descriptor() +} + +func (RouterStatus_BgpPeerStatus_BgpStatus) Type() protoreflect.EnumType { + return &file_mockgcp_cloud_edgenetwork_v1_resources_proto_enumTypes[3] +} + +func (x RouterStatus_BgpPeerStatus_BgpStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use RouterStatus_BgpPeerStatus_BgpStatus.Descriptor instead. +func (RouterStatus_BgpPeerStatus_BgpStatus) EnumDescriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDescGZIP(), []int{9, 0, 0} +} + +// A Google Edge Cloud zone. +type Zone struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the zone. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. The time when the zone was created. + CreateTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The time when the zone was last updated. + UpdateTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Labels as key value pairs + Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // The deployment layout type. + LayoutName string `protobuf:"bytes,5,opt,name=layout_name,json=layoutName,proto3" json:"layout_name,omitempty"` +} + +func (x *Zone) Reset() { + *x = Zone{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Zone) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Zone) ProtoMessage() {} + +func (x *Zone) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Zone.ProtoReflect.Descriptor instead. +func (*Zone) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDescGZIP(), []int{0} +} + +func (x *Zone) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Zone) GetCreateTime() *timestamp.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Zone) GetUpdateTime() *timestamp.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *Zone) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Zone) GetLayoutName() string { + if x != nil { + return x.LayoutName + } + return "" +} + +// Message describing Network object +type Network struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The canonical resource name of the network. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. The time when the network was created. + CreateTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The time when the network was last updated. + UpdateTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Labels associated with this resource. + Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Optional. A free-text description of the resource. Max length 1024 + // characters. + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + // IP (L3) MTU value of the network. + // Valid values are: 1500 and 9000. + // Default to 1500 if not set. + Mtu int32 `protobuf:"varint,6,opt,name=mtu,proto3" json:"mtu,omitempty"` +} + +func (x *Network) Reset() { + *x = Network{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Network) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Network) ProtoMessage() {} + +func (x *Network) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Network.ProtoReflect.Descriptor instead. +func (*Network) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDescGZIP(), []int{1} +} + +func (x *Network) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Network) GetCreateTime() *timestamp.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Network) GetUpdateTime() *timestamp.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *Network) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Network) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Network) GetMtu() int32 { + if x != nil { + return x.Mtu + } + return 0 +} + +// Message describing Subnet object +type Subnet struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The canonical resource name of the subnet. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. The time when the subnet was created. + CreateTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The time when the subnet was last updated. + UpdateTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Labels associated with this resource. + Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Optional. A free-text description of the resource. Max length 1024 + // characters. + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + // Required. The network that this subnetwork belongs to. + Network string `protobuf:"bytes,6,opt,name=network,proto3" json:"network,omitempty"` + // The ranges of ipv4 addresses that are owned by this subnetwork. + Ipv4Cidr []string `protobuf:"bytes,7,rep,name=ipv4_cidr,json=ipv4Cidr,proto3" json:"ipv4_cidr,omitempty"` + // The ranges of ipv6 addresses that are owned by this subnetwork. + Ipv6Cidr []string `protobuf:"bytes,8,rep,name=ipv6_cidr,json=ipv6Cidr,proto3" json:"ipv6_cidr,omitempty"` + // Optional. VLAN id provided by user. If not specified we assign one + // automatically. + VlanId int32 `protobuf:"varint,9,opt,name=vlan_id,json=vlanId,proto3" json:"vlan_id,omitempty"` + // Output only. Current stage of the resource to the device by config push. + State ResourceState `protobuf:"varint,10,opt,name=state,proto3,enum=mockgcp.cloud.edgenetwork.v1.ResourceState" json:"state,omitempty"` +} + +func (x *Subnet) Reset() { + *x = Subnet{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Subnet) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Subnet) ProtoMessage() {} + +func (x *Subnet) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Subnet.ProtoReflect.Descriptor instead. +func (*Subnet) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDescGZIP(), []int{2} +} + +func (x *Subnet) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Subnet) GetCreateTime() *timestamp.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Subnet) GetUpdateTime() *timestamp.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *Subnet) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Subnet) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Subnet) GetNetwork() string { + if x != nil { + return x.Network + } + return "" +} + +func (x *Subnet) GetIpv4Cidr() []string { + if x != nil { + return x.Ipv4Cidr + } + return nil +} + +func (x *Subnet) GetIpv6Cidr() []string { + if x != nil { + return x.Ipv6Cidr + } + return nil +} + +func (x *Subnet) GetVlanId() int32 { + if x != nil { + return x.VlanId + } + return 0 +} + +func (x *Subnet) GetState() ResourceState { + if x != nil { + return x.State + } + return ResourceState_STATE_UNKNOWN +} + +// Message describing Interconnect object +type Interconnect struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The canonical resource name of the interconnect. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. The time when the subnet was created. + CreateTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The time when the subnet was last updated. + UpdateTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Labels associated with this resource. + Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Optional. A free-text description of the resource. Max length 1024 + // characters. + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + // Optional. Type of interconnect, which takes only the value 'DEDICATED' for + // now. + InterconnectType Interconnect_InterconnectType `protobuf:"varint,6,opt,name=interconnect_type,json=interconnectType,proto3,enum=mockgcp.cloud.edgenetwork.v1.Interconnect_InterconnectType" json:"interconnect_type,omitempty"` + // Output only. Unique identifier for the link. + Uuid string `protobuf:"bytes,7,opt,name=uuid,proto3" json:"uuid,omitempty"` + // Output only. Cloud resource name of the switch device. + DeviceCloudResourceName string `protobuf:"bytes,8,opt,name=device_cloud_resource_name,json=deviceCloudResourceName,proto3" json:"device_cloud_resource_name,omitempty"` + // Output only. Physical ports (e.g., TenGigE0/0/0/1) that form the + // interconnect. + PhysicalPorts []string `protobuf:"bytes,9,rep,name=physical_ports,json=physicalPorts,proto3" json:"physical_ports,omitempty"` +} + +func (x *Interconnect) Reset() { + *x = Interconnect{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Interconnect) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Interconnect) ProtoMessage() {} + +func (x *Interconnect) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Interconnect.ProtoReflect.Descriptor instead. +func (*Interconnect) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDescGZIP(), []int{3} +} + +func (x *Interconnect) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Interconnect) GetCreateTime() *timestamp.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Interconnect) GetUpdateTime() *timestamp.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *Interconnect) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Interconnect) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Interconnect) GetInterconnectType() Interconnect_InterconnectType { + if x != nil { + return x.InterconnectType + } + return Interconnect_INTERCONNECT_TYPE_UNSPECIFIED +} + +func (x *Interconnect) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +func (x *Interconnect) GetDeviceCloudResourceName() string { + if x != nil { + return x.DeviceCloudResourceName + } + return "" +} + +func (x *Interconnect) GetPhysicalPorts() []string { + if x != nil { + return x.PhysicalPorts + } + return nil +} + +// Message describing InterconnectAttachment object +type InterconnectAttachment struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The canonical resource name of the interconnect attachment. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. The time when the interconnect attachment was created. + CreateTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The time when the interconnect attachment was last updated. + UpdateTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Labels associated with this resource. + Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Optional. A free-text description of the resource. Max length 1024 + // characters. + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + // Required. The canonical name of underlying Interconnect object that this + // attachment's traffic will traverse through. The name is in the form of + // projects/{project}/locations/{location}/zones/{zone}/interconnects/{interconnect}. + Interconnect string `protobuf:"bytes,6,opt,name=interconnect,proto3" json:"interconnect,omitempty"` + // Optional. The canonical Network name in the form of + // projects/{project}/locations/{location}/zones/{zone}/networks/{network}. + Network string `protobuf:"bytes,11,opt,name=network,proto3" json:"network,omitempty"` + // Required. VLAN id provided by user. Must be site-wise unique. + VlanId int32 `protobuf:"varint,8,opt,name=vlan_id,json=vlanId,proto3" json:"vlan_id,omitempty"` + // IP (L3) MTU value of the virtual edge cloud. + // Valid values are: 1500 and 9000. + // Default to 1500 if not set. + Mtu int32 `protobuf:"varint,9,opt,name=mtu,proto3" json:"mtu,omitempty"` + // Output only. Current stage of the resource to the device by config push. + State ResourceState `protobuf:"varint,10,opt,name=state,proto3,enum=mockgcp.cloud.edgenetwork.v1.ResourceState" json:"state,omitempty"` +} + +func (x *InterconnectAttachment) Reset() { + *x = InterconnectAttachment{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InterconnectAttachment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InterconnectAttachment) ProtoMessage() {} + +func (x *InterconnectAttachment) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InterconnectAttachment.ProtoReflect.Descriptor instead. +func (*InterconnectAttachment) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDescGZIP(), []int{4} +} + +func (x *InterconnectAttachment) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *InterconnectAttachment) GetCreateTime() *timestamp.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *InterconnectAttachment) GetUpdateTime() *timestamp.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *InterconnectAttachment) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *InterconnectAttachment) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *InterconnectAttachment) GetInterconnect() string { + if x != nil { + return x.Interconnect + } + return "" +} + +func (x *InterconnectAttachment) GetNetwork() string { + if x != nil { + return x.Network + } + return "" +} + +func (x *InterconnectAttachment) GetVlanId() int32 { + if x != nil { + return x.VlanId + } + return 0 +} + +func (x *InterconnectAttachment) GetMtu() int32 { + if x != nil { + return x.Mtu + } + return 0 +} + +func (x *InterconnectAttachment) GetState() ResourceState { + if x != nil { + return x.State + } + return ResourceState_STATE_UNKNOWN +} + +// Message describing Router object +type Router struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The canonical resource name of the router. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. The time when the router was created. + CreateTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The time when the router was last updated. + UpdateTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Labels associated with this resource. + Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Optional. A free-text description of the resource. Max length 1024 + // characters. + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + // Required. The canonical name of the network to which this router belongs. + // The name is in the form of + // projects/{project}/locations/{location}/zones/{zone}/networks/{network}. + Network string `protobuf:"bytes,6,opt,name=network,proto3" json:"network,omitempty"` + // Router interfaces. + Interface []*Router_Interface `protobuf:"bytes,7,rep,name=interface,proto3" json:"interface,omitempty"` + // BGP peers. + BgpPeer []*Router_BgpPeer `protobuf:"bytes,8,rep,name=bgp_peer,json=bgpPeer,proto3" json:"bgp_peer,omitempty"` + // BGP information specific to this router. + Bgp *Router_Bgp `protobuf:"bytes,9,opt,name=bgp,proto3" json:"bgp,omitempty"` + // Output only. Current stage of the resource to the device by config push. + State ResourceState `protobuf:"varint,10,opt,name=state,proto3,enum=mockgcp.cloud.edgenetwork.v1.ResourceState" json:"state,omitempty"` + // Optional. A list of CIDRs in IP/Length format to advertise northbound as + // static routes from this router. + RouteAdvertisements []string `protobuf:"bytes,11,rep,name=route_advertisements,json=routeAdvertisements,proto3" json:"route_advertisements,omitempty"` +} + +func (x *Router) Reset() { + *x = Router{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Router) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Router) ProtoMessage() {} + +func (x *Router) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Router.ProtoReflect.Descriptor instead. +func (*Router) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDescGZIP(), []int{5} +} + +func (x *Router) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Router) GetCreateTime() *timestamp.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Router) GetUpdateTime() *timestamp.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *Router) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Router) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Router) GetNetwork() string { + if x != nil { + return x.Network + } + return "" +} + +func (x *Router) GetInterface() []*Router_Interface { + if x != nil { + return x.Interface + } + return nil +} + +func (x *Router) GetBgpPeer() []*Router_BgpPeer { + if x != nil { + return x.BgpPeer + } + return nil +} + +func (x *Router) GetBgp() *Router_Bgp { + if x != nil { + return x.Bgp + } + return nil +} + +func (x *Router) GetState() ResourceState { + if x != nil { + return x.State + } + return ResourceState_STATE_UNKNOWN +} + +func (x *Router) GetRouteAdvertisements() []string { + if x != nil { + return x.RouteAdvertisements + } + return nil +} + +// LinkLayerAddress contains an IP address and corresponding link-layer address. +type LinkLayerAddress struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The MAC address of this neighbor. + MacAddress string `protobuf:"bytes,1,opt,name=mac_address,json=macAddress,proto3" json:"mac_address,omitempty"` + // The IP address of this neighbor. + IpAddress string `protobuf:"bytes,2,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"` +} + +func (x *LinkLayerAddress) Reset() { + *x = LinkLayerAddress{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LinkLayerAddress) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LinkLayerAddress) ProtoMessage() {} + +func (x *LinkLayerAddress) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LinkLayerAddress.ProtoReflect.Descriptor instead. +func (*LinkLayerAddress) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDescGZIP(), []int{6} +} + +func (x *LinkLayerAddress) GetMacAddress() string { + if x != nil { + return x.MacAddress + } + return "" +} + +func (x *LinkLayerAddress) GetIpAddress() string { + if x != nil { + return x.IpAddress + } + return "" +} + +// SubnetStatus contains detailed and current technical information about this +// subnet resource. +type SubnetStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of CCFE subnet resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // BVI MAC address. + MacAddress string `protobuf:"bytes,2,opt,name=mac_address,json=macAddress,proto3" json:"mac_address,omitempty"` + // A list of LinkLayerAddress, describing the ip address and corresponding + // link-layer address of the neighbors for this subnet. + LinkLayerAddresses []*LinkLayerAddress `protobuf:"bytes,3,rep,name=link_layer_addresses,json=linkLayerAddresses,proto3" json:"link_layer_addresses,omitempty"` +} + +func (x *SubnetStatus) Reset() { + *x = SubnetStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubnetStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubnetStatus) ProtoMessage() {} + +func (x *SubnetStatus) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SubnetStatus.ProtoReflect.Descriptor instead. +func (*SubnetStatus) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDescGZIP(), []int{7} +} + +func (x *SubnetStatus) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *SubnetStatus) GetMacAddress() string { + if x != nil { + return x.MacAddress + } + return "" +} + +func (x *SubnetStatus) GetLinkLayerAddresses() []*LinkLayerAddress { + if x != nil { + return x.LinkLayerAddresses + } + return nil +} + +// Diagnostics information about interconnect, contains detailed and current +// technical information about Google's side of the connection. +type InterconnectDiagnostics struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The MAC address of the Interconnect's bundle interface. + MacAddress string `protobuf:"bytes,1,opt,name=mac_address,json=macAddress,proto3" json:"mac_address,omitempty"` + // A list of LinkLayerAddress, describing the ip address and corresponding + // link-layer address of the neighbors for this interconnect. + LinkLayerAddresses []*LinkLayerAddress `protobuf:"bytes,2,rep,name=link_layer_addresses,json=linkLayerAddresses,proto3" json:"link_layer_addresses,omitempty"` + // A list of LinkStatus objects, used to describe the status for each link on + // the Interconnect. + Links []*InterconnectDiagnostics_LinkStatus `protobuf:"bytes,3,rep,name=links,proto3" json:"links,omitempty"` +} + +func (x *InterconnectDiagnostics) Reset() { + *x = InterconnectDiagnostics{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InterconnectDiagnostics) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InterconnectDiagnostics) ProtoMessage() {} + +func (x *InterconnectDiagnostics) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InterconnectDiagnostics.ProtoReflect.Descriptor instead. +func (*InterconnectDiagnostics) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDescGZIP(), []int{8} +} + +func (x *InterconnectDiagnostics) GetMacAddress() string { + if x != nil { + return x.MacAddress + } + return "" +} + +func (x *InterconnectDiagnostics) GetLinkLayerAddresses() []*LinkLayerAddress { + if x != nil { + return x.LinkLayerAddresses + } + return nil +} + +func (x *InterconnectDiagnostics) GetLinks() []*InterconnectDiagnostics_LinkStatus { + if x != nil { + return x.Links + } + return nil +} + +// Describing the current status of a router. +type RouterStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The canonical name of the network to which this router belongs. + Network string `protobuf:"bytes,1,opt,name=network,proto3" json:"network,omitempty"` + // A list of BgpPeerStatus objects, describing all BGP peers related to this + // router. + BgpPeerStatus []*RouterStatus_BgpPeerStatus `protobuf:"bytes,2,rep,name=bgp_peer_status,json=bgpPeerStatus,proto3" json:"bgp_peer_status,omitempty"` +} + +func (x *RouterStatus) Reset() { + *x = RouterStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RouterStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RouterStatus) ProtoMessage() {} + +func (x *RouterStatus) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RouterStatus.ProtoReflect.Descriptor instead. +func (*RouterStatus) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDescGZIP(), []int{9} +} + +func (x *RouterStatus) GetNetwork() string { + if x != nil { + return x.Network + } + return "" +} + +func (x *RouterStatus) GetBgpPeerStatus() []*RouterStatus_BgpPeerStatus { + if x != nil { + return x.BgpPeerStatus + } + return nil +} + +// Router Interface defines the GDCE zone side layer-3 information for +// building the BGP session. +type Router_Interface struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Name of this interface entry. Unique within the Zones resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // IP address and range of the interface. + // This value is only used when linked_interconnect_attachment is set. + Ipv4Cidr string `protobuf:"bytes,3,opt,name=ipv4_cidr,json=ipv4Cidr,proto3" json:"ipv4_cidr,omitempty"` + // The canonical name of the linked Interconnect attachment. + LinkedInterconnectAttachment string `protobuf:"bytes,2,opt,name=linked_interconnect_attachment,json=linkedInterconnectAttachment,proto3" json:"linked_interconnect_attachment,omitempty"` + // The canonical name of the subnetwork resource that this interface + // belongs to. + Subnetwork string `protobuf:"bytes,4,opt,name=subnetwork,proto3" json:"subnetwork,omitempty"` + // Create loopback interface in the router when specified. + // The number of IP addresses must match the number of TOR devices. + LoopbackIpAddresses []string `protobuf:"bytes,5,rep,name=loopback_ip_addresses,json=loopbackIpAddresses,proto3" json:"loopback_ip_addresses,omitempty"` +} + +func (x *Router_Interface) Reset() { + *x = Router_Interface{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Router_Interface) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Router_Interface) ProtoMessage() {} + +func (x *Router_Interface) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Router_Interface.ProtoReflect.Descriptor instead. +func (*Router_Interface) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDescGZIP(), []int{5, 0} +} + +func (x *Router_Interface) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Router_Interface) GetIpv4Cidr() string { + if x != nil { + return x.Ipv4Cidr + } + return "" +} + +func (x *Router_Interface) GetLinkedInterconnectAttachment() string { + if x != nil { + return x.LinkedInterconnectAttachment + } + return "" +} + +func (x *Router_Interface) GetSubnetwork() string { + if x != nil { + return x.Subnetwork + } + return "" +} + +func (x *Router_Interface) GetLoopbackIpAddresses() []string { + if x != nil { + return x.LoopbackIpAddresses + } + return nil +} + +// BGPPeer defines the peer side layer-3 information for building the BGP +// session. +type Router_BgpPeer struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Name of this BGP peer. Unique within the Zones resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Name of the RouterInterface the BGP peer is associated with. + Interface string `protobuf:"bytes,2,opt,name=interface,proto3" json:"interface,omitempty"` + // IP range of the interface within Google. + InterfaceIpv4Cidr string `protobuf:"bytes,3,opt,name=interface_ipv4_cidr,json=interfaceIpv4Cidr,proto3" json:"interface_ipv4_cidr,omitempty"` + // IP range of the BGP interface outside Google. + PeerIpv4Cidr string `protobuf:"bytes,4,opt,name=peer_ipv4_cidr,json=peerIpv4Cidr,proto3" json:"peer_ipv4_cidr,omitempty"` + // Peer BGP Autonomous System Number (ASN). Each BGP interface may use + // a different value. + PeerAsn uint32 `protobuf:"varint,5,opt,name=peer_asn,json=peerAsn,proto3" json:"peer_asn,omitempty"` +} + +func (x *Router_BgpPeer) Reset() { + *x = Router_BgpPeer{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Router_BgpPeer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Router_BgpPeer) ProtoMessage() {} + +func (x *Router_BgpPeer) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Router_BgpPeer.ProtoReflect.Descriptor instead. +func (*Router_BgpPeer) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDescGZIP(), []int{5, 1} +} + +func (x *Router_BgpPeer) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Router_BgpPeer) GetInterface() string { + if x != nil { + return x.Interface + } + return "" +} + +func (x *Router_BgpPeer) GetInterfaceIpv4Cidr() string { + if x != nil { + return x.InterfaceIpv4Cidr + } + return "" +} + +func (x *Router_BgpPeer) GetPeerIpv4Cidr() string { + if x != nil { + return x.PeerIpv4Cidr + } + return "" +} + +func (x *Router_BgpPeer) GetPeerAsn() uint32 { + if x != nil { + return x.PeerAsn + } + return 0 +} + +// BGP information specific to this router. +type Router_Bgp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Locally assigned BGP ASN. + Asn uint32 `protobuf:"varint,1,opt,name=asn,proto3" json:"asn,omitempty"` + // The interval in seconds between BGP keepalive messages that are + // sent to the peer. Default is 20 with value between 20 and 60. + KeepaliveIntervalInSeconds uint32 `protobuf:"varint,2,opt,name=keepalive_interval_in_seconds,json=keepaliveIntervalInSeconds,proto3" json:"keepalive_interval_in_seconds,omitempty"` +} + +func (x *Router_Bgp) Reset() { + *x = Router_Bgp{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Router_Bgp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Router_Bgp) ProtoMessage() {} + +func (x *Router_Bgp) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Router_Bgp.ProtoReflect.Descriptor instead. +func (*Router_Bgp) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDescGZIP(), []int{5, 2} +} + +func (x *Router_Bgp) GetAsn() uint32 { + if x != nil { + return x.Asn + } + return 0 +} + +func (x *Router_Bgp) GetKeepaliveIntervalInSeconds() uint32 { + if x != nil { + return x.KeepaliveIntervalInSeconds + } + return 0 +} + +// Describing the status for each link on the Interconnect. +type InterconnectDiagnostics_LinkStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The unique ID for this link assigned during turn up by Google. + CircuitId string `protobuf:"bytes,1,opt,name=circuit_id,json=circuitId,proto3" json:"circuit_id,omitempty"` + // Describing the state of a LACP link. + LacpStatus *InterconnectDiagnostics_LinkLACPStatus `protobuf:"bytes,2,opt,name=lacp_status,json=lacpStatus,proto3" json:"lacp_status,omitempty"` + // A list of LinkLLDPStatus objects, used to describe LLDP status of each + // peer for each link on the Interconnect. + LldpStatuses []*InterconnectDiagnostics_LinkLLDPStatus `protobuf:"bytes,3,rep,name=lldp_statuses,json=lldpStatuses,proto3" json:"lldp_statuses,omitempty"` + // Packet counts specific statistics for this link. + PacketCounts *InterconnectDiagnostics_PacketCounts `protobuf:"bytes,4,opt,name=packet_counts,json=packetCounts,proto3" json:"packet_counts,omitempty"` +} + +func (x *InterconnectDiagnostics_LinkStatus) Reset() { + *x = InterconnectDiagnostics_LinkStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InterconnectDiagnostics_LinkStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InterconnectDiagnostics_LinkStatus) ProtoMessage() {} + +func (x *InterconnectDiagnostics_LinkStatus) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InterconnectDiagnostics_LinkStatus.ProtoReflect.Descriptor instead. +func (*InterconnectDiagnostics_LinkStatus) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDescGZIP(), []int{8, 0} +} + +func (x *InterconnectDiagnostics_LinkStatus) GetCircuitId() string { + if x != nil { + return x.CircuitId + } + return "" +} + +func (x *InterconnectDiagnostics_LinkStatus) GetLacpStatus() *InterconnectDiagnostics_LinkLACPStatus { + if x != nil { + return x.LacpStatus + } + return nil +} + +func (x *InterconnectDiagnostics_LinkStatus) GetLldpStatuses() []*InterconnectDiagnostics_LinkLLDPStatus { + if x != nil { + return x.LldpStatuses + } + return nil +} + +func (x *InterconnectDiagnostics_LinkStatus) GetPacketCounts() *InterconnectDiagnostics_PacketCounts { + if x != nil { + return x.PacketCounts + } + return nil +} + +// Containing a collection of interface-related statistics objects. +type InterconnectDiagnostics_PacketCounts struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The number of packets that are delivered. + InboundUnicast int64 `protobuf:"varint,1,opt,name=inbound_unicast,json=inboundUnicast,proto3" json:"inbound_unicast,omitempty"` + // The number of inbound packets that contained errors. + InboundErrors int64 `protobuf:"varint,2,opt,name=inbound_errors,json=inboundErrors,proto3" json:"inbound_errors,omitempty"` + // The number of inbound packets that were chosen to be discarded even + // though no errors had been detected to prevent their being deliverable. + InboundDiscards int64 `protobuf:"varint,3,opt,name=inbound_discards,json=inboundDiscards,proto3" json:"inbound_discards,omitempty"` + // The total number of packets that are requested be transmitted. + OutboundUnicast int64 `protobuf:"varint,4,opt,name=outbound_unicast,json=outboundUnicast,proto3" json:"outbound_unicast,omitempty"` + // The number of outbound packets that could not be transmitted because of + // errors. + OutboundErrors int64 `protobuf:"varint,5,opt,name=outbound_errors,json=outboundErrors,proto3" json:"outbound_errors,omitempty"` + // The number of outbound packets that were chosen to be discarded even + // though no errors had been detected to prevent their being transmitted. + OutboundDiscards int64 `protobuf:"varint,6,opt,name=outbound_discards,json=outboundDiscards,proto3" json:"outbound_discards,omitempty"` +} + +func (x *InterconnectDiagnostics_PacketCounts) Reset() { + *x = InterconnectDiagnostics_PacketCounts{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InterconnectDiagnostics_PacketCounts) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InterconnectDiagnostics_PacketCounts) ProtoMessage() {} + +func (x *InterconnectDiagnostics_PacketCounts) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InterconnectDiagnostics_PacketCounts.ProtoReflect.Descriptor instead. +func (*InterconnectDiagnostics_PacketCounts) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDescGZIP(), []int{8, 1} +} + +func (x *InterconnectDiagnostics_PacketCounts) GetInboundUnicast() int64 { + if x != nil { + return x.InboundUnicast + } + return 0 +} + +func (x *InterconnectDiagnostics_PacketCounts) GetInboundErrors() int64 { + if x != nil { + return x.InboundErrors + } + return 0 +} + +func (x *InterconnectDiagnostics_PacketCounts) GetInboundDiscards() int64 { + if x != nil { + return x.InboundDiscards + } + return 0 +} + +func (x *InterconnectDiagnostics_PacketCounts) GetOutboundUnicast() int64 { + if x != nil { + return x.OutboundUnicast + } + return 0 +} + +func (x *InterconnectDiagnostics_PacketCounts) GetOutboundErrors() int64 { + if x != nil { + return x.OutboundErrors + } + return 0 +} + +func (x *InterconnectDiagnostics_PacketCounts) GetOutboundDiscards() int64 { + if x != nil { + return x.OutboundDiscards + } + return 0 +} + +// Describing the status of a LACP link. +type InterconnectDiagnostics_LinkLACPStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The state of a LACP link. + State InterconnectDiagnostics_LinkLACPStatus_State `protobuf:"varint,1,opt,name=state,proto3,enum=mockgcp.cloud.edgenetwork.v1.InterconnectDiagnostics_LinkLACPStatus_State" json:"state,omitempty"` + // System ID of the port on Google's side of the LACP exchange. + GoogleSystemId string `protobuf:"bytes,2,opt,name=google_system_id,json=googleSystemId,proto3" json:"google_system_id,omitempty"` + // System ID of the port on the neighbor's side of the LACP exchange. + NeighborSystemId string `protobuf:"bytes,3,opt,name=neighbor_system_id,json=neighborSystemId,proto3" json:"neighbor_system_id,omitempty"` + // A true value indicates that the participant will allow the link to be + // used as part of the aggregate. + // A false value indicates the link should be used as an individual link. + Aggregatable bool `protobuf:"varint,4,opt,name=aggregatable,proto3" json:"aggregatable,omitempty"` + // If true, the participant is collecting incoming frames on the link, + // otherwise false + Collecting bool `protobuf:"varint,5,opt,name=collecting,proto3" json:"collecting,omitempty"` + // When true, the participant is distributing outgoing frames; when false, + // distribution is disabled + Distributing bool `protobuf:"varint,6,opt,name=distributing,proto3" json:"distributing,omitempty"` +} + +func (x *InterconnectDiagnostics_LinkLACPStatus) Reset() { + *x = InterconnectDiagnostics_LinkLACPStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InterconnectDiagnostics_LinkLACPStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InterconnectDiagnostics_LinkLACPStatus) ProtoMessage() {} + +func (x *InterconnectDiagnostics_LinkLACPStatus) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InterconnectDiagnostics_LinkLACPStatus.ProtoReflect.Descriptor instead. +func (*InterconnectDiagnostics_LinkLACPStatus) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDescGZIP(), []int{8, 2} +} + +func (x *InterconnectDiagnostics_LinkLACPStatus) GetState() InterconnectDiagnostics_LinkLACPStatus_State { + if x != nil { + return x.State + } + return InterconnectDiagnostics_LinkLACPStatus_UNKNOWN +} + +func (x *InterconnectDiagnostics_LinkLACPStatus) GetGoogleSystemId() string { + if x != nil { + return x.GoogleSystemId + } + return "" +} + +func (x *InterconnectDiagnostics_LinkLACPStatus) GetNeighborSystemId() string { + if x != nil { + return x.NeighborSystemId + } + return "" +} + +func (x *InterconnectDiagnostics_LinkLACPStatus) GetAggregatable() bool { + if x != nil { + return x.Aggregatable + } + return false +} + +func (x *InterconnectDiagnostics_LinkLACPStatus) GetCollecting() bool { + if x != nil { + return x.Collecting + } + return false +} + +func (x *InterconnectDiagnostics_LinkLACPStatus) GetDistributing() bool { + if x != nil { + return x.Distributing + } + return false +} + +// Describing a LLDP link. +type InterconnectDiagnostics_LinkLLDPStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The peer system's administratively assigned name. + PeerSystemName string `protobuf:"bytes,1,opt,name=peer_system_name,json=peerSystemName,proto3" json:"peer_system_name,omitempty"` + // The textual description of the network entity of LLDP peer. + PeerSystemDescription string `protobuf:"bytes,2,opt,name=peer_system_description,json=peerSystemDescription,proto3" json:"peer_system_description,omitempty"` + // The peer chassis component of the endpoint identifier associated with the + // transmitting LLDP agent. + PeerChassisId string `protobuf:"bytes,3,opt,name=peer_chassis_id,json=peerChassisId,proto3" json:"peer_chassis_id,omitempty"` + // The format and source of the peer chassis identifier string. + PeerChassisIdType string `protobuf:"bytes,4,opt,name=peer_chassis_id_type,json=peerChassisIdType,proto3" json:"peer_chassis_id_type,omitempty"` + // The port component of the endpoint identifier associated with the + // transmitting LLDP agent. If the specified port is an IEEE 802.3 Repeater + // port, then this TLV is optional. + PeerPortId string `protobuf:"bytes,5,opt,name=peer_port_id,json=peerPortId,proto3" json:"peer_port_id,omitempty"` + // The format and source of the peer port identifier string. + PeerPortIdType string `protobuf:"bytes,6,opt,name=peer_port_id_type,json=peerPortIdType,proto3" json:"peer_port_id_type,omitempty"` +} + +func (x *InterconnectDiagnostics_LinkLLDPStatus) Reset() { + *x = InterconnectDiagnostics_LinkLLDPStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InterconnectDiagnostics_LinkLLDPStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InterconnectDiagnostics_LinkLLDPStatus) ProtoMessage() {} + +func (x *InterconnectDiagnostics_LinkLLDPStatus) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InterconnectDiagnostics_LinkLLDPStatus.ProtoReflect.Descriptor instead. +func (*InterconnectDiagnostics_LinkLLDPStatus) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDescGZIP(), []int{8, 3} +} + +func (x *InterconnectDiagnostics_LinkLLDPStatus) GetPeerSystemName() string { + if x != nil { + return x.PeerSystemName + } + return "" +} + +func (x *InterconnectDiagnostics_LinkLLDPStatus) GetPeerSystemDescription() string { + if x != nil { + return x.PeerSystemDescription + } + return "" +} + +func (x *InterconnectDiagnostics_LinkLLDPStatus) GetPeerChassisId() string { + if x != nil { + return x.PeerChassisId + } + return "" +} + +func (x *InterconnectDiagnostics_LinkLLDPStatus) GetPeerChassisIdType() string { + if x != nil { + return x.PeerChassisIdType + } + return "" +} + +func (x *InterconnectDiagnostics_LinkLLDPStatus) GetPeerPortId() string { + if x != nil { + return x.PeerPortId + } + return "" +} + +func (x *InterconnectDiagnostics_LinkLLDPStatus) GetPeerPortIdType() string { + if x != nil { + return x.PeerPortIdType + } + return "" +} + +// Status of a BGP peer. +type RouterStatus_BgpPeerStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Name of this BGP peer. Unique within the Routers resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // IP address of the local BGP interface. + IpAddress string `protobuf:"bytes,2,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"` + // IP address of the remote BGP interface. + PeerIpAddress string `protobuf:"bytes,3,opt,name=peer_ip_address,json=peerIpAddress,proto3" json:"peer_ip_address,omitempty"` + // The current status of BGP. + Status RouterStatus_BgpPeerStatus_BgpStatus `protobuf:"varint,4,opt,name=status,proto3,enum=mockgcp.cloud.edgenetwork.v1.RouterStatus_BgpPeerStatus_BgpStatus" json:"status,omitempty"` + // BGP state as specified in RFC1771. + State string `protobuf:"bytes,5,opt,name=state,proto3" json:"state,omitempty"` + // Time this session has been up. + // Format: + // + // 14 years, 51 weeks, 6 days, 23 hours, 59 minutes, 59 seconds + Uptime string `protobuf:"bytes,6,opt,name=uptime,proto3" json:"uptime,omitempty"` + // Time this session has been up, in seconds. + UptimeSeconds int64 `protobuf:"varint,7,opt,name=uptime_seconds,json=uptimeSeconds,proto3" json:"uptime_seconds,omitempty"` + // A collection of counts for prefixes. + PrefixCounter *RouterStatus_PrefixCounter `protobuf:"bytes,8,opt,name=prefix_counter,json=prefixCounter,proto3" json:"prefix_counter,omitempty"` +} + +func (x *RouterStatus_BgpPeerStatus) Reset() { + *x = RouterStatus_BgpPeerStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RouterStatus_BgpPeerStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RouterStatus_BgpPeerStatus) ProtoMessage() {} + +func (x *RouterStatus_BgpPeerStatus) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RouterStatus_BgpPeerStatus.ProtoReflect.Descriptor instead. +func (*RouterStatus_BgpPeerStatus) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDescGZIP(), []int{9, 0} +} + +func (x *RouterStatus_BgpPeerStatus) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *RouterStatus_BgpPeerStatus) GetIpAddress() string { + if x != nil { + return x.IpAddress + } + return "" +} + +func (x *RouterStatus_BgpPeerStatus) GetPeerIpAddress() string { + if x != nil { + return x.PeerIpAddress + } + return "" +} + +func (x *RouterStatus_BgpPeerStatus) GetStatus() RouterStatus_BgpPeerStatus_BgpStatus { + if x != nil { + return x.Status + } + return RouterStatus_BgpPeerStatus_UNKNOWN +} + +func (x *RouterStatus_BgpPeerStatus) GetState() string { + if x != nil { + return x.State + } + return "" +} + +func (x *RouterStatus_BgpPeerStatus) GetUptime() string { + if x != nil { + return x.Uptime + } + return "" +} + +func (x *RouterStatus_BgpPeerStatus) GetUptimeSeconds() int64 { + if x != nil { + return x.UptimeSeconds + } + return 0 +} + +func (x *RouterStatus_BgpPeerStatus) GetPrefixCounter() *RouterStatus_PrefixCounter { + if x != nil { + return x.PrefixCounter + } + return nil +} + +// PrefixCounter contains a collection of prefixes related counts. +type RouterStatus_PrefixCounter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Number of prefixes advertised. + Advertised int64 `protobuf:"varint,1,opt,name=advertised,proto3" json:"advertised,omitempty"` + // Number of prefixes denied. + Denied int64 `protobuf:"varint,2,opt,name=denied,proto3" json:"denied,omitempty"` + // Number of prefixes received. + Received int64 `protobuf:"varint,3,opt,name=received,proto3" json:"received,omitempty"` + // Number of prefixes sent. + Sent int64 `protobuf:"varint,4,opt,name=sent,proto3" json:"sent,omitempty"` + // Number of prefixes suppressed. + Suppressed int64 `protobuf:"varint,5,opt,name=suppressed,proto3" json:"suppressed,omitempty"` + // Number of prefixes withdrawn. + Withdrawn int64 `protobuf:"varint,6,opt,name=withdrawn,proto3" json:"withdrawn,omitempty"` +} + +func (x *RouterStatus_PrefixCounter) Reset() { + *x = RouterStatus_PrefixCounter{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RouterStatus_PrefixCounter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RouterStatus_PrefixCounter) ProtoMessage() {} + +func (x *RouterStatus_PrefixCounter) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RouterStatus_PrefixCounter.ProtoReflect.Descriptor instead. +func (*RouterStatus_PrefixCounter) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDescGZIP(), []int{9, 1} +} + +func (x *RouterStatus_PrefixCounter) GetAdvertised() int64 { + if x != nil { + return x.Advertised + } + return 0 +} + +func (x *RouterStatus_PrefixCounter) GetDenied() int64 { + if x != nil { + return x.Denied + } + return 0 +} + +func (x *RouterStatus_PrefixCounter) GetReceived() int64 { + if x != nil { + return x.Received + } + return 0 +} + +func (x *RouterStatus_PrefixCounter) GetSent() int64 { + if x != nil { + return x.Sent + } + return 0 +} + +func (x *RouterStatus_PrefixCounter) GetSuppressed() int64 { + if x != nil { + return x.Suppressed + } + return 0 +} + +func (x *RouterStatus_PrefixCounter) GetWithdrawn() int64 { + if x != nil { + return x.Withdrawn + } + return 0 +} + +var File_mockgcp_cloud_edgenetwork_v1_resources_proto protoreflect.FileDescriptor + +var file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDesc = []byte{ + 0x0a, 0x2c, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, + 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x76, 0x31, 0x2f, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1c, + 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, + 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, + 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa3, 0x03, 0x0a, 0x04, 0x5a, 0x6f, + 0x6e, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, + 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x46, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2e, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x5a, + 0x6f, 0x6e, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x61, 0x79, 0x6f, 0x75, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x61, + 0x79, 0x6f, 0x75, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x3a, 0x5a, 0xea, 0x41, 0x57, 0x0a, 0x1f, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x34, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x7d, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x7b, 0x7a, 0x6f, 0x6e, 0x65, 0x7d, 0x22, + 0xd7, 0x03, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x49, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, + 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x74, + 0x75, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x1a, 0x39, 0x0a, 0x0b, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x70, 0xea, 0x41, 0x6d, 0x0a, 0x22, 0x65, 0x64, + 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x12, 0x47, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, + 0x7b, 0x7a, 0x6f, 0x6e, 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, + 0x7b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x7d, 0x22, 0xa6, 0x05, 0x0a, 0x06, 0x53, 0x75, + 0x62, 0x6e, 0x65, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, + 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x48, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x30, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x25, 0x0a, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x65, 0x64, 0x67, + 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, + 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x63, 0x69, 0x64, 0x72, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x69, 0x70, 0x76, + 0x34, 0x43, 0x69, 0x64, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x63, 0x69, + 0x64, 0x72, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x69, 0x70, 0x76, 0x36, 0x43, 0x69, + 0x64, 0x72, 0x12, 0x1c, 0x0a, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x76, 0x6c, 0x61, 0x6e, 0x49, 0x64, + 0x12, 0x46, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2b, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x3a, 0x6d, 0xea, 0x41, 0x6a, 0x0a, 0x21, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x12, 0x45, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x7b, 0x7a, 0x6f, 0x6e, 0x65, + 0x7d, 0x2f, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x73, 0x75, 0x62, 0x6e, 0x65, + 0x74, 0x7d, 0x22, 0x9a, 0x06, 0x0a, 0x0c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, + 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x4e, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x36, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6d, 0x0a, 0x11, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, + 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, + 0x40, 0x0a, 0x1a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x17, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x2a, 0x0a, 0x0e, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, + 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x1a, 0x39, 0x0a, + 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x44, 0x0a, 0x10, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x1d, + 0x49, 0x4e, 0x54, 0x45, 0x52, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x0d, 0x0a, 0x09, 0x44, 0x45, 0x44, 0x49, 0x43, 0x41, 0x54, 0x45, 0x44, 0x10, 0x01, 0x3a, 0x7f, + 0xea, 0x41, 0x7c, 0x0a, 0x27, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x51, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, + 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x7b, 0x7a, 0x6f, 0x6e, + 0x65, 0x7d, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x7b, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x7d, 0x22, + 0xa6, 0x06, 0x0a, 0x16, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x58, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, + 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x53, 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x29, 0x0a, 0x27, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, + 0x0c, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x44, 0x0a, + 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, + 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x12, 0x1c, 0x0a, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x6c, 0x61, 0x6e, 0x49, + 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x6d, 0x74, 0x75, 0x12, 0x46, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, + 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x9f, 0x01, 0xea, 0x41, 0x9b, 0x01, 0x0a, 0x31, 0x65, + 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x66, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, + 0x7b, 0x7a, 0x6f, 0x6e, 0x65, 0x7d, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x61, 0x74, 0x74, + 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x7d, 0x22, 0xbd, 0x0a, 0x0a, 0x06, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, + 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x48, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x30, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x44, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x65, 0x64, 0x67, 0x65, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x07, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6d, 0x6f, 0x63, + 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x47, 0x0a, 0x08, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x65, 0x65, + 0x72, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, + 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2e, 0x42, 0x67, + 0x70, 0x50, 0x65, 0x65, 0x72, 0x52, 0x07, 0x62, 0x67, 0x70, 0x50, 0x65, 0x65, 0x72, 0x12, 0x3a, + 0x0a, 0x03, 0x62, 0x67, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6d, 0x6f, + 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x03, 0x62, 0x67, 0x70, 0x12, 0x46, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, + 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x36, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, + 0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, + 0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0xd6, 0x01, 0x0a, 0x09, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, + 0x69, 0x70, 0x76, 0x34, 0x5f, 0x63, 0x69, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x69, 0x70, 0x76, 0x34, 0x43, 0x69, 0x64, 0x72, 0x12, 0x44, 0x0a, 0x1e, 0x6c, 0x69, 0x6e, + 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x1c, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x1e, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, + 0x32, 0x0a, 0x15, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x70, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, + 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x73, 0x1a, 0xac, 0x01, 0x0a, 0x07, 0x42, 0x67, 0x70, 0x50, 0x65, 0x65, 0x72, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x63, 0x69, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x43, 0x69, 0x64, + 0x72, 0x12, 0x24, 0x0a, 0x0e, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x63, + 0x69, 0x64, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x65, 0x65, 0x72, 0x49, + 0x70, 0x76, 0x34, 0x43, 0x69, 0x64, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x65, 0x65, 0x72, 0x5f, + 0x61, 0x73, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, 0x41, + 0x73, 0x6e, 0x1a, 0x5a, 0x0a, 0x03, 0x42, 0x67, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x73, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x61, 0x73, 0x6e, 0x12, 0x41, 0x0a, 0x1d, 0x6b, + 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x5f, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x1a, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x1a, 0x39, + 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x6d, 0xea, 0x41, 0x6a, 0x0a, 0x21, + 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x12, 0x45, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, + 0x2f, 0x7b, 0x7a, 0x6f, 0x6e, 0x65, 0x7d, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x2f, + 0x7b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x7d, 0x22, 0x52, 0x0a, 0x10, 0x4c, 0x69, 0x6e, 0x6b, + 0x4c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, + 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1d, 0x0a, + 0x0a, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xa5, 0x01, 0x0a, + 0x0c, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x60, 0x0a, 0x14, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2e, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x69, 0x6e, 0x6b, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x52, 0x12, 0x6c, 0x69, 0x6e, 0x6b, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x65, 0x73, 0x22, 0xea, 0x0b, 0x0a, 0x17, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, + 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x60, 0x0a, 0x14, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2e, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x69, 0x6e, 0x6b, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, + 0x12, 0x6c, 0x69, 0x6e, 0x6b, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, + 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x44, 0x69, + 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x1a, 0xe6, 0x02, 0x0a, 0x0a, + 0x4c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x69, + 0x72, 0x63, 0x75, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x63, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x49, 0x64, 0x12, 0x65, 0x0a, 0x0b, 0x6c, 0x61, 0x63, + 0x70, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, + 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, + 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, + 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x4c, 0x41, 0x43, 0x50, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x0a, 0x6c, 0x61, 0x63, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x69, 0x0a, 0x0d, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, + 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x4c, + 0x69, 0x6e, 0x6b, 0x4c, 0x4c, 0x44, 0x50, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0c, 0x6c, + 0x6c, 0x64, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x12, 0x67, 0x0a, 0x0d, 0x70, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, + 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x44, 0x69, + 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x1a, 0x8a, 0x02, 0x0a, 0x0c, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, + 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, + 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x25, + 0x0a, 0x0e, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, + 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0f, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x73, + 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x75, 0x6e, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6f, 0x75, 0x74, 0x62, + 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x6f, + 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, + 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x10, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, + 0x73, 0x1a, 0xe2, 0x02, 0x0a, 0x0e, 0x4c, 0x69, 0x6e, 0x6b, 0x4c, 0x41, 0x43, 0x50, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x60, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x4a, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, + 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x44, + 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x4c, + 0x41, 0x43, 0x50, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x64, + 0x12, 0x2c, 0x0a, 0x12, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6e, 0x65, + 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x22, + 0x0a, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6e, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, + 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x2e, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, + 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x54, 0x41, + 0x43, 0x48, 0x45, 0x44, 0x10, 0x02, 0x1a, 0x98, 0x02, 0x0a, 0x0e, 0x4c, 0x69, 0x6e, 0x6b, 0x4c, + 0x4c, 0x44, 0x50, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x65, 0x65, + 0x72, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x65, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x73, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x70, 0x65, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x70, + 0x65, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x65, 0x65, 0x72, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, + 0x73, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x14, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x73, + 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x11, 0x70, 0x65, 0x65, 0x72, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x65, 0x65, 0x72, + 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x11, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x70, 0x65, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x96, 0x06, 0x0a, 0x0c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x41, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x27, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x07, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x60, 0x0a, 0x0f, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x65, 0x65, + 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, + 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, + 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x65, + 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0d, 0x62, 0x67, 0x70, 0x50, 0x65, 0x65, + 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, 0xa8, 0x03, 0x0a, 0x0d, 0x42, 0x67, 0x70, 0x50, + 0x65, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x0f, + 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x65, 0x65, 0x72, 0x49, 0x70, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x5a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x42, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x2e, 0x42, 0x67, 0x70, 0x50, 0x65, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x42, + 0x67, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x25, + 0x0a, 0x0e, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x5f, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, + 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, + 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x2a, 0x0a, 0x09, 0x42, 0x67, 0x70, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, + 0x12, 0x06, 0x0a, 0x02, 0x55, 0x50, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x4f, 0x57, 0x4e, + 0x10, 0x02, 0x1a, 0xb5, 0x01, 0x0a, 0x0d, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, + 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, + 0x69, 0x73, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x65, 0x6e, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, + 0x73, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0a, 0x73, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, + 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x09, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x6e, 0x2a, 0x89, 0x01, 0x0a, 0x0d, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x11, 0x0a, 0x0d, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, + 0x11, 0x0a, 0x0d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, + 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x56, + 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, + 0x41, 0x54, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x13, 0x0a, + 0x0f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x55, 0x53, 0x50, 0x45, 0x4e, 0x44, 0x45, 0x44, + 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, + 0x54, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x42, 0x78, 0x0a, 0x1c, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, + 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x42, 0x0e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x46, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x2f, 0x76, 0x31, 0x3b, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDescOnce sync.Once + file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDescData = file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDesc +) + +func file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDescGZIP() []byte { + file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDescOnce.Do(func() { + file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDescData = protoimpl.X.CompressGZIP(file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDescData) + }) + return file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDescData +} + +var file_mockgcp_cloud_edgenetwork_v1_resources_proto_enumTypes = make([]protoimpl.EnumInfo, 4) +var file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes = make([]protoimpl.MessageInfo, 25) +var file_mockgcp_cloud_edgenetwork_v1_resources_proto_goTypes = []interface{}{ + (ResourceState)(0), // 0: mockgcp.cloud.edgenetwork.v1.ResourceState + (Interconnect_InterconnectType)(0), // 1: mockgcp.cloud.edgenetwork.v1.Interconnect.InterconnectType + (InterconnectDiagnostics_LinkLACPStatus_State)(0), // 2: mockgcp.cloud.edgenetwork.v1.InterconnectDiagnostics.LinkLACPStatus.State + (RouterStatus_BgpPeerStatus_BgpStatus)(0), // 3: mockgcp.cloud.edgenetwork.v1.RouterStatus.BgpPeerStatus.BgpStatus + (*Zone)(nil), // 4: mockgcp.cloud.edgenetwork.v1.Zone + (*Network)(nil), // 5: mockgcp.cloud.edgenetwork.v1.Network + (*Subnet)(nil), // 6: mockgcp.cloud.edgenetwork.v1.Subnet + (*Interconnect)(nil), // 7: mockgcp.cloud.edgenetwork.v1.Interconnect + (*InterconnectAttachment)(nil), // 8: mockgcp.cloud.edgenetwork.v1.InterconnectAttachment + (*Router)(nil), // 9: mockgcp.cloud.edgenetwork.v1.Router + (*LinkLayerAddress)(nil), // 10: mockgcp.cloud.edgenetwork.v1.LinkLayerAddress + (*SubnetStatus)(nil), // 11: mockgcp.cloud.edgenetwork.v1.SubnetStatus + (*InterconnectDiagnostics)(nil), // 12: mockgcp.cloud.edgenetwork.v1.InterconnectDiagnostics + (*RouterStatus)(nil), // 13: mockgcp.cloud.edgenetwork.v1.RouterStatus + nil, // 14: mockgcp.cloud.edgenetwork.v1.Zone.LabelsEntry + nil, // 15: mockgcp.cloud.edgenetwork.v1.Network.LabelsEntry + nil, // 16: mockgcp.cloud.edgenetwork.v1.Subnet.LabelsEntry + nil, // 17: mockgcp.cloud.edgenetwork.v1.Interconnect.LabelsEntry + nil, // 18: mockgcp.cloud.edgenetwork.v1.InterconnectAttachment.LabelsEntry + (*Router_Interface)(nil), // 19: mockgcp.cloud.edgenetwork.v1.Router.Interface + (*Router_BgpPeer)(nil), // 20: mockgcp.cloud.edgenetwork.v1.Router.BgpPeer + (*Router_Bgp)(nil), // 21: mockgcp.cloud.edgenetwork.v1.Router.Bgp + nil, // 22: mockgcp.cloud.edgenetwork.v1.Router.LabelsEntry + (*InterconnectDiagnostics_LinkStatus)(nil), // 23: mockgcp.cloud.edgenetwork.v1.InterconnectDiagnostics.LinkStatus + (*InterconnectDiagnostics_PacketCounts)(nil), // 24: mockgcp.cloud.edgenetwork.v1.InterconnectDiagnostics.PacketCounts + (*InterconnectDiagnostics_LinkLACPStatus)(nil), // 25: mockgcp.cloud.edgenetwork.v1.InterconnectDiagnostics.LinkLACPStatus + (*InterconnectDiagnostics_LinkLLDPStatus)(nil), // 26: mockgcp.cloud.edgenetwork.v1.InterconnectDiagnostics.LinkLLDPStatus + (*RouterStatus_BgpPeerStatus)(nil), // 27: mockgcp.cloud.edgenetwork.v1.RouterStatus.BgpPeerStatus + (*RouterStatus_PrefixCounter)(nil), // 28: mockgcp.cloud.edgenetwork.v1.RouterStatus.PrefixCounter + (*timestamp.Timestamp)(nil), // 29: google.protobuf.Timestamp +} +var file_mockgcp_cloud_edgenetwork_v1_resources_proto_depIdxs = []int32{ + 29, // 0: mockgcp.cloud.edgenetwork.v1.Zone.create_time:type_name -> google.protobuf.Timestamp + 29, // 1: mockgcp.cloud.edgenetwork.v1.Zone.update_time:type_name -> google.protobuf.Timestamp + 14, // 2: mockgcp.cloud.edgenetwork.v1.Zone.labels:type_name -> mockgcp.cloud.edgenetwork.v1.Zone.LabelsEntry + 29, // 3: mockgcp.cloud.edgenetwork.v1.Network.create_time:type_name -> google.protobuf.Timestamp + 29, // 4: mockgcp.cloud.edgenetwork.v1.Network.update_time:type_name -> google.protobuf.Timestamp + 15, // 5: mockgcp.cloud.edgenetwork.v1.Network.labels:type_name -> mockgcp.cloud.edgenetwork.v1.Network.LabelsEntry + 29, // 6: mockgcp.cloud.edgenetwork.v1.Subnet.create_time:type_name -> google.protobuf.Timestamp + 29, // 7: mockgcp.cloud.edgenetwork.v1.Subnet.update_time:type_name -> google.protobuf.Timestamp + 16, // 8: mockgcp.cloud.edgenetwork.v1.Subnet.labels:type_name -> mockgcp.cloud.edgenetwork.v1.Subnet.LabelsEntry + 0, // 9: mockgcp.cloud.edgenetwork.v1.Subnet.state:type_name -> mockgcp.cloud.edgenetwork.v1.ResourceState + 29, // 10: mockgcp.cloud.edgenetwork.v1.Interconnect.create_time:type_name -> google.protobuf.Timestamp + 29, // 11: mockgcp.cloud.edgenetwork.v1.Interconnect.update_time:type_name -> google.protobuf.Timestamp + 17, // 12: mockgcp.cloud.edgenetwork.v1.Interconnect.labels:type_name -> mockgcp.cloud.edgenetwork.v1.Interconnect.LabelsEntry + 1, // 13: mockgcp.cloud.edgenetwork.v1.Interconnect.interconnect_type:type_name -> mockgcp.cloud.edgenetwork.v1.Interconnect.InterconnectType + 29, // 14: mockgcp.cloud.edgenetwork.v1.InterconnectAttachment.create_time:type_name -> google.protobuf.Timestamp + 29, // 15: mockgcp.cloud.edgenetwork.v1.InterconnectAttachment.update_time:type_name -> google.protobuf.Timestamp + 18, // 16: mockgcp.cloud.edgenetwork.v1.InterconnectAttachment.labels:type_name -> mockgcp.cloud.edgenetwork.v1.InterconnectAttachment.LabelsEntry + 0, // 17: mockgcp.cloud.edgenetwork.v1.InterconnectAttachment.state:type_name -> mockgcp.cloud.edgenetwork.v1.ResourceState + 29, // 18: mockgcp.cloud.edgenetwork.v1.Router.create_time:type_name -> google.protobuf.Timestamp + 29, // 19: mockgcp.cloud.edgenetwork.v1.Router.update_time:type_name -> google.protobuf.Timestamp + 22, // 20: mockgcp.cloud.edgenetwork.v1.Router.labels:type_name -> mockgcp.cloud.edgenetwork.v1.Router.LabelsEntry + 19, // 21: mockgcp.cloud.edgenetwork.v1.Router.interface:type_name -> mockgcp.cloud.edgenetwork.v1.Router.Interface + 20, // 22: mockgcp.cloud.edgenetwork.v1.Router.bgp_peer:type_name -> mockgcp.cloud.edgenetwork.v1.Router.BgpPeer + 21, // 23: mockgcp.cloud.edgenetwork.v1.Router.bgp:type_name -> mockgcp.cloud.edgenetwork.v1.Router.Bgp + 0, // 24: mockgcp.cloud.edgenetwork.v1.Router.state:type_name -> mockgcp.cloud.edgenetwork.v1.ResourceState + 10, // 25: mockgcp.cloud.edgenetwork.v1.SubnetStatus.link_layer_addresses:type_name -> mockgcp.cloud.edgenetwork.v1.LinkLayerAddress + 10, // 26: mockgcp.cloud.edgenetwork.v1.InterconnectDiagnostics.link_layer_addresses:type_name -> mockgcp.cloud.edgenetwork.v1.LinkLayerAddress + 23, // 27: mockgcp.cloud.edgenetwork.v1.InterconnectDiagnostics.links:type_name -> mockgcp.cloud.edgenetwork.v1.InterconnectDiagnostics.LinkStatus + 27, // 28: mockgcp.cloud.edgenetwork.v1.RouterStatus.bgp_peer_status:type_name -> mockgcp.cloud.edgenetwork.v1.RouterStatus.BgpPeerStatus + 25, // 29: mockgcp.cloud.edgenetwork.v1.InterconnectDiagnostics.LinkStatus.lacp_status:type_name -> mockgcp.cloud.edgenetwork.v1.InterconnectDiagnostics.LinkLACPStatus + 26, // 30: mockgcp.cloud.edgenetwork.v1.InterconnectDiagnostics.LinkStatus.lldp_statuses:type_name -> mockgcp.cloud.edgenetwork.v1.InterconnectDiagnostics.LinkLLDPStatus + 24, // 31: mockgcp.cloud.edgenetwork.v1.InterconnectDiagnostics.LinkStatus.packet_counts:type_name -> mockgcp.cloud.edgenetwork.v1.InterconnectDiagnostics.PacketCounts + 2, // 32: mockgcp.cloud.edgenetwork.v1.InterconnectDiagnostics.LinkLACPStatus.state:type_name -> mockgcp.cloud.edgenetwork.v1.InterconnectDiagnostics.LinkLACPStatus.State + 3, // 33: mockgcp.cloud.edgenetwork.v1.RouterStatus.BgpPeerStatus.status:type_name -> mockgcp.cloud.edgenetwork.v1.RouterStatus.BgpPeerStatus.BgpStatus + 28, // 34: mockgcp.cloud.edgenetwork.v1.RouterStatus.BgpPeerStatus.prefix_counter:type_name -> mockgcp.cloud.edgenetwork.v1.RouterStatus.PrefixCounter + 35, // [35:35] is the sub-list for method output_type + 35, // [35:35] is the sub-list for method input_type + 35, // [35:35] is the sub-list for extension type_name + 35, // [35:35] is the sub-list for extension extendee + 0, // [0:35] is the sub-list for field type_name +} + +func init() { file_mockgcp_cloud_edgenetwork_v1_resources_proto_init() } +func file_mockgcp_cloud_edgenetwork_v1_resources_proto_init() { + if File_mockgcp_cloud_edgenetwork_v1_resources_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Zone); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Network); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Subnet); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Interconnect); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InterconnectAttachment); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Router); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LinkLayerAddress); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubnetStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InterconnectDiagnostics); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RouterStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Router_Interface); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Router_BgpPeer); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Router_Bgp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InterconnectDiagnostics_LinkStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InterconnectDiagnostics_PacketCounts); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InterconnectDiagnostics_LinkLACPStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InterconnectDiagnostics_LinkLLDPStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RouterStatus_BgpPeerStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RouterStatus_PrefixCounter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDesc, + NumEnums: 4, + NumMessages: 25, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_mockgcp_cloud_edgenetwork_v1_resources_proto_goTypes, + DependencyIndexes: file_mockgcp_cloud_edgenetwork_v1_resources_proto_depIdxs, + EnumInfos: file_mockgcp_cloud_edgenetwork_v1_resources_proto_enumTypes, + MessageInfos: file_mockgcp_cloud_edgenetwork_v1_resources_proto_msgTypes, + }.Build() + File_mockgcp_cloud_edgenetwork_v1_resources_proto = out.File + file_mockgcp_cloud_edgenetwork_v1_resources_proto_rawDesc = nil + file_mockgcp_cloud_edgenetwork_v1_resources_proto_goTypes = nil + file_mockgcp_cloud_edgenetwork_v1_resources_proto_depIdxs = nil +} diff --git a/mockgcp/generated/mockgcp/cloud/edgenetwork/v1/service.pb.go b/mockgcp/generated/mockgcp/cloud/edgenetwork/v1/service.pb.go new file mode 100644 index 0000000000..38e8abfb8a --- /dev/null +++ b/mockgcp/generated/mockgcp/cloud/edgenetwork/v1/service.pb.go @@ -0,0 +1,4024 @@ +// Copyright 2022 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 +// +// http://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. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v3.12.4 +// source: mockgcp/cloud/edgenetwork/v1/service.proto + +package edgenetwork + +import ( + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + timestamp "github.com/golang/protobuf/ptypes/timestamp" + _ "google.golang.org/genproto/googleapis/api/annotations" + field_mask "google.golang.org/genproto/protobuf/field_mask" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Message for requesting list of Zones +type ListZonesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Parent value for ListZonesRequest + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Requested page size. Server may return fewer items than requested. + // If unspecified, server will pick an appropriate default. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A token identifying a page of results the server should return. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filtering results + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Hint for how to order the results + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListZonesRequest) Reset() { + *x = ListZonesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListZonesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListZonesRequest) ProtoMessage() {} + +func (x *ListZonesRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListZonesRequest.ProtoReflect.Descriptor instead. +func (*ListZonesRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{0} +} + +func (x *ListZonesRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListZonesRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListZonesRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListZonesRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListZonesRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Message for response to listing Zones +type ListZonesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of Zone + Zones []*Zone `protobuf:"bytes,1,rep,name=zones,proto3" json:"zones,omitempty"` + // A token identifying a page of results the server should return. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListZonesResponse) Reset() { + *x = ListZonesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListZonesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListZonesResponse) ProtoMessage() {} + +func (x *ListZonesResponse) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListZonesResponse.ProtoReflect.Descriptor instead. +func (*ListZonesResponse) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{1} +} + +func (x *ListZonesResponse) GetZones() []*Zone { + if x != nil { + return x.Zones + } + return nil +} + +func (x *ListZonesResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListZonesResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// Message for getting a Zone +type GetZoneRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetZoneRequest) Reset() { + *x = GetZoneRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetZoneRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetZoneRequest) ProtoMessage() {} + +func (x *GetZoneRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetZoneRequest.ProtoReflect.Descriptor instead. +func (*GetZoneRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{2} +} + +func (x *GetZoneRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Message for requesting list of Networks +type ListNetworksRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Parent value for ListNetworksRequest + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Requested page size. Server may return fewer items than requested. + // If unspecified, server will pick an appropriate default. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A token identifying a page of results the server should return. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filtering results + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Hint for how to order the results + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListNetworksRequest) Reset() { + *x = ListNetworksRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListNetworksRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListNetworksRequest) ProtoMessage() {} + +func (x *ListNetworksRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListNetworksRequest.ProtoReflect.Descriptor instead. +func (*ListNetworksRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{3} +} + +func (x *ListNetworksRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListNetworksRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListNetworksRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListNetworksRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListNetworksRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Message for response to listing Networks +type ListNetworksResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of Network + Networks []*Network `protobuf:"bytes,1,rep,name=networks,proto3" json:"networks,omitempty"` + // A token identifying a page of results the server should return. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListNetworksResponse) Reset() { + *x = ListNetworksResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListNetworksResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListNetworksResponse) ProtoMessage() {} + +func (x *ListNetworksResponse) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListNetworksResponse.ProtoReflect.Descriptor instead. +func (*ListNetworksResponse) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{4} +} + +func (x *ListNetworksResponse) GetNetworks() []*Network { + if x != nil { + return x.Networks + } + return nil +} + +func (x *ListNetworksResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListNetworksResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// Message for getting a Network +type GetNetworkRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetNetworkRequest) Reset() { + *x = GetNetworkRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetNetworkRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetNetworkRequest) ProtoMessage() {} + +func (x *GetNetworkRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetNetworkRequest.ProtoReflect.Descriptor instead. +func (*GetNetworkRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{5} +} + +func (x *GetNetworkRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Message for creating a Network +type CreateNetworkRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Value for parent. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. Id of the requesting object + // If auto-generating Id server-side, remove this field and + // network_id from the method_signature of Create RPC + NetworkId string `protobuf:"bytes,2,opt,name=network_id,json=networkId,proto3" json:"network_id,omitempty"` + // Required. The resource being created + Network *Network `protobuf:"bytes,3,opt,name=network,proto3" json:"network,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and t + // he request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *CreateNetworkRequest) Reset() { + *x = CreateNetworkRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateNetworkRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateNetworkRequest) ProtoMessage() {} + +func (x *CreateNetworkRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateNetworkRequest.ProtoReflect.Descriptor instead. +func (*CreateNetworkRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{6} +} + +func (x *CreateNetworkRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateNetworkRequest) GetNetworkId() string { + if x != nil { + return x.NetworkId + } + return "" +} + +func (x *CreateNetworkRequest) GetNetwork() *Network { + if x != nil { + return x.Network + } + return nil +} + +func (x *CreateNetworkRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for deleting a Network +type DeleteNetworkRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and t + // he request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *DeleteNetworkRequest) Reset() { + *x = DeleteNetworkRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteNetworkRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteNetworkRequest) ProtoMessage() {} + +func (x *DeleteNetworkRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteNetworkRequest.ProtoReflect.Descriptor instead. +func (*DeleteNetworkRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{7} +} + +func (x *DeleteNetworkRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteNetworkRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for requesting list of Subnets +type ListSubnetsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Parent value for ListSubnetsRequest + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Requested page size. Server may return fewer items than requested. + // If unspecified, server will pick an appropriate default. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A token identifying a page of results the server should return. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filtering results + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Hint for how to order the results + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListSubnetsRequest) Reset() { + *x = ListSubnetsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListSubnetsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListSubnetsRequest) ProtoMessage() {} + +func (x *ListSubnetsRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListSubnetsRequest.ProtoReflect.Descriptor instead. +func (*ListSubnetsRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{8} +} + +func (x *ListSubnetsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListSubnetsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListSubnetsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListSubnetsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListSubnetsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Message for response to listing Subnets +type ListSubnetsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of Subnet + Subnets []*Subnet `protobuf:"bytes,1,rep,name=subnets,proto3" json:"subnets,omitempty"` + // A token identifying a page of results the server should return. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListSubnetsResponse) Reset() { + *x = ListSubnetsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListSubnetsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListSubnetsResponse) ProtoMessage() {} + +func (x *ListSubnetsResponse) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListSubnetsResponse.ProtoReflect.Descriptor instead. +func (*ListSubnetsResponse) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{9} +} + +func (x *ListSubnetsResponse) GetSubnets() []*Subnet { + if x != nil { + return x.Subnets + } + return nil +} + +func (x *ListSubnetsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListSubnetsResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// Message for getting a Subnet +type GetSubnetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetSubnetRequest) Reset() { + *x = GetSubnetRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetSubnetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSubnetRequest) ProtoMessage() {} + +func (x *GetSubnetRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetSubnetRequest.ProtoReflect.Descriptor instead. +func (*GetSubnetRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{10} +} + +func (x *GetSubnetRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Message for creating a Subnet +type CreateSubnetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Value for parent. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. Id of the requesting object + // If auto-generating Id server-side, remove this field and + // subnet_id from the method_signature of Create RPC + SubnetId string `protobuf:"bytes,2,opt,name=subnet_id,json=subnetId,proto3" json:"subnet_id,omitempty"` + // Required. The resource being created + Subnet *Subnet `protobuf:"bytes,3,opt,name=subnet,proto3" json:"subnet,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and t + // he request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *CreateSubnetRequest) Reset() { + *x = CreateSubnetRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateSubnetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateSubnetRequest) ProtoMessage() {} + +func (x *CreateSubnetRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateSubnetRequest.ProtoReflect.Descriptor instead. +func (*CreateSubnetRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{11} +} + +func (x *CreateSubnetRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateSubnetRequest) GetSubnetId() string { + if x != nil { + return x.SubnetId + } + return "" +} + +func (x *CreateSubnetRequest) GetSubnet() *Subnet { + if x != nil { + return x.Subnet + } + return nil +} + +func (x *CreateSubnetRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for updating a Subnet +type UpdateSubnetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Field mask is used to specify the fields to be overwritten in the + // Subnet resource by the update. + // The fields specified in the update_mask are relative to the resource, not + // the full request. A field will be overwritten if it is in the mask. If the + // user does not provide a mask then all fields will be overwritten. + UpdateMask *field_mask.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // Required. The resource being updated + Subnet *Subnet `protobuf:"bytes,2,opt,name=subnet,proto3" json:"subnet,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and t + // he request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *UpdateSubnetRequest) Reset() { + *x = UpdateSubnetRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateSubnetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateSubnetRequest) ProtoMessage() {} + +func (x *UpdateSubnetRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateSubnetRequest.ProtoReflect.Descriptor instead. +func (*UpdateSubnetRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{12} +} + +func (x *UpdateSubnetRequest) GetUpdateMask() *field_mask.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +func (x *UpdateSubnetRequest) GetSubnet() *Subnet { + if x != nil { + return x.Subnet + } + return nil +} + +func (x *UpdateSubnetRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for deleting a Subnet +type DeleteSubnetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and t + // he request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *DeleteSubnetRequest) Reset() { + *x = DeleteSubnetRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteSubnetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteSubnetRequest) ProtoMessage() {} + +func (x *DeleteSubnetRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteSubnetRequest.ProtoReflect.Descriptor instead. +func (*DeleteSubnetRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{13} +} + +func (x *DeleteSubnetRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteSubnetRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for requesting list of Interconnects +type ListInterconnectsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Parent value for ListInterconnectsRequest + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Requested page size. Server may return fewer items than requested. + // If unspecified, server will pick an appropriate default. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A token identifying a page of results the server should return. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filtering results + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Hint for how to order the results + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListInterconnectsRequest) Reset() { + *x = ListInterconnectsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListInterconnectsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListInterconnectsRequest) ProtoMessage() {} + +func (x *ListInterconnectsRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListInterconnectsRequest.ProtoReflect.Descriptor instead. +func (*ListInterconnectsRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{14} +} + +func (x *ListInterconnectsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListInterconnectsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListInterconnectsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListInterconnectsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListInterconnectsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Message for response to listing Interconnects +type ListInterconnectsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of Interconnect + Interconnects []*Interconnect `protobuf:"bytes,1,rep,name=interconnects,proto3" json:"interconnects,omitempty"` + // A token identifying a page of results the server should return. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListInterconnectsResponse) Reset() { + *x = ListInterconnectsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListInterconnectsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListInterconnectsResponse) ProtoMessage() {} + +func (x *ListInterconnectsResponse) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListInterconnectsResponse.ProtoReflect.Descriptor instead. +func (*ListInterconnectsResponse) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{15} +} + +func (x *ListInterconnectsResponse) GetInterconnects() []*Interconnect { + if x != nil { + return x.Interconnects + } + return nil +} + +func (x *ListInterconnectsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListInterconnectsResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// Message for getting a Interconnect +type GetInterconnectRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetInterconnectRequest) Reset() { + *x = GetInterconnectRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetInterconnectRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetInterconnectRequest) ProtoMessage() {} + +func (x *GetInterconnectRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetInterconnectRequest.ProtoReflect.Descriptor instead. +func (*GetInterconnectRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{16} +} + +func (x *GetInterconnectRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Message for requesting list of InterconnectAttachments +type ListInterconnectAttachmentsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Parent value for ListInterconnectAttachmentsRequest + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Requested page size. Server may return fewer items than requested. + // If unspecified, server will pick an appropriate default. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A token identifying a page of results the server should return. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filtering results + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Hint for how to order the results + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListInterconnectAttachmentsRequest) Reset() { + *x = ListInterconnectAttachmentsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListInterconnectAttachmentsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListInterconnectAttachmentsRequest) ProtoMessage() {} + +func (x *ListInterconnectAttachmentsRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListInterconnectAttachmentsRequest.ProtoReflect.Descriptor instead. +func (*ListInterconnectAttachmentsRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{17} +} + +func (x *ListInterconnectAttachmentsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListInterconnectAttachmentsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListInterconnectAttachmentsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListInterconnectAttachmentsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListInterconnectAttachmentsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Message for response to listing InterconnectAttachments +type ListInterconnectAttachmentsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of InterconnectAttachment + InterconnectAttachments []*InterconnectAttachment `protobuf:"bytes,1,rep,name=interconnect_attachments,json=interconnectAttachments,proto3" json:"interconnect_attachments,omitempty"` + // A token identifying a page of results the server should return. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListInterconnectAttachmentsResponse) Reset() { + *x = ListInterconnectAttachmentsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListInterconnectAttachmentsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListInterconnectAttachmentsResponse) ProtoMessage() {} + +func (x *ListInterconnectAttachmentsResponse) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListInterconnectAttachmentsResponse.ProtoReflect.Descriptor instead. +func (*ListInterconnectAttachmentsResponse) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{18} +} + +func (x *ListInterconnectAttachmentsResponse) GetInterconnectAttachments() []*InterconnectAttachment { + if x != nil { + return x.InterconnectAttachments + } + return nil +} + +func (x *ListInterconnectAttachmentsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListInterconnectAttachmentsResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// Message for getting a InterconnectAttachment +type GetInterconnectAttachmentRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetInterconnectAttachmentRequest) Reset() { + *x = GetInterconnectAttachmentRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetInterconnectAttachmentRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetInterconnectAttachmentRequest) ProtoMessage() {} + +func (x *GetInterconnectAttachmentRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetInterconnectAttachmentRequest.ProtoReflect.Descriptor instead. +func (*GetInterconnectAttachmentRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{19} +} + +func (x *GetInterconnectAttachmentRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Message for creating a InterconnectAttachment +type CreateInterconnectAttachmentRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Value for parent. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. Id of the requesting object + // If auto-generating Id server-side, remove this field and + // interconnect_attachment_id from the method_signature of Create RPC + InterconnectAttachmentId string `protobuf:"bytes,2,opt,name=interconnect_attachment_id,json=interconnectAttachmentId,proto3" json:"interconnect_attachment_id,omitempty"` + // Required. The resource being created + InterconnectAttachment *InterconnectAttachment `protobuf:"bytes,3,opt,name=interconnect_attachment,json=interconnectAttachment,proto3" json:"interconnect_attachment,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and t + // he request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *CreateInterconnectAttachmentRequest) Reset() { + *x = CreateInterconnectAttachmentRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateInterconnectAttachmentRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateInterconnectAttachmentRequest) ProtoMessage() {} + +func (x *CreateInterconnectAttachmentRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateInterconnectAttachmentRequest.ProtoReflect.Descriptor instead. +func (*CreateInterconnectAttachmentRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{20} +} + +func (x *CreateInterconnectAttachmentRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateInterconnectAttachmentRequest) GetInterconnectAttachmentId() string { + if x != nil { + return x.InterconnectAttachmentId + } + return "" +} + +func (x *CreateInterconnectAttachmentRequest) GetInterconnectAttachment() *InterconnectAttachment { + if x != nil { + return x.InterconnectAttachment + } + return nil +} + +func (x *CreateInterconnectAttachmentRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for deleting a InterconnectAttachment +type DeleteInterconnectAttachmentRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and t + // he request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *DeleteInterconnectAttachmentRequest) Reset() { + *x = DeleteInterconnectAttachmentRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteInterconnectAttachmentRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteInterconnectAttachmentRequest) ProtoMessage() {} + +func (x *DeleteInterconnectAttachmentRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteInterconnectAttachmentRequest.ProtoReflect.Descriptor instead. +func (*DeleteInterconnectAttachmentRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{21} +} + +func (x *DeleteInterconnectAttachmentRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteInterconnectAttachmentRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for requesting list of Routers +type ListRoutersRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Parent value for ListRoutersRequest + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Requested page size. Server may return fewer items than requested. + // If unspecified, server will pick an appropriate default. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A token identifying a page of results the server should return. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filtering results + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Hint for how to order the results + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListRoutersRequest) Reset() { + *x = ListRoutersRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListRoutersRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRoutersRequest) ProtoMessage() {} + +func (x *ListRoutersRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListRoutersRequest.ProtoReflect.Descriptor instead. +func (*ListRoutersRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{22} +} + +func (x *ListRoutersRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListRoutersRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListRoutersRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListRoutersRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListRoutersRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Message for response to listing Routers +type ListRoutersResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of Router + Routers []*Router `protobuf:"bytes,1,rep,name=routers,proto3" json:"routers,omitempty"` + // A token identifying a page of results the server should return. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListRoutersResponse) Reset() { + *x = ListRoutersResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListRoutersResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRoutersResponse) ProtoMessage() {} + +func (x *ListRoutersResponse) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListRoutersResponse.ProtoReflect.Descriptor instead. +func (*ListRoutersResponse) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{23} +} + +func (x *ListRoutersResponse) GetRouters() []*Router { + if x != nil { + return x.Routers + } + return nil +} + +func (x *ListRoutersResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListRoutersResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// Message for getting a Router +type GetRouterRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetRouterRequest) Reset() { + *x = GetRouterRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetRouterRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetRouterRequest) ProtoMessage() {} + +func (x *GetRouterRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetRouterRequest.ProtoReflect.Descriptor instead. +func (*GetRouterRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{24} +} + +func (x *GetRouterRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Message for creating a Router +type CreateRouterRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Value for parent. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. Id of the requesting object + // If auto-generating Id server-side, remove this field and + // router_id from the method_signature of Create RPC + RouterId string `protobuf:"bytes,2,opt,name=router_id,json=routerId,proto3" json:"router_id,omitempty"` + // Required. The resource being created + Router *Router `protobuf:"bytes,3,opt,name=router,proto3" json:"router,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and t + // he request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *CreateRouterRequest) Reset() { + *x = CreateRouterRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateRouterRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateRouterRequest) ProtoMessage() {} + +func (x *CreateRouterRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateRouterRequest.ProtoReflect.Descriptor instead. +func (*CreateRouterRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{25} +} + +func (x *CreateRouterRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateRouterRequest) GetRouterId() string { + if x != nil { + return x.RouterId + } + return "" +} + +func (x *CreateRouterRequest) GetRouter() *Router { + if x != nil { + return x.Router + } + return nil +} + +func (x *CreateRouterRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for updating a Router +type UpdateRouterRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Field mask is used to specify the fields to be overwritten in the + // Router resource by the update. + // The fields specified in the update_mask are relative to the resource, not + // the full request. A field will be overwritten if it is in the mask. If the + // user does not provide a mask then all fields will be overwritten. + UpdateMask *field_mask.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // Required. The resource being updated + Router *Router `protobuf:"bytes,2,opt,name=router,proto3" json:"router,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and t + // he request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *UpdateRouterRequest) Reset() { + *x = UpdateRouterRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateRouterRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateRouterRequest) ProtoMessage() {} + +func (x *UpdateRouterRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateRouterRequest.ProtoReflect.Descriptor instead. +func (*UpdateRouterRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{26} +} + +func (x *UpdateRouterRequest) GetUpdateMask() *field_mask.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +func (x *UpdateRouterRequest) GetRouter() *Router { + if x != nil { + return x.Router + } + return nil +} + +func (x *UpdateRouterRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for deleting a Router +type DeleteRouterRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and t + // he request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *DeleteRouterRequest) Reset() { + *x = DeleteRouterRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteRouterRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteRouterRequest) ProtoMessage() {} + +func (x *DeleteRouterRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteRouterRequest.ProtoReflect.Descriptor instead. +func (*DeleteRouterRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{27} +} + +func (x *DeleteRouterRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteRouterRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Represents the metadata of the long-running operation. +type OperationMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. The time the operation was created. + CreateTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The time the operation finished running. + EndTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + // Output only. Server-defined resource path for the target of the operation. + Target string `protobuf:"bytes,3,opt,name=target,proto3" json:"target,omitempty"` + // Output only. Name of the verb executed by the operation. + Verb string `protobuf:"bytes,4,opt,name=verb,proto3" json:"verb,omitempty"` + // Output only. Human-readable status of the operation, if any. + StatusMessage string `protobuf:"bytes,5,opt,name=status_message,json=statusMessage,proto3" json:"status_message,omitempty"` + // Output only. Identifies whether the user has requested cancellation + // of the operation. Operations that have been cancelled successfully + // have [Operation.error][] value with a + // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to + // `Code.CANCELLED`. + RequestedCancellation bool `protobuf:"varint,6,opt,name=requested_cancellation,json=requestedCancellation,proto3" json:"requested_cancellation,omitempty"` + // Output only. API version used to start the operation. + ApiVersion string `protobuf:"bytes,7,opt,name=api_version,json=apiVersion,proto3" json:"api_version,omitempty"` +} + +func (x *OperationMetadata) Reset() { + *x = OperationMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OperationMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OperationMetadata) ProtoMessage() {} + +func (x *OperationMetadata) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OperationMetadata.ProtoReflect.Descriptor instead. +func (*OperationMetadata) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{28} +} + +func (x *OperationMetadata) GetCreateTime() *timestamp.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *OperationMetadata) GetEndTime() *timestamp.Timestamp { + if x != nil { + return x.EndTime + } + return nil +} + +func (x *OperationMetadata) GetTarget() string { + if x != nil { + return x.Target + } + return "" +} + +func (x *OperationMetadata) GetVerb() string { + if x != nil { + return x.Verb + } + return "" +} + +func (x *OperationMetadata) GetStatusMessage() string { + if x != nil { + return x.StatusMessage + } + return "" +} + +func (x *OperationMetadata) GetRequestedCancellation() bool { + if x != nil { + return x.RequestedCancellation + } + return false +} + +func (x *OperationMetadata) GetApiVersion() string { + if x != nil { + return x.ApiVersion + } + return "" +} + +// Message for requesting the diagnostics of a network within a specific zone. +type DiagnoseNetworkRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the network resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DiagnoseNetworkRequest) Reset() { + *x = DiagnoseNetworkRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DiagnoseNetworkRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DiagnoseNetworkRequest) ProtoMessage() {} + +func (x *DiagnoseNetworkRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DiagnoseNetworkRequest.ProtoReflect.Descriptor instead. +func (*DiagnoseNetworkRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{29} +} + +func (x *DiagnoseNetworkRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// DiagnoseNetworkResponse contains the current status for a specific network. +type DiagnoseNetworkResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The time when the network status was last updated. + UpdateTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // The network status of a specific network. + Result *DiagnoseNetworkResponse_NetworkStatus `protobuf:"bytes,2,opt,name=result,proto3" json:"result,omitempty"` +} + +func (x *DiagnoseNetworkResponse) Reset() { + *x = DiagnoseNetworkResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DiagnoseNetworkResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DiagnoseNetworkResponse) ProtoMessage() {} + +func (x *DiagnoseNetworkResponse) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DiagnoseNetworkResponse.ProtoReflect.Descriptor instead. +func (*DiagnoseNetworkResponse) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{30} +} + +func (x *DiagnoseNetworkResponse) GetUpdateTime() *timestamp.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *DiagnoseNetworkResponse) GetResult() *DiagnoseNetworkResponse_NetworkStatus { + if x != nil { + return x.Result + } + return nil +} + +// Message for requesting the diagnostics of an interconnect within a specific +// zone. +type DiagnoseInterconnectRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the interconnect resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DiagnoseInterconnectRequest) Reset() { + *x = DiagnoseInterconnectRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DiagnoseInterconnectRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DiagnoseInterconnectRequest) ProtoMessage() {} + +func (x *DiagnoseInterconnectRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DiagnoseInterconnectRequest.ProtoReflect.Descriptor instead. +func (*DiagnoseInterconnectRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{31} +} + +func (x *DiagnoseInterconnectRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// DiagnoseInterconnectResponse contains the current diagnostics for a +// specific interconnect. +type DiagnoseInterconnectResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The time when the interconnect diagnostics was last updated. + UpdateTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // The network status of a specific interconnect. + Result *InterconnectDiagnostics `protobuf:"bytes,2,opt,name=result,proto3" json:"result,omitempty"` +} + +func (x *DiagnoseInterconnectResponse) Reset() { + *x = DiagnoseInterconnectResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DiagnoseInterconnectResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DiagnoseInterconnectResponse) ProtoMessage() {} + +func (x *DiagnoseInterconnectResponse) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DiagnoseInterconnectResponse.ProtoReflect.Descriptor instead. +func (*DiagnoseInterconnectResponse) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{32} +} + +func (x *DiagnoseInterconnectResponse) GetUpdateTime() *timestamp.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *DiagnoseInterconnectResponse) GetResult() *InterconnectDiagnostics { + if x != nil { + return x.Result + } + return nil +} + +// Message for requesting diagnositcs of a router within a specific zone. +type DiagnoseRouterRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the router resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DiagnoseRouterRequest) Reset() { + *x = DiagnoseRouterRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DiagnoseRouterRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DiagnoseRouterRequest) ProtoMessage() {} + +func (x *DiagnoseRouterRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DiagnoseRouterRequest.ProtoReflect.Descriptor instead. +func (*DiagnoseRouterRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{33} +} + +func (x *DiagnoseRouterRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// DiagnoseRouterResponse contains the current status for a specific router. +type DiagnoseRouterResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The time when the router status was last updated. + UpdateTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // The network status of a specific router. + Result *RouterStatus `protobuf:"bytes,2,opt,name=result,proto3" json:"result,omitempty"` +} + +func (x *DiagnoseRouterResponse) Reset() { + *x = DiagnoseRouterResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DiagnoseRouterResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DiagnoseRouterResponse) ProtoMessage() {} + +func (x *DiagnoseRouterResponse) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DiagnoseRouterResponse.ProtoReflect.Descriptor instead. +func (*DiagnoseRouterResponse) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{34} +} + +func (x *DiagnoseRouterResponse) GetUpdateTime() *timestamp.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *DiagnoseRouterResponse) GetResult() *RouterStatus { + if x != nil { + return x.Result + } + return nil +} + +// Message for initializing a specified zone +type InitializeZoneRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the zone resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *InitializeZoneRequest) Reset() { + *x = InitializeZoneRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InitializeZoneRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InitializeZoneRequest) ProtoMessage() {} + +func (x *InitializeZoneRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InitializeZoneRequest.ProtoReflect.Descriptor instead. +func (*InitializeZoneRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{35} +} + +func (x *InitializeZoneRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// The response of initializing a zone +type InitializeZoneResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *InitializeZoneResponse) Reset() { + *x = InitializeZoneResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InitializeZoneResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InitializeZoneResponse) ProtoMessage() {} + +func (x *InitializeZoneResponse) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InitializeZoneResponse.ProtoReflect.Descriptor instead. +func (*InitializeZoneResponse) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{36} +} + +// NetworkStatus has a list of status for the subnets under the current +// network. +type DiagnoseNetworkResponse_NetworkStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A list of status for the subnets under the current network. + SubnetStatus []*SubnetStatus `protobuf:"bytes,1,rep,name=subnet_status,json=subnetStatus,proto3" json:"subnet_status,omitempty"` +} + +func (x *DiagnoseNetworkResponse_NetworkStatus) Reset() { + *x = DiagnoseNetworkResponse_NetworkStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DiagnoseNetworkResponse_NetworkStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DiagnoseNetworkResponse_NetworkStatus) ProtoMessage() {} + +func (x *DiagnoseNetworkResponse_NetworkStatus) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DiagnoseNetworkResponse_NetworkStatus.ProtoReflect.Descriptor instead. +func (*DiagnoseNetworkResponse_NetworkStatus) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP(), []int{30, 0} +} + +func (x *DiagnoseNetworkResponse_NetworkStatus) GetSubnetStatus() []*SubnetStatus { + if x != nil { + return x.SubnetStatus + } + return nil +} + +var File_mockgcp_cloud_edgenetwork_v1_service_proto protoreflect.FileDescriptor + +var file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDesc = []byte{ + 0x0a, 0x2a, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, + 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x76, 0x31, 0x2f, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1c, 0x6d, 0x6f, + 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2c, 0x6d, + 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x65, 0x64, 0x67, + 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2f, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x22, 0xc2, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x5a, 0x6f, 0x6e, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, + 0x12, 0x1f, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x5a, 0x6f, 0x6e, + 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, + 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, + 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x97, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, + 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, + 0x0a, 0x05, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, + 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x5a, 0x6f, 0x6e, + 0x65, 0x52, 0x05, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, + 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, + 0x6c, 0x65, 0x22, 0x4d, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x65, 0x64, 0x67, 0x65, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x5a, 0x6f, 0x6e, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0xc8, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x06, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, + 0x24, 0x12, 0x22, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, + 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0xa3, 0x01, 0x0a, + 0x14, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x08, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, + 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x08, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, + 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, + 0x6c, 0x65, 0x22, 0x53, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x65, + 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xe8, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x42, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x12, 0x22, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x06, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x12, 0x44, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, + 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x22, + 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x49, 0x64, 0x22, 0x7a, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, + 0x0a, 0x22, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xc6, + 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x12, 0x21, 0x65, + 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, + 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x9f, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, + 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3e, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x73, 0x12, + 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, + 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, + 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, + 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x51, 0x0a, 0x10, 0x47, 0x65, 0x74, + 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, + 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xe1, 0x01, 0x0a, + 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x12, 0x21, 0x65, 0x64, + 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x52, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x6e, 0x65, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x08, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x49, 0x64, 0x12, 0x41, 0x0a, 0x06, 0x73, 0x75, 0x62, + 0x6e, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, + 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x12, 0x22, 0x0a, 0x0a, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, + 0x22, 0xbe, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x6e, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x41, 0x0a, 0x06, 0x73, 0x75, + 0x62, 0x6e, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x6f, 0x63, + 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x12, 0x22, 0x0a, + 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, + 0x64, 0x22, 0x78, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x75, 0x62, 0x6e, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, + 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x75, 0x62, 0x6e, 0x65, + 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xd2, 0x01, 0x0a, 0x18, + 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x29, + 0x12, 0x27, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, + 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, + 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, + 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, + 0x22, 0xb7, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, + 0x0a, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73, + 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, + 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, + 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, + 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x5d, 0x0a, 0x16, 0x47, 0x65, + 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x2f, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x29, 0x0a, 0x27, 0x65, 0x64, 0x67, 0x65, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xe6, 0x01, 0x0a, 0x22, 0x4c, 0x69, + 0x73, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, 0x74, + 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x51, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x39, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x33, 0x12, 0x31, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, + 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x42, 0x79, 0x22, 0xe0, 0x01, 0x0a, 0x23, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x18, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, + 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6d, + 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, + 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x17, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, + 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, + 0x68, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x71, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x39, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x33, 0x0a, + 0x31, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd3, 0x02, 0x0a, 0x23, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, + 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x51, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x39, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x33, 0x12, 0x31, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x1a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x18, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, + 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x72, 0x0a, 0x17, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, + 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x98, + 0x01, 0x0a, 0x23, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x39, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x33, 0x0a, 0x31, 0x65, 0x64, + 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xc6, 0x01, 0x0a, 0x12, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x12, 0x21, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x06, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, + 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x42, 0x79, 0x22, 0x9f, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x6f, + 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x52, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, + 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, + 0x61, 0x62, 0x6c, 0x65, 0x22, 0x51, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, + 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xe1, 0x01, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x12, 0x21, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x41, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xbe, 0x01, 0x0a, 0x13, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, + 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x41, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x78, 0x0a, 0x13, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x65, 0x64, 0x67, 0x65, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xd5, 0x02, 0x0a, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, 0x0b, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, + 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x76, 0x65, 0x72, 0x62, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x76, 0x65, 0x72, 0x62, + 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3a, 0x0a, 0x16, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x15, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x43, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x58, + 0x0a, 0x16, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, + 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x95, 0x02, 0x0a, 0x17, 0x44, 0x69, 0x61, + 0x67, 0x6e, 0x6f, 0x73, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x5b, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x43, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, + 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x1a, 0x60, + 0x0a, 0x0d, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x4f, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x22, 0x62, 0x0a, 0x1b, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x65, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x43, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xe0, + 0x41, 0x02, 0xfa, 0x41, 0x29, 0x0a, 0x27, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xaa, 0x01, 0x0a, 0x1c, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, + 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x4d, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, + 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x44, 0x69, + 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x22, 0x56, 0x0a, 0x15, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x65, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, + 0x0a, 0x21, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x99, 0x01, 0x0a, 0x16, 0x44, 0x69, + 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x42, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2a, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x54, 0x0a, 0x15, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, + 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x5a, 0x6f, 0x6e, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x18, 0x0a, 0x16, 0x49, + 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xcd, 0x2b, 0x0a, 0x0b, 0x45, 0x64, 0x67, 0x65, 0x4e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0xc3, 0x01, 0x0a, 0x0e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x33, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, + 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, + 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, + 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x69, + 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x46, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x22, 0x34, 0x2f, 0x76, 0x31, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x7a, 0x6f, + 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xa8, 0x01, 0x0a, 0x09, + 0x4c, 0x69, 0x73, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x73, 0x12, 0x2e, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, + 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x5a, 0x6f, 0x6e, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, + 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x5a, 0x6f, 0x6e, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x2b, 0x12, 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0xda, 0x41, 0x06, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x95, 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x5a, 0x6f, + 0x6e, 0x65, 0x12, 0x2c, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x22, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, + 0x5a, 0x6f, 0x6e, 0x65, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x29, 0x2f, 0x76, + 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x7a, + 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xbc, + 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x12, + 0x31, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x45, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x12, 0x34, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x2a, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xa9, 0x01, + 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x2f, 0x2e, 0x6d, + 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, + 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, + 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, + 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x12, 0x34, 0x2f, 0x76, + 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x7a, + 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, + 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xcc, 0x01, 0x0a, 0x0f, 0x44, 0x69, + 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x34, 0x2e, + 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, + 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x61, + 0x67, 0x6e, 0x6f, 0x73, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4c, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x3f, 0x12, 0x3d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, + 0x65, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xe5, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x32, 0x2e, 0x6d, 0x6f, 0x63, + 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, + 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x80, 0x01, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x22, 0x34, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, + 0x2f, 0x2a, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x3a, 0x07, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0xda, 0x41, 0x19, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2c, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x69, + 0x64, 0xca, 0x41, 0x1c, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x11, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x12, 0xd4, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x12, 0x32, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x70, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x2a, 0x34, 0x2f, + 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, + 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, + 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xb8, 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, + 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x73, 0x12, 0x30, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, + 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x62, 0x6e, 0x65, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, + 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x62, + 0x6e, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x44, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x35, 0x12, 0x33, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x2a, + 0x7d, 0x2f, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x12, 0xa5, 0x01, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, + 0x12, 0x2e, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x24, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x22, 0x42, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x12, 0x33, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, + 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x73, + 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xdd, 0x01, 0x0a, 0x0c, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x12, 0x31, 0x2e, 0x6d, 0x6f, + 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, + 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7b, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x22, 0x33, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, + 0x2a, 0x7d, 0x2f, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x73, 0x3a, 0x06, 0x73, 0x75, 0x62, 0x6e, + 0x65, 0x74, 0xda, 0x41, 0x17, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x73, 0x75, 0x62, 0x6e, + 0x65, 0x74, 0x2c, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x5f, 0x69, 0x64, 0xca, 0x41, 0x1b, 0x0a, + 0x06, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xdf, 0x01, 0x0a, 0x0c, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x12, 0x31, 0x2e, 0x6d, 0x6f, + 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, + 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7d, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x44, 0x32, 0x3a, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x73, 0x75, 0x62, 0x6e, + 0x65, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x7a, + 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x73, 0x2f, 0x2a, + 0x7d, 0x3a, 0x06, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0xda, 0x41, 0x12, 0x73, 0x75, 0x62, 0x6e, + 0x65, 0x74, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0xca, 0x41, + 0x1b, 0x0a, 0x06, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xd1, 0x01, 0x0a, + 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x12, 0x31, 0x2e, + 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, + 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, + 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x6f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x2a, 0x33, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, + 0x2a, 0x2f, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x12, 0xd0, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73, 0x12, 0x36, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, + 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, + 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x12, + 0x39, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x2a, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x12, 0xbd, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x34, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, + 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, + 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, + 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x22, 0x48, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x3b, 0x12, 0x39, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x2a, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0xe0, 0x01, 0x0a, 0x14, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x65, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x39, 0x2e, 0x6d, + 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, + 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x61, 0x67, + 0x6e, 0x6f, 0x73, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, + 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x65, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x51, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x44, 0x12, 0x42, 0x2f, 0x76, 0x31, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x7a, 0x6f, + 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x65, 0xda, + 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xf8, 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, + 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x40, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, + 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x54, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x45, 0x12, 0x43, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x7d, + 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, + 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x12, 0xe5, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x3e, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, 0x74, + 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x34, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, + 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x52, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x12, 0x43, 0x2f, + 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, + 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, + 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xd1, 0x02, 0x0a, 0x1c, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x2e, 0x6d, 0x6f, 0x63, + 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, 0x61, + 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, + 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xce, 0x01, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x5e, 0x22, 0x43, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, + 0x2a, 0x7d, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, + 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x17, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, + 0x65, 0x6e, 0x74, 0xda, 0x41, 0x39, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, + 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0xca, + 0x41, 0x2b, 0x0a, 0x16, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x81, 0x02, + 0x0a, 0x1c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, + 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, + 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, + 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x7f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x2a, 0x43, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, + 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, + 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, + 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x12, 0xb8, 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x73, 0x12, 0x30, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x44, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x12, 0x33, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x2a, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x72, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xa5, 0x01, 0x0a, + 0x09, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x2e, 0x2e, 0x6d, 0x6f, 0x63, + 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6d, 0x6f, 0x63, + 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x22, 0x42, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x12, 0x33, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, + 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, + 0x2f, 0x2a, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xc8, 0x01, 0x0a, 0x0e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, + 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x33, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, + 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x65, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6d, + 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, + 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x61, 0x67, + 0x6e, 0x6f, 0x73, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x4b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c, 0x2f, 0x76, 0x31, 0x2f, + 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, + 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x7a, 0x6f, 0x6e, + 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, + 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x65, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0xdd, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x12, 0x31, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, + 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x7b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x22, 0x33, 0x2f, 0x76, 0x31, 0x2f, + 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x7a, + 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x3a, + 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0xda, 0x41, 0x17, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x2c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0xca, 0x41, 0x1b, 0x0a, 0x06, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x11, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, + 0xdf, 0x01, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x12, 0x31, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, + 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x7d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x44, 0x32, 0x3a, 0x2f, 0x76, 0x31, 0x2f, + 0x7b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x2a, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0xda, 0x41, + 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, + 0x61, 0x73, 0x6b, 0xca, 0x41, 0x1b, 0x0a, 0x06, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x11, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x12, 0xd1, 0x01, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x72, 0x12, 0x31, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, + 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x2a, 0x33, 0x2f, 0x76, + 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x7a, + 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x2a, + 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x4e, 0xca, 0x41, 0x1a, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, + 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x76, 0x0a, 0x1c, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x46, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, + 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2f, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x76, + 0x31, 0x3b, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescOnce sync.Once + file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescData = file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDesc +) + +func file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescGZIP() []byte { + file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescOnce.Do(func() { + file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescData) + }) + return file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDescData +} + +var file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes = make([]protoimpl.MessageInfo, 38) +var file_mockgcp_cloud_edgenetwork_v1_service_proto_goTypes = []interface{}{ + (*ListZonesRequest)(nil), // 0: mockgcp.cloud.edgenetwork.v1.ListZonesRequest + (*ListZonesResponse)(nil), // 1: mockgcp.cloud.edgenetwork.v1.ListZonesResponse + (*GetZoneRequest)(nil), // 2: mockgcp.cloud.edgenetwork.v1.GetZoneRequest + (*ListNetworksRequest)(nil), // 3: mockgcp.cloud.edgenetwork.v1.ListNetworksRequest + (*ListNetworksResponse)(nil), // 4: mockgcp.cloud.edgenetwork.v1.ListNetworksResponse + (*GetNetworkRequest)(nil), // 5: mockgcp.cloud.edgenetwork.v1.GetNetworkRequest + (*CreateNetworkRequest)(nil), // 6: mockgcp.cloud.edgenetwork.v1.CreateNetworkRequest + (*DeleteNetworkRequest)(nil), // 7: mockgcp.cloud.edgenetwork.v1.DeleteNetworkRequest + (*ListSubnetsRequest)(nil), // 8: mockgcp.cloud.edgenetwork.v1.ListSubnetsRequest + (*ListSubnetsResponse)(nil), // 9: mockgcp.cloud.edgenetwork.v1.ListSubnetsResponse + (*GetSubnetRequest)(nil), // 10: mockgcp.cloud.edgenetwork.v1.GetSubnetRequest + (*CreateSubnetRequest)(nil), // 11: mockgcp.cloud.edgenetwork.v1.CreateSubnetRequest + (*UpdateSubnetRequest)(nil), // 12: mockgcp.cloud.edgenetwork.v1.UpdateSubnetRequest + (*DeleteSubnetRequest)(nil), // 13: mockgcp.cloud.edgenetwork.v1.DeleteSubnetRequest + (*ListInterconnectsRequest)(nil), // 14: mockgcp.cloud.edgenetwork.v1.ListInterconnectsRequest + (*ListInterconnectsResponse)(nil), // 15: mockgcp.cloud.edgenetwork.v1.ListInterconnectsResponse + (*GetInterconnectRequest)(nil), // 16: mockgcp.cloud.edgenetwork.v1.GetInterconnectRequest + (*ListInterconnectAttachmentsRequest)(nil), // 17: mockgcp.cloud.edgenetwork.v1.ListInterconnectAttachmentsRequest + (*ListInterconnectAttachmentsResponse)(nil), // 18: mockgcp.cloud.edgenetwork.v1.ListInterconnectAttachmentsResponse + (*GetInterconnectAttachmentRequest)(nil), // 19: mockgcp.cloud.edgenetwork.v1.GetInterconnectAttachmentRequest + (*CreateInterconnectAttachmentRequest)(nil), // 20: mockgcp.cloud.edgenetwork.v1.CreateInterconnectAttachmentRequest + (*DeleteInterconnectAttachmentRequest)(nil), // 21: mockgcp.cloud.edgenetwork.v1.DeleteInterconnectAttachmentRequest + (*ListRoutersRequest)(nil), // 22: mockgcp.cloud.edgenetwork.v1.ListRoutersRequest + (*ListRoutersResponse)(nil), // 23: mockgcp.cloud.edgenetwork.v1.ListRoutersResponse + (*GetRouterRequest)(nil), // 24: mockgcp.cloud.edgenetwork.v1.GetRouterRequest + (*CreateRouterRequest)(nil), // 25: mockgcp.cloud.edgenetwork.v1.CreateRouterRequest + (*UpdateRouterRequest)(nil), // 26: mockgcp.cloud.edgenetwork.v1.UpdateRouterRequest + (*DeleteRouterRequest)(nil), // 27: mockgcp.cloud.edgenetwork.v1.DeleteRouterRequest + (*OperationMetadata)(nil), // 28: mockgcp.cloud.edgenetwork.v1.OperationMetadata + (*DiagnoseNetworkRequest)(nil), // 29: mockgcp.cloud.edgenetwork.v1.DiagnoseNetworkRequest + (*DiagnoseNetworkResponse)(nil), // 30: mockgcp.cloud.edgenetwork.v1.DiagnoseNetworkResponse + (*DiagnoseInterconnectRequest)(nil), // 31: mockgcp.cloud.edgenetwork.v1.DiagnoseInterconnectRequest + (*DiagnoseInterconnectResponse)(nil), // 32: mockgcp.cloud.edgenetwork.v1.DiagnoseInterconnectResponse + (*DiagnoseRouterRequest)(nil), // 33: mockgcp.cloud.edgenetwork.v1.DiagnoseRouterRequest + (*DiagnoseRouterResponse)(nil), // 34: mockgcp.cloud.edgenetwork.v1.DiagnoseRouterResponse + (*InitializeZoneRequest)(nil), // 35: mockgcp.cloud.edgenetwork.v1.InitializeZoneRequest + (*InitializeZoneResponse)(nil), // 36: mockgcp.cloud.edgenetwork.v1.InitializeZoneResponse + (*DiagnoseNetworkResponse_NetworkStatus)(nil), // 37: mockgcp.cloud.edgenetwork.v1.DiagnoseNetworkResponse.NetworkStatus + (*Zone)(nil), // 38: mockgcp.cloud.edgenetwork.v1.Zone + (*Network)(nil), // 39: mockgcp.cloud.edgenetwork.v1.Network + (*Subnet)(nil), // 40: mockgcp.cloud.edgenetwork.v1.Subnet + (*field_mask.FieldMask)(nil), // 41: google.protobuf.FieldMask + (*Interconnect)(nil), // 42: mockgcp.cloud.edgenetwork.v1.Interconnect + (*InterconnectAttachment)(nil), // 43: mockgcp.cloud.edgenetwork.v1.InterconnectAttachment + (*Router)(nil), // 44: mockgcp.cloud.edgenetwork.v1.Router + (*timestamp.Timestamp)(nil), // 45: google.protobuf.Timestamp + (*InterconnectDiagnostics)(nil), // 46: mockgcp.cloud.edgenetwork.v1.InterconnectDiagnostics + (*RouterStatus)(nil), // 47: mockgcp.cloud.edgenetwork.v1.RouterStatus + (*SubnetStatus)(nil), // 48: mockgcp.cloud.edgenetwork.v1.SubnetStatus + (*longrunningpb.Operation)(nil), // 49: google.longrunning.Operation +} +var file_mockgcp_cloud_edgenetwork_v1_service_proto_depIdxs = []int32{ + 38, // 0: mockgcp.cloud.edgenetwork.v1.ListZonesResponse.zones:type_name -> mockgcp.cloud.edgenetwork.v1.Zone + 39, // 1: mockgcp.cloud.edgenetwork.v1.ListNetworksResponse.networks:type_name -> mockgcp.cloud.edgenetwork.v1.Network + 39, // 2: mockgcp.cloud.edgenetwork.v1.CreateNetworkRequest.network:type_name -> mockgcp.cloud.edgenetwork.v1.Network + 40, // 3: mockgcp.cloud.edgenetwork.v1.ListSubnetsResponse.subnets:type_name -> mockgcp.cloud.edgenetwork.v1.Subnet + 40, // 4: mockgcp.cloud.edgenetwork.v1.CreateSubnetRequest.subnet:type_name -> mockgcp.cloud.edgenetwork.v1.Subnet + 41, // 5: mockgcp.cloud.edgenetwork.v1.UpdateSubnetRequest.update_mask:type_name -> google.protobuf.FieldMask + 40, // 6: mockgcp.cloud.edgenetwork.v1.UpdateSubnetRequest.subnet:type_name -> mockgcp.cloud.edgenetwork.v1.Subnet + 42, // 7: mockgcp.cloud.edgenetwork.v1.ListInterconnectsResponse.interconnects:type_name -> mockgcp.cloud.edgenetwork.v1.Interconnect + 43, // 8: mockgcp.cloud.edgenetwork.v1.ListInterconnectAttachmentsResponse.interconnect_attachments:type_name -> mockgcp.cloud.edgenetwork.v1.InterconnectAttachment + 43, // 9: mockgcp.cloud.edgenetwork.v1.CreateInterconnectAttachmentRequest.interconnect_attachment:type_name -> mockgcp.cloud.edgenetwork.v1.InterconnectAttachment + 44, // 10: mockgcp.cloud.edgenetwork.v1.ListRoutersResponse.routers:type_name -> mockgcp.cloud.edgenetwork.v1.Router + 44, // 11: mockgcp.cloud.edgenetwork.v1.CreateRouterRequest.router:type_name -> mockgcp.cloud.edgenetwork.v1.Router + 41, // 12: mockgcp.cloud.edgenetwork.v1.UpdateRouterRequest.update_mask:type_name -> google.protobuf.FieldMask + 44, // 13: mockgcp.cloud.edgenetwork.v1.UpdateRouterRequest.router:type_name -> mockgcp.cloud.edgenetwork.v1.Router + 45, // 14: mockgcp.cloud.edgenetwork.v1.OperationMetadata.create_time:type_name -> google.protobuf.Timestamp + 45, // 15: mockgcp.cloud.edgenetwork.v1.OperationMetadata.end_time:type_name -> google.protobuf.Timestamp + 45, // 16: mockgcp.cloud.edgenetwork.v1.DiagnoseNetworkResponse.update_time:type_name -> google.protobuf.Timestamp + 37, // 17: mockgcp.cloud.edgenetwork.v1.DiagnoseNetworkResponse.result:type_name -> mockgcp.cloud.edgenetwork.v1.DiagnoseNetworkResponse.NetworkStatus + 45, // 18: mockgcp.cloud.edgenetwork.v1.DiagnoseInterconnectResponse.update_time:type_name -> google.protobuf.Timestamp + 46, // 19: mockgcp.cloud.edgenetwork.v1.DiagnoseInterconnectResponse.result:type_name -> mockgcp.cloud.edgenetwork.v1.InterconnectDiagnostics + 45, // 20: mockgcp.cloud.edgenetwork.v1.DiagnoseRouterResponse.update_time:type_name -> google.protobuf.Timestamp + 47, // 21: mockgcp.cloud.edgenetwork.v1.DiagnoseRouterResponse.result:type_name -> mockgcp.cloud.edgenetwork.v1.RouterStatus + 48, // 22: mockgcp.cloud.edgenetwork.v1.DiagnoseNetworkResponse.NetworkStatus.subnet_status:type_name -> mockgcp.cloud.edgenetwork.v1.SubnetStatus + 35, // 23: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.InitializeZone:input_type -> mockgcp.cloud.edgenetwork.v1.InitializeZoneRequest + 0, // 24: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.ListZones:input_type -> mockgcp.cloud.edgenetwork.v1.ListZonesRequest + 2, // 25: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.GetZone:input_type -> mockgcp.cloud.edgenetwork.v1.GetZoneRequest + 3, // 26: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.ListNetworks:input_type -> mockgcp.cloud.edgenetwork.v1.ListNetworksRequest + 5, // 27: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.GetNetwork:input_type -> mockgcp.cloud.edgenetwork.v1.GetNetworkRequest + 29, // 28: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.DiagnoseNetwork:input_type -> mockgcp.cloud.edgenetwork.v1.DiagnoseNetworkRequest + 6, // 29: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.CreateNetwork:input_type -> mockgcp.cloud.edgenetwork.v1.CreateNetworkRequest + 7, // 30: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.DeleteNetwork:input_type -> mockgcp.cloud.edgenetwork.v1.DeleteNetworkRequest + 8, // 31: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.ListSubnets:input_type -> mockgcp.cloud.edgenetwork.v1.ListSubnetsRequest + 10, // 32: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.GetSubnet:input_type -> mockgcp.cloud.edgenetwork.v1.GetSubnetRequest + 11, // 33: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.CreateSubnet:input_type -> mockgcp.cloud.edgenetwork.v1.CreateSubnetRequest + 12, // 34: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.UpdateSubnet:input_type -> mockgcp.cloud.edgenetwork.v1.UpdateSubnetRequest + 13, // 35: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.DeleteSubnet:input_type -> mockgcp.cloud.edgenetwork.v1.DeleteSubnetRequest + 14, // 36: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.ListInterconnects:input_type -> mockgcp.cloud.edgenetwork.v1.ListInterconnectsRequest + 16, // 37: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.GetInterconnect:input_type -> mockgcp.cloud.edgenetwork.v1.GetInterconnectRequest + 31, // 38: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.DiagnoseInterconnect:input_type -> mockgcp.cloud.edgenetwork.v1.DiagnoseInterconnectRequest + 17, // 39: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.ListInterconnectAttachments:input_type -> mockgcp.cloud.edgenetwork.v1.ListInterconnectAttachmentsRequest + 19, // 40: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.GetInterconnectAttachment:input_type -> mockgcp.cloud.edgenetwork.v1.GetInterconnectAttachmentRequest + 20, // 41: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.CreateInterconnectAttachment:input_type -> mockgcp.cloud.edgenetwork.v1.CreateInterconnectAttachmentRequest + 21, // 42: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.DeleteInterconnectAttachment:input_type -> mockgcp.cloud.edgenetwork.v1.DeleteInterconnectAttachmentRequest + 22, // 43: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.ListRouters:input_type -> mockgcp.cloud.edgenetwork.v1.ListRoutersRequest + 24, // 44: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.GetRouter:input_type -> mockgcp.cloud.edgenetwork.v1.GetRouterRequest + 33, // 45: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.DiagnoseRouter:input_type -> mockgcp.cloud.edgenetwork.v1.DiagnoseRouterRequest + 25, // 46: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.CreateRouter:input_type -> mockgcp.cloud.edgenetwork.v1.CreateRouterRequest + 26, // 47: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.UpdateRouter:input_type -> mockgcp.cloud.edgenetwork.v1.UpdateRouterRequest + 27, // 48: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.DeleteRouter:input_type -> mockgcp.cloud.edgenetwork.v1.DeleteRouterRequest + 36, // 49: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.InitializeZone:output_type -> mockgcp.cloud.edgenetwork.v1.InitializeZoneResponse + 1, // 50: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.ListZones:output_type -> mockgcp.cloud.edgenetwork.v1.ListZonesResponse + 38, // 51: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.GetZone:output_type -> mockgcp.cloud.edgenetwork.v1.Zone + 4, // 52: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.ListNetworks:output_type -> mockgcp.cloud.edgenetwork.v1.ListNetworksResponse + 39, // 53: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.GetNetwork:output_type -> mockgcp.cloud.edgenetwork.v1.Network + 30, // 54: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.DiagnoseNetwork:output_type -> mockgcp.cloud.edgenetwork.v1.DiagnoseNetworkResponse + 49, // 55: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.CreateNetwork:output_type -> google.longrunning.Operation + 49, // 56: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.DeleteNetwork:output_type -> google.longrunning.Operation + 9, // 57: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.ListSubnets:output_type -> mockgcp.cloud.edgenetwork.v1.ListSubnetsResponse + 40, // 58: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.GetSubnet:output_type -> mockgcp.cloud.edgenetwork.v1.Subnet + 49, // 59: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.CreateSubnet:output_type -> google.longrunning.Operation + 49, // 60: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.UpdateSubnet:output_type -> google.longrunning.Operation + 49, // 61: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.DeleteSubnet:output_type -> google.longrunning.Operation + 15, // 62: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.ListInterconnects:output_type -> mockgcp.cloud.edgenetwork.v1.ListInterconnectsResponse + 42, // 63: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.GetInterconnect:output_type -> mockgcp.cloud.edgenetwork.v1.Interconnect + 32, // 64: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.DiagnoseInterconnect:output_type -> mockgcp.cloud.edgenetwork.v1.DiagnoseInterconnectResponse + 18, // 65: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.ListInterconnectAttachments:output_type -> mockgcp.cloud.edgenetwork.v1.ListInterconnectAttachmentsResponse + 43, // 66: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.GetInterconnectAttachment:output_type -> mockgcp.cloud.edgenetwork.v1.InterconnectAttachment + 49, // 67: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.CreateInterconnectAttachment:output_type -> google.longrunning.Operation + 49, // 68: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.DeleteInterconnectAttachment:output_type -> google.longrunning.Operation + 23, // 69: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.ListRouters:output_type -> mockgcp.cloud.edgenetwork.v1.ListRoutersResponse + 44, // 70: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.GetRouter:output_type -> mockgcp.cloud.edgenetwork.v1.Router + 34, // 71: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.DiagnoseRouter:output_type -> mockgcp.cloud.edgenetwork.v1.DiagnoseRouterResponse + 49, // 72: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.CreateRouter:output_type -> google.longrunning.Operation + 49, // 73: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.UpdateRouter:output_type -> google.longrunning.Operation + 49, // 74: mockgcp.cloud.edgenetwork.v1.EdgeNetwork.DeleteRouter:output_type -> google.longrunning.Operation + 49, // [49:75] is the sub-list for method output_type + 23, // [23:49] is the sub-list for method input_type + 23, // [23:23] is the sub-list for extension type_name + 23, // [23:23] is the sub-list for extension extendee + 0, // [0:23] is the sub-list for field type_name +} + +func init() { file_mockgcp_cloud_edgenetwork_v1_service_proto_init() } +func file_mockgcp_cloud_edgenetwork_v1_service_proto_init() { + if File_mockgcp_cloud_edgenetwork_v1_service_proto != nil { + return + } + file_mockgcp_cloud_edgenetwork_v1_resources_proto_init() + if !protoimpl.UnsafeEnabled { + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListZonesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListZonesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetZoneRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListNetworksRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListNetworksResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetNetworkRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateNetworkRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteNetworkRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListSubnetsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListSubnetsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetSubnetRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateSubnetRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateSubnetRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteSubnetRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListInterconnectsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListInterconnectsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetInterconnectRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListInterconnectAttachmentsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListInterconnectAttachmentsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetInterconnectAttachmentRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateInterconnectAttachmentRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteInterconnectAttachmentRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListRoutersRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListRoutersResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetRouterRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateRouterRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateRouterRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteRouterRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OperationMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DiagnoseNetworkRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DiagnoseNetworkResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DiagnoseInterconnectRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DiagnoseInterconnectResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DiagnoseRouterRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DiagnoseRouterResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InitializeZoneRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InitializeZoneResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DiagnoseNetworkResponse_NetworkStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDesc, + NumEnums: 0, + NumMessages: 38, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_mockgcp_cloud_edgenetwork_v1_service_proto_goTypes, + DependencyIndexes: file_mockgcp_cloud_edgenetwork_v1_service_proto_depIdxs, + MessageInfos: file_mockgcp_cloud_edgenetwork_v1_service_proto_msgTypes, + }.Build() + File_mockgcp_cloud_edgenetwork_v1_service_proto = out.File + file_mockgcp_cloud_edgenetwork_v1_service_proto_rawDesc = nil + file_mockgcp_cloud_edgenetwork_v1_service_proto_goTypes = nil + file_mockgcp_cloud_edgenetwork_v1_service_proto_depIdxs = nil +} diff --git a/mockgcp/generated/mockgcp/cloud/edgenetwork/v1/service.pb.gw.go b/mockgcp/generated/mockgcp/cloud/edgenetwork/v1/service.pb.gw.go new file mode 100644 index 0000000000..457102302a --- /dev/null +++ b/mockgcp/generated/mockgcp/cloud/edgenetwork/v1/service.pb.gw.go @@ -0,0 +1,3192 @@ +// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. +// source: mockgcp/cloud/edgenetwork/v1/service.proto + +/* +Package edgenetwork is a reverse proxy. + +It translates gRPC into RESTful JSON APIs. +*/ +package edgenetwork + +import ( + "context" + "io" + "net/http" + + "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" + "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" +) + +// Suppress "imported and not used" errors +var _ codes.Code +var _ io.Reader +var _ status.Status +var _ = runtime.String +var _ = utilities.NewDoubleArray +var _ = metadata.Join + +func request_EdgeNetwork_InitializeZone_0(ctx context.Context, marshaler runtime.Marshaler, client EdgeNetworkClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq InitializeZoneRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.InitializeZone(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EdgeNetwork_InitializeZone_0(ctx context.Context, marshaler runtime.Marshaler, server EdgeNetworkServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq InitializeZoneRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.InitializeZone(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_EdgeNetwork_ListZones_0 = &utilities.DoubleArray{Encoding: map[string]int{"parent": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} +) + +func request_EdgeNetwork_ListZones_0(ctx context.Context, marshaler runtime.Marshaler, client EdgeNetworkClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListZonesRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_EdgeNetwork_ListZones_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListZones(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EdgeNetwork_ListZones_0(ctx context.Context, marshaler runtime.Marshaler, server EdgeNetworkServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListZonesRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_EdgeNetwork_ListZones_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListZones(ctx, &protoReq) + return msg, metadata, err + +} + +func request_EdgeNetwork_GetZone_0(ctx context.Context, marshaler runtime.Marshaler, client EdgeNetworkClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetZoneRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.GetZone(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EdgeNetwork_GetZone_0(ctx context.Context, marshaler runtime.Marshaler, server EdgeNetworkServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetZoneRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.GetZone(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_EdgeNetwork_ListNetworks_0 = &utilities.DoubleArray{Encoding: map[string]int{"parent": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} +) + +func request_EdgeNetwork_ListNetworks_0(ctx context.Context, marshaler runtime.Marshaler, client EdgeNetworkClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListNetworksRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_EdgeNetwork_ListNetworks_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListNetworks(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EdgeNetwork_ListNetworks_0(ctx context.Context, marshaler runtime.Marshaler, server EdgeNetworkServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListNetworksRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_EdgeNetwork_ListNetworks_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListNetworks(ctx, &protoReq) + return msg, metadata, err + +} + +func request_EdgeNetwork_GetNetwork_0(ctx context.Context, marshaler runtime.Marshaler, client EdgeNetworkClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetNetworkRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.GetNetwork(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EdgeNetwork_GetNetwork_0(ctx context.Context, marshaler runtime.Marshaler, server EdgeNetworkServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetNetworkRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.GetNetwork(ctx, &protoReq) + return msg, metadata, err + +} + +func request_EdgeNetwork_DiagnoseNetwork_0(ctx context.Context, marshaler runtime.Marshaler, client EdgeNetworkClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DiagnoseNetworkRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.DiagnoseNetwork(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EdgeNetwork_DiagnoseNetwork_0(ctx context.Context, marshaler runtime.Marshaler, server EdgeNetworkServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DiagnoseNetworkRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.DiagnoseNetwork(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_EdgeNetwork_CreateNetwork_0 = &utilities.DoubleArray{Encoding: map[string]int{"network": 0, "parent": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} +) + +func request_EdgeNetwork_CreateNetwork_0(ctx context.Context, marshaler runtime.Marshaler, client EdgeNetworkClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateNetworkRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Network); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_EdgeNetwork_CreateNetwork_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CreateNetwork(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EdgeNetwork_CreateNetwork_0(ctx context.Context, marshaler runtime.Marshaler, server EdgeNetworkServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateNetworkRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Network); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_EdgeNetwork_CreateNetwork_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.CreateNetwork(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_EdgeNetwork_DeleteNetwork_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} +) + +func request_EdgeNetwork_DeleteNetwork_0(ctx context.Context, marshaler runtime.Marshaler, client EdgeNetworkClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteNetworkRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_EdgeNetwork_DeleteNetwork_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.DeleteNetwork(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EdgeNetwork_DeleteNetwork_0(ctx context.Context, marshaler runtime.Marshaler, server EdgeNetworkServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteNetworkRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_EdgeNetwork_DeleteNetwork_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.DeleteNetwork(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_EdgeNetwork_ListSubnets_0 = &utilities.DoubleArray{Encoding: map[string]int{"parent": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} +) + +func request_EdgeNetwork_ListSubnets_0(ctx context.Context, marshaler runtime.Marshaler, client EdgeNetworkClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListSubnetsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_EdgeNetwork_ListSubnets_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListSubnets(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EdgeNetwork_ListSubnets_0(ctx context.Context, marshaler runtime.Marshaler, server EdgeNetworkServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListSubnetsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_EdgeNetwork_ListSubnets_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListSubnets(ctx, &protoReq) + return msg, metadata, err + +} + +func request_EdgeNetwork_GetSubnet_0(ctx context.Context, marshaler runtime.Marshaler, client EdgeNetworkClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetSubnetRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.GetSubnet(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EdgeNetwork_GetSubnet_0(ctx context.Context, marshaler runtime.Marshaler, server EdgeNetworkServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetSubnetRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.GetSubnet(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_EdgeNetwork_CreateSubnet_0 = &utilities.DoubleArray{Encoding: map[string]int{"subnet": 0, "parent": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} +) + +func request_EdgeNetwork_CreateSubnet_0(ctx context.Context, marshaler runtime.Marshaler, client EdgeNetworkClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateSubnetRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Subnet); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_EdgeNetwork_CreateSubnet_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CreateSubnet(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EdgeNetwork_CreateSubnet_0(ctx context.Context, marshaler runtime.Marshaler, server EdgeNetworkServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateSubnetRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Subnet); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_EdgeNetwork_CreateSubnet_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.CreateSubnet(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_EdgeNetwork_UpdateSubnet_0 = &utilities.DoubleArray{Encoding: map[string]int{"subnet": 0, "name": 1}, Base: []int{1, 2, 1, 0, 0}, Check: []int{0, 1, 2, 3, 2}} +) + +func request_EdgeNetwork_UpdateSubnet_0(ctx context.Context, marshaler runtime.Marshaler, client EdgeNetworkClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateSubnetRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Subnet); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.Subnet); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["subnet.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "subnet.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "subnet.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "subnet.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_EdgeNetwork_UpdateSubnet_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.UpdateSubnet(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EdgeNetwork_UpdateSubnet_0(ctx context.Context, marshaler runtime.Marshaler, server EdgeNetworkServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateSubnetRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Subnet); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.Subnet); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["subnet.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "subnet.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "subnet.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "subnet.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_EdgeNetwork_UpdateSubnet_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.UpdateSubnet(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_EdgeNetwork_DeleteSubnet_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} +) + +func request_EdgeNetwork_DeleteSubnet_0(ctx context.Context, marshaler runtime.Marshaler, client EdgeNetworkClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteSubnetRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_EdgeNetwork_DeleteSubnet_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.DeleteSubnet(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EdgeNetwork_DeleteSubnet_0(ctx context.Context, marshaler runtime.Marshaler, server EdgeNetworkServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteSubnetRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_EdgeNetwork_DeleteSubnet_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.DeleteSubnet(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_EdgeNetwork_ListInterconnects_0 = &utilities.DoubleArray{Encoding: map[string]int{"parent": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} +) + +func request_EdgeNetwork_ListInterconnects_0(ctx context.Context, marshaler runtime.Marshaler, client EdgeNetworkClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListInterconnectsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_EdgeNetwork_ListInterconnects_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListInterconnects(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EdgeNetwork_ListInterconnects_0(ctx context.Context, marshaler runtime.Marshaler, server EdgeNetworkServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListInterconnectsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_EdgeNetwork_ListInterconnects_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListInterconnects(ctx, &protoReq) + return msg, metadata, err + +} + +func request_EdgeNetwork_GetInterconnect_0(ctx context.Context, marshaler runtime.Marshaler, client EdgeNetworkClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetInterconnectRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.GetInterconnect(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EdgeNetwork_GetInterconnect_0(ctx context.Context, marshaler runtime.Marshaler, server EdgeNetworkServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetInterconnectRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.GetInterconnect(ctx, &protoReq) + return msg, metadata, err + +} + +func request_EdgeNetwork_DiagnoseInterconnect_0(ctx context.Context, marshaler runtime.Marshaler, client EdgeNetworkClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DiagnoseInterconnectRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.DiagnoseInterconnect(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EdgeNetwork_DiagnoseInterconnect_0(ctx context.Context, marshaler runtime.Marshaler, server EdgeNetworkServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DiagnoseInterconnectRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.DiagnoseInterconnect(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_EdgeNetwork_ListInterconnectAttachments_0 = &utilities.DoubleArray{Encoding: map[string]int{"parent": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} +) + +func request_EdgeNetwork_ListInterconnectAttachments_0(ctx context.Context, marshaler runtime.Marshaler, client EdgeNetworkClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListInterconnectAttachmentsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_EdgeNetwork_ListInterconnectAttachments_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListInterconnectAttachments(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EdgeNetwork_ListInterconnectAttachments_0(ctx context.Context, marshaler runtime.Marshaler, server EdgeNetworkServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListInterconnectAttachmentsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_EdgeNetwork_ListInterconnectAttachments_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListInterconnectAttachments(ctx, &protoReq) + return msg, metadata, err + +} + +func request_EdgeNetwork_GetInterconnectAttachment_0(ctx context.Context, marshaler runtime.Marshaler, client EdgeNetworkClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetInterconnectAttachmentRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.GetInterconnectAttachment(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EdgeNetwork_GetInterconnectAttachment_0(ctx context.Context, marshaler runtime.Marshaler, server EdgeNetworkServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetInterconnectAttachmentRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.GetInterconnectAttachment(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_EdgeNetwork_CreateInterconnectAttachment_0 = &utilities.DoubleArray{Encoding: map[string]int{"interconnect_attachment": 0, "parent": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} +) + +func request_EdgeNetwork_CreateInterconnectAttachment_0(ctx context.Context, marshaler runtime.Marshaler, client EdgeNetworkClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateInterconnectAttachmentRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.InterconnectAttachment); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_EdgeNetwork_CreateInterconnectAttachment_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CreateInterconnectAttachment(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EdgeNetwork_CreateInterconnectAttachment_0(ctx context.Context, marshaler runtime.Marshaler, server EdgeNetworkServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateInterconnectAttachmentRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.InterconnectAttachment); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_EdgeNetwork_CreateInterconnectAttachment_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.CreateInterconnectAttachment(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_EdgeNetwork_DeleteInterconnectAttachment_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} +) + +func request_EdgeNetwork_DeleteInterconnectAttachment_0(ctx context.Context, marshaler runtime.Marshaler, client EdgeNetworkClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteInterconnectAttachmentRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_EdgeNetwork_DeleteInterconnectAttachment_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.DeleteInterconnectAttachment(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EdgeNetwork_DeleteInterconnectAttachment_0(ctx context.Context, marshaler runtime.Marshaler, server EdgeNetworkServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteInterconnectAttachmentRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_EdgeNetwork_DeleteInterconnectAttachment_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.DeleteInterconnectAttachment(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_EdgeNetwork_ListRouters_0 = &utilities.DoubleArray{Encoding: map[string]int{"parent": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} +) + +func request_EdgeNetwork_ListRouters_0(ctx context.Context, marshaler runtime.Marshaler, client EdgeNetworkClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListRoutersRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_EdgeNetwork_ListRouters_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListRouters(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EdgeNetwork_ListRouters_0(ctx context.Context, marshaler runtime.Marshaler, server EdgeNetworkServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListRoutersRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_EdgeNetwork_ListRouters_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListRouters(ctx, &protoReq) + return msg, metadata, err + +} + +func request_EdgeNetwork_GetRouter_0(ctx context.Context, marshaler runtime.Marshaler, client EdgeNetworkClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetRouterRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.GetRouter(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EdgeNetwork_GetRouter_0(ctx context.Context, marshaler runtime.Marshaler, server EdgeNetworkServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetRouterRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.GetRouter(ctx, &protoReq) + return msg, metadata, err + +} + +func request_EdgeNetwork_DiagnoseRouter_0(ctx context.Context, marshaler runtime.Marshaler, client EdgeNetworkClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DiagnoseRouterRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.DiagnoseRouter(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EdgeNetwork_DiagnoseRouter_0(ctx context.Context, marshaler runtime.Marshaler, server EdgeNetworkServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DiagnoseRouterRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.DiagnoseRouter(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_EdgeNetwork_CreateRouter_0 = &utilities.DoubleArray{Encoding: map[string]int{"router": 0, "parent": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} +) + +func request_EdgeNetwork_CreateRouter_0(ctx context.Context, marshaler runtime.Marshaler, client EdgeNetworkClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateRouterRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Router); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_EdgeNetwork_CreateRouter_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CreateRouter(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EdgeNetwork_CreateRouter_0(ctx context.Context, marshaler runtime.Marshaler, server EdgeNetworkServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateRouterRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Router); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_EdgeNetwork_CreateRouter_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.CreateRouter(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_EdgeNetwork_UpdateRouter_0 = &utilities.DoubleArray{Encoding: map[string]int{"router": 0, "name": 1}, Base: []int{1, 2, 1, 0, 0}, Check: []int{0, 1, 2, 3, 2}} +) + +func request_EdgeNetwork_UpdateRouter_0(ctx context.Context, marshaler runtime.Marshaler, client EdgeNetworkClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateRouterRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Router); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.Router); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["router.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "router.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "router.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "router.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_EdgeNetwork_UpdateRouter_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.UpdateRouter(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EdgeNetwork_UpdateRouter_0(ctx context.Context, marshaler runtime.Marshaler, server EdgeNetworkServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateRouterRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Router); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.Router); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["router.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "router.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "router.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "router.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_EdgeNetwork_UpdateRouter_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.UpdateRouter(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_EdgeNetwork_DeleteRouter_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} +) + +func request_EdgeNetwork_DeleteRouter_0(ctx context.Context, marshaler runtime.Marshaler, client EdgeNetworkClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteRouterRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_EdgeNetwork_DeleteRouter_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.DeleteRouter(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EdgeNetwork_DeleteRouter_0(ctx context.Context, marshaler runtime.Marshaler, server EdgeNetworkServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteRouterRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_EdgeNetwork_DeleteRouter_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.DeleteRouter(ctx, &protoReq) + return msg, metadata, err + +} + +// RegisterEdgeNetworkHandlerServer registers the http handlers for service EdgeNetwork to "mux". +// UnaryRPC :call EdgeNetworkServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterEdgeNetworkHandlerFromEndpoint instead. +func RegisterEdgeNetworkHandlerServer(ctx context.Context, mux *runtime.ServeMux, server EdgeNetworkServer) error { + + mux.Handle("POST", pattern_EdgeNetwork_InitializeZone_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/InitializeZone", runtime.WithHTTPPathPattern("/v1/{name=projects/*/locations/*/zones/*}:initialize")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EdgeNetwork_InitializeZone_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_InitializeZone_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_EdgeNetwork_ListZones_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/ListZones", runtime.WithHTTPPathPattern("/v1/{parent=projects/*/locations/*}/zones")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EdgeNetwork_ListZones_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_ListZones_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_EdgeNetwork_GetZone_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/GetZone", runtime.WithHTTPPathPattern("/v1/{name=projects/*/locations/*/zones/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EdgeNetwork_GetZone_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_GetZone_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_EdgeNetwork_ListNetworks_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/ListNetworks", runtime.WithHTTPPathPattern("/v1/{parent=projects/*/locations/*/zones/*}/networks")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EdgeNetwork_ListNetworks_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_ListNetworks_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_EdgeNetwork_GetNetwork_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/GetNetwork", runtime.WithHTTPPathPattern("/v1/{name=projects/*/locations/*/zones/*/networks/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EdgeNetwork_GetNetwork_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_GetNetwork_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_EdgeNetwork_DiagnoseNetwork_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/DiagnoseNetwork", runtime.WithHTTPPathPattern("/v1/{name=projects/*/locations/*/zones/*/networks/*}:diagnose")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EdgeNetwork_DiagnoseNetwork_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_DiagnoseNetwork_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_EdgeNetwork_CreateNetwork_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/CreateNetwork", runtime.WithHTTPPathPattern("/v1/{parent=projects/*/locations/*/zones/*}/networks")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EdgeNetwork_CreateNetwork_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_CreateNetwork_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_EdgeNetwork_DeleteNetwork_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/DeleteNetwork", runtime.WithHTTPPathPattern("/v1/{name=projects/*/locations/*/zones/*/networks/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EdgeNetwork_DeleteNetwork_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_DeleteNetwork_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_EdgeNetwork_ListSubnets_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/ListSubnets", runtime.WithHTTPPathPattern("/v1/{parent=projects/*/locations/*/zones/*}/subnets")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EdgeNetwork_ListSubnets_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_ListSubnets_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_EdgeNetwork_GetSubnet_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/GetSubnet", runtime.WithHTTPPathPattern("/v1/{name=projects/*/locations/*/zones/*/subnets/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EdgeNetwork_GetSubnet_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_GetSubnet_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_EdgeNetwork_CreateSubnet_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/CreateSubnet", runtime.WithHTTPPathPattern("/v1/{parent=projects/*/locations/*/zones/*}/subnets")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EdgeNetwork_CreateSubnet_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_CreateSubnet_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_EdgeNetwork_UpdateSubnet_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/UpdateSubnet", runtime.WithHTTPPathPattern("/v1/{subnet.name=projects/*/locations/*/zones/*/subnets/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EdgeNetwork_UpdateSubnet_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_UpdateSubnet_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_EdgeNetwork_DeleteSubnet_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/DeleteSubnet", runtime.WithHTTPPathPattern("/v1/{name=projects/*/locations/*/zones/*/subnets/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EdgeNetwork_DeleteSubnet_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_DeleteSubnet_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_EdgeNetwork_ListInterconnects_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/ListInterconnects", runtime.WithHTTPPathPattern("/v1/{parent=projects/*/locations/*/zones/*}/interconnects")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EdgeNetwork_ListInterconnects_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_ListInterconnects_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_EdgeNetwork_GetInterconnect_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/GetInterconnect", runtime.WithHTTPPathPattern("/v1/{name=projects/*/locations/*/zones/*/interconnects/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EdgeNetwork_GetInterconnect_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_GetInterconnect_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_EdgeNetwork_DiagnoseInterconnect_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/DiagnoseInterconnect", runtime.WithHTTPPathPattern("/v1/{name=projects/*/locations/*/zones/*/interconnects/*}:diagnose")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EdgeNetwork_DiagnoseInterconnect_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_DiagnoseInterconnect_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_EdgeNetwork_ListInterconnectAttachments_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/ListInterconnectAttachments", runtime.WithHTTPPathPattern("/v1/{parent=projects/*/locations/*/zones/*}/interconnectAttachments")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EdgeNetwork_ListInterconnectAttachments_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_ListInterconnectAttachments_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_EdgeNetwork_GetInterconnectAttachment_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/GetInterconnectAttachment", runtime.WithHTTPPathPattern("/v1/{name=projects/*/locations/*/zones/*/interconnectAttachments/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EdgeNetwork_GetInterconnectAttachment_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_GetInterconnectAttachment_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_EdgeNetwork_CreateInterconnectAttachment_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/CreateInterconnectAttachment", runtime.WithHTTPPathPattern("/v1/{parent=projects/*/locations/*/zones/*}/interconnectAttachments")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EdgeNetwork_CreateInterconnectAttachment_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_CreateInterconnectAttachment_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_EdgeNetwork_DeleteInterconnectAttachment_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/DeleteInterconnectAttachment", runtime.WithHTTPPathPattern("/v1/{name=projects/*/locations/*/zones/*/interconnectAttachments/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EdgeNetwork_DeleteInterconnectAttachment_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_DeleteInterconnectAttachment_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_EdgeNetwork_ListRouters_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/ListRouters", runtime.WithHTTPPathPattern("/v1/{parent=projects/*/locations/*/zones/*}/routers")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EdgeNetwork_ListRouters_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_ListRouters_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_EdgeNetwork_GetRouter_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/GetRouter", runtime.WithHTTPPathPattern("/v1/{name=projects/*/locations/*/zones/*/routers/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EdgeNetwork_GetRouter_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_GetRouter_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_EdgeNetwork_DiagnoseRouter_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/DiagnoseRouter", runtime.WithHTTPPathPattern("/v1/{name=projects/*/locations/*/zones/*/routers/*}:diagnose")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EdgeNetwork_DiagnoseRouter_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_DiagnoseRouter_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_EdgeNetwork_CreateRouter_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/CreateRouter", runtime.WithHTTPPathPattern("/v1/{parent=projects/*/locations/*/zones/*}/routers")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EdgeNetwork_CreateRouter_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_CreateRouter_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_EdgeNetwork_UpdateRouter_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/UpdateRouter", runtime.WithHTTPPathPattern("/v1/{router.name=projects/*/locations/*/zones/*/routers/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EdgeNetwork_UpdateRouter_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_UpdateRouter_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_EdgeNetwork_DeleteRouter_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/DeleteRouter", runtime.WithHTTPPathPattern("/v1/{name=projects/*/locations/*/zones/*/routers/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EdgeNetwork_DeleteRouter_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_DeleteRouter_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +// RegisterEdgeNetworkHandlerFromEndpoint is same as RegisterEdgeNetworkHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterEdgeNetworkHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.Dial(endpoint, opts...) + if err != nil { + return err + } + defer func() { + if err != nil { + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + return + } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() + + return RegisterEdgeNetworkHandler(ctx, mux, conn) +} + +// RegisterEdgeNetworkHandler registers the http handlers for service EdgeNetwork to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterEdgeNetworkHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterEdgeNetworkHandlerClient(ctx, mux, NewEdgeNetworkClient(conn)) +} + +// RegisterEdgeNetworkHandlerClient registers the http handlers for service EdgeNetwork +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "EdgeNetworkClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "EdgeNetworkClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "EdgeNetworkClient" to call the correct interceptors. +func RegisterEdgeNetworkHandlerClient(ctx context.Context, mux *runtime.ServeMux, client EdgeNetworkClient) error { + + mux.Handle("POST", pattern_EdgeNetwork_InitializeZone_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/InitializeZone", runtime.WithHTTPPathPattern("/v1/{name=projects/*/locations/*/zones/*}:initialize")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EdgeNetwork_InitializeZone_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_InitializeZone_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_EdgeNetwork_ListZones_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/ListZones", runtime.WithHTTPPathPattern("/v1/{parent=projects/*/locations/*}/zones")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EdgeNetwork_ListZones_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_ListZones_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_EdgeNetwork_GetZone_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/GetZone", runtime.WithHTTPPathPattern("/v1/{name=projects/*/locations/*/zones/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EdgeNetwork_GetZone_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_GetZone_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_EdgeNetwork_ListNetworks_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/ListNetworks", runtime.WithHTTPPathPattern("/v1/{parent=projects/*/locations/*/zones/*}/networks")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EdgeNetwork_ListNetworks_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_ListNetworks_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_EdgeNetwork_GetNetwork_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/GetNetwork", runtime.WithHTTPPathPattern("/v1/{name=projects/*/locations/*/zones/*/networks/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EdgeNetwork_GetNetwork_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_GetNetwork_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_EdgeNetwork_DiagnoseNetwork_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/DiagnoseNetwork", runtime.WithHTTPPathPattern("/v1/{name=projects/*/locations/*/zones/*/networks/*}:diagnose")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EdgeNetwork_DiagnoseNetwork_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_DiagnoseNetwork_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_EdgeNetwork_CreateNetwork_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/CreateNetwork", runtime.WithHTTPPathPattern("/v1/{parent=projects/*/locations/*/zones/*}/networks")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EdgeNetwork_CreateNetwork_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_CreateNetwork_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_EdgeNetwork_DeleteNetwork_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/DeleteNetwork", runtime.WithHTTPPathPattern("/v1/{name=projects/*/locations/*/zones/*/networks/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EdgeNetwork_DeleteNetwork_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_DeleteNetwork_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_EdgeNetwork_ListSubnets_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/ListSubnets", runtime.WithHTTPPathPattern("/v1/{parent=projects/*/locations/*/zones/*}/subnets")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EdgeNetwork_ListSubnets_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_ListSubnets_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_EdgeNetwork_GetSubnet_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/GetSubnet", runtime.WithHTTPPathPattern("/v1/{name=projects/*/locations/*/zones/*/subnets/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EdgeNetwork_GetSubnet_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_GetSubnet_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_EdgeNetwork_CreateSubnet_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/CreateSubnet", runtime.WithHTTPPathPattern("/v1/{parent=projects/*/locations/*/zones/*}/subnets")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EdgeNetwork_CreateSubnet_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_CreateSubnet_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_EdgeNetwork_UpdateSubnet_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/UpdateSubnet", runtime.WithHTTPPathPattern("/v1/{subnet.name=projects/*/locations/*/zones/*/subnets/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EdgeNetwork_UpdateSubnet_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_UpdateSubnet_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_EdgeNetwork_DeleteSubnet_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/DeleteSubnet", runtime.WithHTTPPathPattern("/v1/{name=projects/*/locations/*/zones/*/subnets/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EdgeNetwork_DeleteSubnet_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_DeleteSubnet_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_EdgeNetwork_ListInterconnects_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/ListInterconnects", runtime.WithHTTPPathPattern("/v1/{parent=projects/*/locations/*/zones/*}/interconnects")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EdgeNetwork_ListInterconnects_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_ListInterconnects_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_EdgeNetwork_GetInterconnect_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/GetInterconnect", runtime.WithHTTPPathPattern("/v1/{name=projects/*/locations/*/zones/*/interconnects/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EdgeNetwork_GetInterconnect_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_GetInterconnect_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_EdgeNetwork_DiagnoseInterconnect_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/DiagnoseInterconnect", runtime.WithHTTPPathPattern("/v1/{name=projects/*/locations/*/zones/*/interconnects/*}:diagnose")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EdgeNetwork_DiagnoseInterconnect_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_DiagnoseInterconnect_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_EdgeNetwork_ListInterconnectAttachments_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/ListInterconnectAttachments", runtime.WithHTTPPathPattern("/v1/{parent=projects/*/locations/*/zones/*}/interconnectAttachments")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EdgeNetwork_ListInterconnectAttachments_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_ListInterconnectAttachments_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_EdgeNetwork_GetInterconnectAttachment_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/GetInterconnectAttachment", runtime.WithHTTPPathPattern("/v1/{name=projects/*/locations/*/zones/*/interconnectAttachments/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EdgeNetwork_GetInterconnectAttachment_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_GetInterconnectAttachment_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_EdgeNetwork_CreateInterconnectAttachment_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/CreateInterconnectAttachment", runtime.WithHTTPPathPattern("/v1/{parent=projects/*/locations/*/zones/*}/interconnectAttachments")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EdgeNetwork_CreateInterconnectAttachment_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_CreateInterconnectAttachment_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_EdgeNetwork_DeleteInterconnectAttachment_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/DeleteInterconnectAttachment", runtime.WithHTTPPathPattern("/v1/{name=projects/*/locations/*/zones/*/interconnectAttachments/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EdgeNetwork_DeleteInterconnectAttachment_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_DeleteInterconnectAttachment_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_EdgeNetwork_ListRouters_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/ListRouters", runtime.WithHTTPPathPattern("/v1/{parent=projects/*/locations/*/zones/*}/routers")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EdgeNetwork_ListRouters_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_ListRouters_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_EdgeNetwork_GetRouter_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/GetRouter", runtime.WithHTTPPathPattern("/v1/{name=projects/*/locations/*/zones/*/routers/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EdgeNetwork_GetRouter_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_GetRouter_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_EdgeNetwork_DiagnoseRouter_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/DiagnoseRouter", runtime.WithHTTPPathPattern("/v1/{name=projects/*/locations/*/zones/*/routers/*}:diagnose")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EdgeNetwork_DiagnoseRouter_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_DiagnoseRouter_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_EdgeNetwork_CreateRouter_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/CreateRouter", runtime.WithHTTPPathPattern("/v1/{parent=projects/*/locations/*/zones/*}/routers")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EdgeNetwork_CreateRouter_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_CreateRouter_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_EdgeNetwork_UpdateRouter_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/UpdateRouter", runtime.WithHTTPPathPattern("/v1/{router.name=projects/*/locations/*/zones/*/routers/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EdgeNetwork_UpdateRouter_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_UpdateRouter_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_EdgeNetwork_DeleteRouter_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/DeleteRouter", runtime.WithHTTPPathPattern("/v1/{name=projects/*/locations/*/zones/*/routers/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EdgeNetwork_DeleteRouter_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EdgeNetwork_DeleteRouter_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +var ( + pattern_EdgeNetwork_InitializeZone_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 4, 6, 5, 4}, []string{"v1", "projects", "locations", "zones", "name"}, "initialize")) + + pattern_EdgeNetwork_ListZones_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 4, 4, 5, 3, 2, 4}, []string{"v1", "projects", "locations", "parent", "zones"}, "")) + + pattern_EdgeNetwork_GetZone_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 4, 6, 5, 4}, []string{"v1", "projects", "locations", "zones", "name"}, "")) + + pattern_EdgeNetwork_ListNetworks_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 4, 6, 5, 4, 2, 5}, []string{"v1", "projects", "locations", "zones", "parent", "networks"}, "")) + + pattern_EdgeNetwork_GetNetwork_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 2, 4, 1, 0, 4, 8, 5, 5}, []string{"v1", "projects", "locations", "zones", "networks", "name"}, "")) + + pattern_EdgeNetwork_DiagnoseNetwork_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 2, 4, 1, 0, 4, 8, 5, 5}, []string{"v1", "projects", "locations", "zones", "networks", "name"}, "diagnose")) + + pattern_EdgeNetwork_CreateNetwork_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 4, 6, 5, 4, 2, 5}, []string{"v1", "projects", "locations", "zones", "parent", "networks"}, "")) + + pattern_EdgeNetwork_DeleteNetwork_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 2, 4, 1, 0, 4, 8, 5, 5}, []string{"v1", "projects", "locations", "zones", "networks", "name"}, "")) + + pattern_EdgeNetwork_ListSubnets_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 4, 6, 5, 4, 2, 5}, []string{"v1", "projects", "locations", "zones", "parent", "subnets"}, "")) + + pattern_EdgeNetwork_GetSubnet_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 2, 4, 1, 0, 4, 8, 5, 5}, []string{"v1", "projects", "locations", "zones", "subnets", "name"}, "")) + + pattern_EdgeNetwork_CreateSubnet_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 4, 6, 5, 4, 2, 5}, []string{"v1", "projects", "locations", "zones", "parent", "subnets"}, "")) + + pattern_EdgeNetwork_UpdateSubnet_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 2, 4, 1, 0, 4, 8, 5, 5}, []string{"v1", "projects", "locations", "zones", "subnets", "subnet.name"}, "")) + + pattern_EdgeNetwork_DeleteSubnet_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 2, 4, 1, 0, 4, 8, 5, 5}, []string{"v1", "projects", "locations", "zones", "subnets", "name"}, "")) + + pattern_EdgeNetwork_ListInterconnects_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 4, 6, 5, 4, 2, 5}, []string{"v1", "projects", "locations", "zones", "parent", "interconnects"}, "")) + + pattern_EdgeNetwork_GetInterconnect_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 2, 4, 1, 0, 4, 8, 5, 5}, []string{"v1", "projects", "locations", "zones", "interconnects", "name"}, "")) + + pattern_EdgeNetwork_DiagnoseInterconnect_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 2, 4, 1, 0, 4, 8, 5, 5}, []string{"v1", "projects", "locations", "zones", "interconnects", "name"}, "diagnose")) + + pattern_EdgeNetwork_ListInterconnectAttachments_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 4, 6, 5, 4, 2, 5}, []string{"v1", "projects", "locations", "zones", "parent", "interconnectAttachments"}, "")) + + pattern_EdgeNetwork_GetInterconnectAttachment_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 2, 4, 1, 0, 4, 8, 5, 5}, []string{"v1", "projects", "locations", "zones", "interconnectAttachments", "name"}, "")) + + pattern_EdgeNetwork_CreateInterconnectAttachment_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 4, 6, 5, 4, 2, 5}, []string{"v1", "projects", "locations", "zones", "parent", "interconnectAttachments"}, "")) + + pattern_EdgeNetwork_DeleteInterconnectAttachment_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 2, 4, 1, 0, 4, 8, 5, 5}, []string{"v1", "projects", "locations", "zones", "interconnectAttachments", "name"}, "")) + + pattern_EdgeNetwork_ListRouters_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 4, 6, 5, 4, 2, 5}, []string{"v1", "projects", "locations", "zones", "parent", "routers"}, "")) + + pattern_EdgeNetwork_GetRouter_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 2, 4, 1, 0, 4, 8, 5, 5}, []string{"v1", "projects", "locations", "zones", "routers", "name"}, "")) + + pattern_EdgeNetwork_DiagnoseRouter_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 2, 4, 1, 0, 4, 8, 5, 5}, []string{"v1", "projects", "locations", "zones", "routers", "name"}, "diagnose")) + + pattern_EdgeNetwork_CreateRouter_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 4, 6, 5, 4, 2, 5}, []string{"v1", "projects", "locations", "zones", "parent", "routers"}, "")) + + pattern_EdgeNetwork_UpdateRouter_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 2, 4, 1, 0, 4, 8, 5, 5}, []string{"v1", "projects", "locations", "zones", "routers", "router.name"}, "")) + + pattern_EdgeNetwork_DeleteRouter_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 2, 4, 1, 0, 4, 8, 5, 5}, []string{"v1", "projects", "locations", "zones", "routers", "name"}, "")) +) + +var ( + forward_EdgeNetwork_InitializeZone_0 = runtime.ForwardResponseMessage + + forward_EdgeNetwork_ListZones_0 = runtime.ForwardResponseMessage + + forward_EdgeNetwork_GetZone_0 = runtime.ForwardResponseMessage + + forward_EdgeNetwork_ListNetworks_0 = runtime.ForwardResponseMessage + + forward_EdgeNetwork_GetNetwork_0 = runtime.ForwardResponseMessage + + forward_EdgeNetwork_DiagnoseNetwork_0 = runtime.ForwardResponseMessage + + forward_EdgeNetwork_CreateNetwork_0 = runtime.ForwardResponseMessage + + forward_EdgeNetwork_DeleteNetwork_0 = runtime.ForwardResponseMessage + + forward_EdgeNetwork_ListSubnets_0 = runtime.ForwardResponseMessage + + forward_EdgeNetwork_GetSubnet_0 = runtime.ForwardResponseMessage + + forward_EdgeNetwork_CreateSubnet_0 = runtime.ForwardResponseMessage + + forward_EdgeNetwork_UpdateSubnet_0 = runtime.ForwardResponseMessage + + forward_EdgeNetwork_DeleteSubnet_0 = runtime.ForwardResponseMessage + + forward_EdgeNetwork_ListInterconnects_0 = runtime.ForwardResponseMessage + + forward_EdgeNetwork_GetInterconnect_0 = runtime.ForwardResponseMessage + + forward_EdgeNetwork_DiagnoseInterconnect_0 = runtime.ForwardResponseMessage + + forward_EdgeNetwork_ListInterconnectAttachments_0 = runtime.ForwardResponseMessage + + forward_EdgeNetwork_GetInterconnectAttachment_0 = runtime.ForwardResponseMessage + + forward_EdgeNetwork_CreateInterconnectAttachment_0 = runtime.ForwardResponseMessage + + forward_EdgeNetwork_DeleteInterconnectAttachment_0 = runtime.ForwardResponseMessage + + forward_EdgeNetwork_ListRouters_0 = runtime.ForwardResponseMessage + + forward_EdgeNetwork_GetRouter_0 = runtime.ForwardResponseMessage + + forward_EdgeNetwork_DiagnoseRouter_0 = runtime.ForwardResponseMessage + + forward_EdgeNetwork_CreateRouter_0 = runtime.ForwardResponseMessage + + forward_EdgeNetwork_UpdateRouter_0 = runtime.ForwardResponseMessage + + forward_EdgeNetwork_DeleteRouter_0 = runtime.ForwardResponseMessage +) diff --git a/mockgcp/generated/mockgcp/cloud/edgenetwork/v1/service_grpc.pb.go b/mockgcp/generated/mockgcp/cloud/edgenetwork/v1/service_grpc.pb.go new file mode 100644 index 0000000000..e382e12df0 --- /dev/null +++ b/mockgcp/generated/mockgcp/cloud/edgenetwork/v1/service_grpc.pb.go @@ -0,0 +1,1058 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.2.0 +// - protoc v3.12.4 +// source: mockgcp/cloud/edgenetwork/v1/service.proto + +package edgenetwork + +import ( + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +// EdgeNetworkClient is the client API for EdgeNetwork service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type EdgeNetworkClient interface { + // InitializeZone will initialize resources for a zone in a project. + InitializeZone(ctx context.Context, in *InitializeZoneRequest, opts ...grpc.CallOption) (*InitializeZoneResponse, error) + // Lists Zones in a given project and location. + ListZones(ctx context.Context, in *ListZonesRequest, opts ...grpc.CallOption) (*ListZonesResponse, error) + // Gets details of a single Zone. + GetZone(ctx context.Context, in *GetZoneRequest, opts ...grpc.CallOption) (*Zone, error) + // Lists Networks in a given project and location. + ListNetworks(ctx context.Context, in *ListNetworksRequest, opts ...grpc.CallOption) (*ListNetworksResponse, error) + // Gets details of a single Network. + GetNetwork(ctx context.Context, in *GetNetworkRequest, opts ...grpc.CallOption) (*Network, error) + // Get the diagnostics of a single network resource. + DiagnoseNetwork(ctx context.Context, in *DiagnoseNetworkRequest, opts ...grpc.CallOption) (*DiagnoseNetworkResponse, error) + // Creates a new Network in a given project and location. + CreateNetwork(ctx context.Context, in *CreateNetworkRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a single Network. + DeleteNetwork(ctx context.Context, in *DeleteNetworkRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Lists Subnets in a given project and location. + ListSubnets(ctx context.Context, in *ListSubnetsRequest, opts ...grpc.CallOption) (*ListSubnetsResponse, error) + // Gets details of a single Subnet. + GetSubnet(ctx context.Context, in *GetSubnetRequest, opts ...grpc.CallOption) (*Subnet, error) + // Creates a new Subnet in a given project and location. + CreateSubnet(ctx context.Context, in *CreateSubnetRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Updates the parameters of a single Subnet. + UpdateSubnet(ctx context.Context, in *UpdateSubnetRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a single Subnet. + DeleteSubnet(ctx context.Context, in *DeleteSubnetRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Lists Interconnects in a given project and location. + ListInterconnects(ctx context.Context, in *ListInterconnectsRequest, opts ...grpc.CallOption) (*ListInterconnectsResponse, error) + // Gets details of a single Interconnect. + GetInterconnect(ctx context.Context, in *GetInterconnectRequest, opts ...grpc.CallOption) (*Interconnect, error) + // Get the diagnostics of a single interconnect resource. + DiagnoseInterconnect(ctx context.Context, in *DiagnoseInterconnectRequest, opts ...grpc.CallOption) (*DiagnoseInterconnectResponse, error) + // Lists InterconnectAttachments in a given project and location. + ListInterconnectAttachments(ctx context.Context, in *ListInterconnectAttachmentsRequest, opts ...grpc.CallOption) (*ListInterconnectAttachmentsResponse, error) + // Gets details of a single InterconnectAttachment. + GetInterconnectAttachment(ctx context.Context, in *GetInterconnectAttachmentRequest, opts ...grpc.CallOption) (*InterconnectAttachment, error) + // Creates a new InterconnectAttachment in a given project and location. + CreateInterconnectAttachment(ctx context.Context, in *CreateInterconnectAttachmentRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a single InterconnectAttachment. + DeleteInterconnectAttachment(ctx context.Context, in *DeleteInterconnectAttachmentRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Lists Routers in a given project and location. + ListRouters(ctx context.Context, in *ListRoutersRequest, opts ...grpc.CallOption) (*ListRoutersResponse, error) + // Gets details of a single Router. + GetRouter(ctx context.Context, in *GetRouterRequest, opts ...grpc.CallOption) (*Router, error) + // Get the diagnostics of a single router resource. + DiagnoseRouter(ctx context.Context, in *DiagnoseRouterRequest, opts ...grpc.CallOption) (*DiagnoseRouterResponse, error) + // Creates a new Router in a given project and location. + CreateRouter(ctx context.Context, in *CreateRouterRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Updates the parameters of a single Router. + UpdateRouter(ctx context.Context, in *UpdateRouterRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a single Router. + DeleteRouter(ctx context.Context, in *DeleteRouterRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) +} + +type edgeNetworkClient struct { + cc grpc.ClientConnInterface +} + +func NewEdgeNetworkClient(cc grpc.ClientConnInterface) EdgeNetworkClient { + return &edgeNetworkClient{cc} +} + +func (c *edgeNetworkClient) InitializeZone(ctx context.Context, in *InitializeZoneRequest, opts ...grpc.CallOption) (*InitializeZoneResponse, error) { + out := new(InitializeZoneResponse) + err := c.cc.Invoke(ctx, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/InitializeZone", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *edgeNetworkClient) ListZones(ctx context.Context, in *ListZonesRequest, opts ...grpc.CallOption) (*ListZonesResponse, error) { + out := new(ListZonesResponse) + err := c.cc.Invoke(ctx, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/ListZones", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *edgeNetworkClient) GetZone(ctx context.Context, in *GetZoneRequest, opts ...grpc.CallOption) (*Zone, error) { + out := new(Zone) + err := c.cc.Invoke(ctx, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/GetZone", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *edgeNetworkClient) ListNetworks(ctx context.Context, in *ListNetworksRequest, opts ...grpc.CallOption) (*ListNetworksResponse, error) { + out := new(ListNetworksResponse) + err := c.cc.Invoke(ctx, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/ListNetworks", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *edgeNetworkClient) GetNetwork(ctx context.Context, in *GetNetworkRequest, opts ...grpc.CallOption) (*Network, error) { + out := new(Network) + err := c.cc.Invoke(ctx, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/GetNetwork", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *edgeNetworkClient) DiagnoseNetwork(ctx context.Context, in *DiagnoseNetworkRequest, opts ...grpc.CallOption) (*DiagnoseNetworkResponse, error) { + out := new(DiagnoseNetworkResponse) + err := c.cc.Invoke(ctx, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/DiagnoseNetwork", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *edgeNetworkClient) CreateNetwork(ctx context.Context, in *CreateNetworkRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/CreateNetwork", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *edgeNetworkClient) DeleteNetwork(ctx context.Context, in *DeleteNetworkRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/DeleteNetwork", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *edgeNetworkClient) ListSubnets(ctx context.Context, in *ListSubnetsRequest, opts ...grpc.CallOption) (*ListSubnetsResponse, error) { + out := new(ListSubnetsResponse) + err := c.cc.Invoke(ctx, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/ListSubnets", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *edgeNetworkClient) GetSubnet(ctx context.Context, in *GetSubnetRequest, opts ...grpc.CallOption) (*Subnet, error) { + out := new(Subnet) + err := c.cc.Invoke(ctx, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/GetSubnet", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *edgeNetworkClient) CreateSubnet(ctx context.Context, in *CreateSubnetRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/CreateSubnet", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *edgeNetworkClient) UpdateSubnet(ctx context.Context, in *UpdateSubnetRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/UpdateSubnet", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *edgeNetworkClient) DeleteSubnet(ctx context.Context, in *DeleteSubnetRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/DeleteSubnet", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *edgeNetworkClient) ListInterconnects(ctx context.Context, in *ListInterconnectsRequest, opts ...grpc.CallOption) (*ListInterconnectsResponse, error) { + out := new(ListInterconnectsResponse) + err := c.cc.Invoke(ctx, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/ListInterconnects", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *edgeNetworkClient) GetInterconnect(ctx context.Context, in *GetInterconnectRequest, opts ...grpc.CallOption) (*Interconnect, error) { + out := new(Interconnect) + err := c.cc.Invoke(ctx, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/GetInterconnect", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *edgeNetworkClient) DiagnoseInterconnect(ctx context.Context, in *DiagnoseInterconnectRequest, opts ...grpc.CallOption) (*DiagnoseInterconnectResponse, error) { + out := new(DiagnoseInterconnectResponse) + err := c.cc.Invoke(ctx, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/DiagnoseInterconnect", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *edgeNetworkClient) ListInterconnectAttachments(ctx context.Context, in *ListInterconnectAttachmentsRequest, opts ...grpc.CallOption) (*ListInterconnectAttachmentsResponse, error) { + out := new(ListInterconnectAttachmentsResponse) + err := c.cc.Invoke(ctx, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/ListInterconnectAttachments", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *edgeNetworkClient) GetInterconnectAttachment(ctx context.Context, in *GetInterconnectAttachmentRequest, opts ...grpc.CallOption) (*InterconnectAttachment, error) { + out := new(InterconnectAttachment) + err := c.cc.Invoke(ctx, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/GetInterconnectAttachment", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *edgeNetworkClient) CreateInterconnectAttachment(ctx context.Context, in *CreateInterconnectAttachmentRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/CreateInterconnectAttachment", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *edgeNetworkClient) DeleteInterconnectAttachment(ctx context.Context, in *DeleteInterconnectAttachmentRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/DeleteInterconnectAttachment", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *edgeNetworkClient) ListRouters(ctx context.Context, in *ListRoutersRequest, opts ...grpc.CallOption) (*ListRoutersResponse, error) { + out := new(ListRoutersResponse) + err := c.cc.Invoke(ctx, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/ListRouters", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *edgeNetworkClient) GetRouter(ctx context.Context, in *GetRouterRequest, opts ...grpc.CallOption) (*Router, error) { + out := new(Router) + err := c.cc.Invoke(ctx, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/GetRouter", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *edgeNetworkClient) DiagnoseRouter(ctx context.Context, in *DiagnoseRouterRequest, opts ...grpc.CallOption) (*DiagnoseRouterResponse, error) { + out := new(DiagnoseRouterResponse) + err := c.cc.Invoke(ctx, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/DiagnoseRouter", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *edgeNetworkClient) CreateRouter(ctx context.Context, in *CreateRouterRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/CreateRouter", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *edgeNetworkClient) UpdateRouter(ctx context.Context, in *UpdateRouterRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/UpdateRouter", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *edgeNetworkClient) DeleteRouter(ctx context.Context, in *DeleteRouterRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/DeleteRouter", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// EdgeNetworkServer is the server API for EdgeNetwork service. +// All implementations must embed UnimplementedEdgeNetworkServer +// for forward compatibility +type EdgeNetworkServer interface { + // InitializeZone will initialize resources for a zone in a project. + InitializeZone(context.Context, *InitializeZoneRequest) (*InitializeZoneResponse, error) + // Lists Zones in a given project and location. + ListZones(context.Context, *ListZonesRequest) (*ListZonesResponse, error) + // Gets details of a single Zone. + GetZone(context.Context, *GetZoneRequest) (*Zone, error) + // Lists Networks in a given project and location. + ListNetworks(context.Context, *ListNetworksRequest) (*ListNetworksResponse, error) + // Gets details of a single Network. + GetNetwork(context.Context, *GetNetworkRequest) (*Network, error) + // Get the diagnostics of a single network resource. + DiagnoseNetwork(context.Context, *DiagnoseNetworkRequest) (*DiagnoseNetworkResponse, error) + // Creates a new Network in a given project and location. + CreateNetwork(context.Context, *CreateNetworkRequest) (*longrunningpb.Operation, error) + // Deletes a single Network. + DeleteNetwork(context.Context, *DeleteNetworkRequest) (*longrunningpb.Operation, error) + // Lists Subnets in a given project and location. + ListSubnets(context.Context, *ListSubnetsRequest) (*ListSubnetsResponse, error) + // Gets details of a single Subnet. + GetSubnet(context.Context, *GetSubnetRequest) (*Subnet, error) + // Creates a new Subnet in a given project and location. + CreateSubnet(context.Context, *CreateSubnetRequest) (*longrunningpb.Operation, error) + // Updates the parameters of a single Subnet. + UpdateSubnet(context.Context, *UpdateSubnetRequest) (*longrunningpb.Operation, error) + // Deletes a single Subnet. + DeleteSubnet(context.Context, *DeleteSubnetRequest) (*longrunningpb.Operation, error) + // Lists Interconnects in a given project and location. + ListInterconnects(context.Context, *ListInterconnectsRequest) (*ListInterconnectsResponse, error) + // Gets details of a single Interconnect. + GetInterconnect(context.Context, *GetInterconnectRequest) (*Interconnect, error) + // Get the diagnostics of a single interconnect resource. + DiagnoseInterconnect(context.Context, *DiagnoseInterconnectRequest) (*DiagnoseInterconnectResponse, error) + // Lists InterconnectAttachments in a given project and location. + ListInterconnectAttachments(context.Context, *ListInterconnectAttachmentsRequest) (*ListInterconnectAttachmentsResponse, error) + // Gets details of a single InterconnectAttachment. + GetInterconnectAttachment(context.Context, *GetInterconnectAttachmentRequest) (*InterconnectAttachment, error) + // Creates a new InterconnectAttachment in a given project and location. + CreateInterconnectAttachment(context.Context, *CreateInterconnectAttachmentRequest) (*longrunningpb.Operation, error) + // Deletes a single InterconnectAttachment. + DeleteInterconnectAttachment(context.Context, *DeleteInterconnectAttachmentRequest) (*longrunningpb.Operation, error) + // Lists Routers in a given project and location. + ListRouters(context.Context, *ListRoutersRequest) (*ListRoutersResponse, error) + // Gets details of a single Router. + GetRouter(context.Context, *GetRouterRequest) (*Router, error) + // Get the diagnostics of a single router resource. + DiagnoseRouter(context.Context, *DiagnoseRouterRequest) (*DiagnoseRouterResponse, error) + // Creates a new Router in a given project and location. + CreateRouter(context.Context, *CreateRouterRequest) (*longrunningpb.Operation, error) + // Updates the parameters of a single Router. + UpdateRouter(context.Context, *UpdateRouterRequest) (*longrunningpb.Operation, error) + // Deletes a single Router. + DeleteRouter(context.Context, *DeleteRouterRequest) (*longrunningpb.Operation, error) + mustEmbedUnimplementedEdgeNetworkServer() +} + +// UnimplementedEdgeNetworkServer must be embedded to have forward compatible implementations. +type UnimplementedEdgeNetworkServer struct { +} + +func (UnimplementedEdgeNetworkServer) InitializeZone(context.Context, *InitializeZoneRequest) (*InitializeZoneResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method InitializeZone not implemented") +} +func (UnimplementedEdgeNetworkServer) ListZones(context.Context, *ListZonesRequest) (*ListZonesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListZones not implemented") +} +func (UnimplementedEdgeNetworkServer) GetZone(context.Context, *GetZoneRequest) (*Zone, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetZone not implemented") +} +func (UnimplementedEdgeNetworkServer) ListNetworks(context.Context, *ListNetworksRequest) (*ListNetworksResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListNetworks not implemented") +} +func (UnimplementedEdgeNetworkServer) GetNetwork(context.Context, *GetNetworkRequest) (*Network, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetNetwork not implemented") +} +func (UnimplementedEdgeNetworkServer) DiagnoseNetwork(context.Context, *DiagnoseNetworkRequest) (*DiagnoseNetworkResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DiagnoseNetwork not implemented") +} +func (UnimplementedEdgeNetworkServer) CreateNetwork(context.Context, *CreateNetworkRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateNetwork not implemented") +} +func (UnimplementedEdgeNetworkServer) DeleteNetwork(context.Context, *DeleteNetworkRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteNetwork not implemented") +} +func (UnimplementedEdgeNetworkServer) ListSubnets(context.Context, *ListSubnetsRequest) (*ListSubnetsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListSubnets not implemented") +} +func (UnimplementedEdgeNetworkServer) GetSubnet(context.Context, *GetSubnetRequest) (*Subnet, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetSubnet not implemented") +} +func (UnimplementedEdgeNetworkServer) CreateSubnet(context.Context, *CreateSubnetRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateSubnet not implemented") +} +func (UnimplementedEdgeNetworkServer) UpdateSubnet(context.Context, *UpdateSubnetRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateSubnet not implemented") +} +func (UnimplementedEdgeNetworkServer) DeleteSubnet(context.Context, *DeleteSubnetRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteSubnet not implemented") +} +func (UnimplementedEdgeNetworkServer) ListInterconnects(context.Context, *ListInterconnectsRequest) (*ListInterconnectsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListInterconnects not implemented") +} +func (UnimplementedEdgeNetworkServer) GetInterconnect(context.Context, *GetInterconnectRequest) (*Interconnect, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetInterconnect not implemented") +} +func (UnimplementedEdgeNetworkServer) DiagnoseInterconnect(context.Context, *DiagnoseInterconnectRequest) (*DiagnoseInterconnectResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DiagnoseInterconnect not implemented") +} +func (UnimplementedEdgeNetworkServer) ListInterconnectAttachments(context.Context, *ListInterconnectAttachmentsRequest) (*ListInterconnectAttachmentsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListInterconnectAttachments not implemented") +} +func (UnimplementedEdgeNetworkServer) GetInterconnectAttachment(context.Context, *GetInterconnectAttachmentRequest) (*InterconnectAttachment, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetInterconnectAttachment not implemented") +} +func (UnimplementedEdgeNetworkServer) CreateInterconnectAttachment(context.Context, *CreateInterconnectAttachmentRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateInterconnectAttachment not implemented") +} +func (UnimplementedEdgeNetworkServer) DeleteInterconnectAttachment(context.Context, *DeleteInterconnectAttachmentRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteInterconnectAttachment not implemented") +} +func (UnimplementedEdgeNetworkServer) ListRouters(context.Context, *ListRoutersRequest) (*ListRoutersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListRouters not implemented") +} +func (UnimplementedEdgeNetworkServer) GetRouter(context.Context, *GetRouterRequest) (*Router, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetRouter not implemented") +} +func (UnimplementedEdgeNetworkServer) DiagnoseRouter(context.Context, *DiagnoseRouterRequest) (*DiagnoseRouterResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DiagnoseRouter not implemented") +} +func (UnimplementedEdgeNetworkServer) CreateRouter(context.Context, *CreateRouterRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateRouter not implemented") +} +func (UnimplementedEdgeNetworkServer) UpdateRouter(context.Context, *UpdateRouterRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateRouter not implemented") +} +func (UnimplementedEdgeNetworkServer) DeleteRouter(context.Context, *DeleteRouterRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteRouter not implemented") +} +func (UnimplementedEdgeNetworkServer) mustEmbedUnimplementedEdgeNetworkServer() {} + +// UnsafeEdgeNetworkServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to EdgeNetworkServer will +// result in compilation errors. +type UnsafeEdgeNetworkServer interface { + mustEmbedUnimplementedEdgeNetworkServer() +} + +func RegisterEdgeNetworkServer(s grpc.ServiceRegistrar, srv EdgeNetworkServer) { + s.RegisterService(&EdgeNetwork_ServiceDesc, srv) +} + +func _EdgeNetwork_InitializeZone_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(InitializeZoneRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EdgeNetworkServer).InitializeZone(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/InitializeZone", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EdgeNetworkServer).InitializeZone(ctx, req.(*InitializeZoneRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EdgeNetwork_ListZones_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListZonesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EdgeNetworkServer).ListZones(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/ListZones", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EdgeNetworkServer).ListZones(ctx, req.(*ListZonesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EdgeNetwork_GetZone_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetZoneRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EdgeNetworkServer).GetZone(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/GetZone", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EdgeNetworkServer).GetZone(ctx, req.(*GetZoneRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EdgeNetwork_ListNetworks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListNetworksRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EdgeNetworkServer).ListNetworks(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/ListNetworks", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EdgeNetworkServer).ListNetworks(ctx, req.(*ListNetworksRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EdgeNetwork_GetNetwork_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetNetworkRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EdgeNetworkServer).GetNetwork(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/GetNetwork", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EdgeNetworkServer).GetNetwork(ctx, req.(*GetNetworkRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EdgeNetwork_DiagnoseNetwork_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DiagnoseNetworkRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EdgeNetworkServer).DiagnoseNetwork(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/DiagnoseNetwork", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EdgeNetworkServer).DiagnoseNetwork(ctx, req.(*DiagnoseNetworkRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EdgeNetwork_CreateNetwork_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateNetworkRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EdgeNetworkServer).CreateNetwork(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/CreateNetwork", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EdgeNetworkServer).CreateNetwork(ctx, req.(*CreateNetworkRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EdgeNetwork_DeleteNetwork_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteNetworkRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EdgeNetworkServer).DeleteNetwork(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/DeleteNetwork", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EdgeNetworkServer).DeleteNetwork(ctx, req.(*DeleteNetworkRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EdgeNetwork_ListSubnets_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListSubnetsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EdgeNetworkServer).ListSubnets(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/ListSubnets", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EdgeNetworkServer).ListSubnets(ctx, req.(*ListSubnetsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EdgeNetwork_GetSubnet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetSubnetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EdgeNetworkServer).GetSubnet(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/GetSubnet", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EdgeNetworkServer).GetSubnet(ctx, req.(*GetSubnetRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EdgeNetwork_CreateSubnet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateSubnetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EdgeNetworkServer).CreateSubnet(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/CreateSubnet", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EdgeNetworkServer).CreateSubnet(ctx, req.(*CreateSubnetRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EdgeNetwork_UpdateSubnet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateSubnetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EdgeNetworkServer).UpdateSubnet(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/UpdateSubnet", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EdgeNetworkServer).UpdateSubnet(ctx, req.(*UpdateSubnetRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EdgeNetwork_DeleteSubnet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteSubnetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EdgeNetworkServer).DeleteSubnet(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/DeleteSubnet", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EdgeNetworkServer).DeleteSubnet(ctx, req.(*DeleteSubnetRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EdgeNetwork_ListInterconnects_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListInterconnectsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EdgeNetworkServer).ListInterconnects(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/ListInterconnects", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EdgeNetworkServer).ListInterconnects(ctx, req.(*ListInterconnectsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EdgeNetwork_GetInterconnect_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetInterconnectRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EdgeNetworkServer).GetInterconnect(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/GetInterconnect", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EdgeNetworkServer).GetInterconnect(ctx, req.(*GetInterconnectRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EdgeNetwork_DiagnoseInterconnect_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DiagnoseInterconnectRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EdgeNetworkServer).DiagnoseInterconnect(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/DiagnoseInterconnect", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EdgeNetworkServer).DiagnoseInterconnect(ctx, req.(*DiagnoseInterconnectRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EdgeNetwork_ListInterconnectAttachments_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListInterconnectAttachmentsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EdgeNetworkServer).ListInterconnectAttachments(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/ListInterconnectAttachments", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EdgeNetworkServer).ListInterconnectAttachments(ctx, req.(*ListInterconnectAttachmentsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EdgeNetwork_GetInterconnectAttachment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetInterconnectAttachmentRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EdgeNetworkServer).GetInterconnectAttachment(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/GetInterconnectAttachment", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EdgeNetworkServer).GetInterconnectAttachment(ctx, req.(*GetInterconnectAttachmentRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EdgeNetwork_CreateInterconnectAttachment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateInterconnectAttachmentRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EdgeNetworkServer).CreateInterconnectAttachment(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/CreateInterconnectAttachment", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EdgeNetworkServer).CreateInterconnectAttachment(ctx, req.(*CreateInterconnectAttachmentRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EdgeNetwork_DeleteInterconnectAttachment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteInterconnectAttachmentRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EdgeNetworkServer).DeleteInterconnectAttachment(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/DeleteInterconnectAttachment", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EdgeNetworkServer).DeleteInterconnectAttachment(ctx, req.(*DeleteInterconnectAttachmentRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EdgeNetwork_ListRouters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListRoutersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EdgeNetworkServer).ListRouters(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/ListRouters", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EdgeNetworkServer).ListRouters(ctx, req.(*ListRoutersRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EdgeNetwork_GetRouter_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetRouterRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EdgeNetworkServer).GetRouter(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/GetRouter", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EdgeNetworkServer).GetRouter(ctx, req.(*GetRouterRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EdgeNetwork_DiagnoseRouter_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DiagnoseRouterRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EdgeNetworkServer).DiagnoseRouter(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/DiagnoseRouter", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EdgeNetworkServer).DiagnoseRouter(ctx, req.(*DiagnoseRouterRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EdgeNetwork_CreateRouter_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateRouterRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EdgeNetworkServer).CreateRouter(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/CreateRouter", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EdgeNetworkServer).CreateRouter(ctx, req.(*CreateRouterRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EdgeNetwork_UpdateRouter_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateRouterRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EdgeNetworkServer).UpdateRouter(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/UpdateRouter", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EdgeNetworkServer).UpdateRouter(ctx, req.(*UpdateRouterRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EdgeNetwork_DeleteRouter_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteRouterRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EdgeNetworkServer).DeleteRouter(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.cloud.edgenetwork.v1.EdgeNetwork/DeleteRouter", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EdgeNetworkServer).DeleteRouter(ctx, req.(*DeleteRouterRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// EdgeNetwork_ServiceDesc is the grpc.ServiceDesc for EdgeNetwork service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var EdgeNetwork_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "mockgcp.cloud.edgenetwork.v1.EdgeNetwork", + HandlerType: (*EdgeNetworkServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "InitializeZone", + Handler: _EdgeNetwork_InitializeZone_Handler, + }, + { + MethodName: "ListZones", + Handler: _EdgeNetwork_ListZones_Handler, + }, + { + MethodName: "GetZone", + Handler: _EdgeNetwork_GetZone_Handler, + }, + { + MethodName: "ListNetworks", + Handler: _EdgeNetwork_ListNetworks_Handler, + }, + { + MethodName: "GetNetwork", + Handler: _EdgeNetwork_GetNetwork_Handler, + }, + { + MethodName: "DiagnoseNetwork", + Handler: _EdgeNetwork_DiagnoseNetwork_Handler, + }, + { + MethodName: "CreateNetwork", + Handler: _EdgeNetwork_CreateNetwork_Handler, + }, + { + MethodName: "DeleteNetwork", + Handler: _EdgeNetwork_DeleteNetwork_Handler, + }, + { + MethodName: "ListSubnets", + Handler: _EdgeNetwork_ListSubnets_Handler, + }, + { + MethodName: "GetSubnet", + Handler: _EdgeNetwork_GetSubnet_Handler, + }, + { + MethodName: "CreateSubnet", + Handler: _EdgeNetwork_CreateSubnet_Handler, + }, + { + MethodName: "UpdateSubnet", + Handler: _EdgeNetwork_UpdateSubnet_Handler, + }, + { + MethodName: "DeleteSubnet", + Handler: _EdgeNetwork_DeleteSubnet_Handler, + }, + { + MethodName: "ListInterconnects", + Handler: _EdgeNetwork_ListInterconnects_Handler, + }, + { + MethodName: "GetInterconnect", + Handler: _EdgeNetwork_GetInterconnect_Handler, + }, + { + MethodName: "DiagnoseInterconnect", + Handler: _EdgeNetwork_DiagnoseInterconnect_Handler, + }, + { + MethodName: "ListInterconnectAttachments", + Handler: _EdgeNetwork_ListInterconnectAttachments_Handler, + }, + { + MethodName: "GetInterconnectAttachment", + Handler: _EdgeNetwork_GetInterconnectAttachment_Handler, + }, + { + MethodName: "CreateInterconnectAttachment", + Handler: _EdgeNetwork_CreateInterconnectAttachment_Handler, + }, + { + MethodName: "DeleteInterconnectAttachment", + Handler: _EdgeNetwork_DeleteInterconnectAttachment_Handler, + }, + { + MethodName: "ListRouters", + Handler: _EdgeNetwork_ListRouters_Handler, + }, + { + MethodName: "GetRouter", + Handler: _EdgeNetwork_GetRouter_Handler, + }, + { + MethodName: "DiagnoseRouter", + Handler: _EdgeNetwork_DiagnoseRouter_Handler, + }, + { + MethodName: "CreateRouter", + Handler: _EdgeNetwork_CreateRouter_Handler, + }, + { + MethodName: "UpdateRouter", + Handler: _EdgeNetwork_UpdateRouter_Handler, + }, + { + MethodName: "DeleteRouter", + Handler: _EdgeNetwork_DeleteRouter_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "mockgcp/cloud/edgenetwork/v1/service.proto", +} diff --git a/mockgcp/mock_http_roundtrip.go b/mockgcp/mock_http_roundtrip.go index ec34ed324a..9ce40c4625 100644 --- a/mockgcp/mock_http_roundtrip.go +++ b/mockgcp/mock_http_roundtrip.go @@ -35,6 +35,7 @@ import ( "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/common" "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/mockcertificatemanager" "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/mockcloudfunctions" + "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/mockedgenetwork" "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/mockgkemulticloud" "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/mockiam" "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/mocknetworkservices" @@ -87,6 +88,7 @@ func NewMockRoundTripper(t *testing.T, k8sClient client.Client, storage storage. services = append(services, mocknetworkservices.New(env, storage)) services = append(services, mockserviceusage.New(env, storage)) services = append(services, mockcloudfunctions.New(env, storage)) + services = append(services, mockedgenetwork.New(env, storage)) for _, service := range services { service.Register(server) diff --git a/mockgcp/mockedgenetwork/names.go b/mockgcp/mockedgenetwork/names.go new file mode 100644 index 0000000000..3ea6fd7ecc --- /dev/null +++ b/mockgcp/mockedgenetwork/names.go @@ -0,0 +1,94 @@ +// Copyright 2022 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 +// +// http://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. + +package mockedgenetwork + +import ( + "strings" + + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + + "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/common/projects" +) + +type networkName struct { + Project *projects.ProjectData + Location string + Zone string + NetworkId string +} + +func (n *networkName) String() string { + return "projects/" + n.Project.ID + "/locations/" + n.Location + "/zones/" + n.Zone + "/networks/" + n.NetworkId +} + +// parseNetworkName parses a string into a networkName. +// The expected form is projects//locations//zones//networks/ +func (s *MockService) parseNetworkName(name string) (*networkName, error) { + tokens := strings.Split(name, "/") + + if len(tokens) == 8 && tokens[0] == "projects" && tokens[2] == "locations" && tokens[4] == "zones" && tokens[6] == "networks" { + project, err := s.projects.GetProjectByID(tokens[1]) + if err != nil { + return nil, err + } + + name := &networkName{ + Project: project, + Location: tokens[3], + Zone: tokens[5], + NetworkId: tokens[7], + } + + return name, nil + } else { + return nil, status.Errorf(codes.InvalidArgument, "name %q is not valid", name) + } +} + +type subnetName struct { + Project *projects.ProjectData + Location string + Zone string + SubnetId string +} + +func (n *subnetName) String() string { + return "projects/" + n.Project.ID + "/locations/" + n.Location + "/zones/" + n.Zone + "/subnets/" + n.SubnetId +} + +// parseSubnetName parses a string into a subnetName. +// The expected form is projects//locations//zones//subnets/ +func (s *MockService) parseSubnetName(name string) (*subnetName, error) { + tokens := strings.Split(name, "/") + + if len(tokens) == 8 && tokens[0] == "projects" && tokens[2] == "locations" && tokens[4] == "zones" && tokens[6] == "subnets" { + project, err := s.projects.GetProjectByID(tokens[1]) + if err != nil { + return nil, err + } + + name := &subnetName{ + Project: project, + Location: tokens[3], + Zone: tokens[5], + SubnetId: tokens[7], + } + + return name, nil + } else { + return nil, status.Errorf(codes.InvalidArgument, "name %q is not valid", name) + } +} diff --git a/mockgcp/mockedgenetwork/network.go b/mockgcp/mockedgenetwork/network.go new file mode 100644 index 0000000000..515c2a9aea --- /dev/null +++ b/mockgcp/mockedgenetwork/network.go @@ -0,0 +1,104 @@ +// Copyright 2022 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 +// +// http://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. + +package mockedgenetwork + +import ( + "context" + + "google.golang.org/genproto/googleapis/longrunning" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" + apierrors "k8s.io/apimachinery/pkg/api/errors" + + "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/pkg/storage" + pb "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/generated/mockgcp/cloud/edgenetwork/v1" +) + + +func (s *EdgenetworkV1) GetNetwork(ctx context.Context, req *pb.GetNetworkRequest) (*pb.Network, error) { + name, err := s.parseNetworkName(req.Name) + if err != nil { + return nil, err + } + + fqn := name.String() + obj := &pb.Network{} + if err := s.storage.Get(ctx, fqn, obj); err != nil { + if apierrors.IsNotFound(err) { + return nil, status.Errorf(codes.NotFound, "network %q not found", name) + } else { + return nil, status.Errorf(codes.Internal, "error reading network: %v", err) + } + } + + return obj, nil +} + +func (s *EdgenetworkV1) CreateNetwork(ctx context.Context, req *pb.CreateNetworkRequest) (*longrunning.Operation, error) { + reqName := req.Parent + "/networks/" + req.NetworkId + name, err := s.parseNetworkName(reqName) + if err != nil { + return nil, err + } + + fqn := name.String() + + obj := proto.Clone(req.Network).(*pb.Network) + obj.Name = fqn + + if obj.GetMtu() != 9000 && obj.GetMtu() != 1500{ + return nil, status.Errorf(codes.InvalidArgument, "invalid network MTU: %v", obj.GetMtu()) + } + + if err := s.storage.Create(ctx, fqn, obj); err != nil { + return nil, status.Errorf(codes.Internal, "error creating network: %v", err) + } + + return s.operations.NewLRO(ctx) +} + +func (s *EdgenetworkV1) DeleteNetwork(ctx context.Context, req *pb.DeleteNetworkRequest) (*longrunning.Operation, error) { + name, err := s.parseNetworkName(req.Name) + if err != nil { + return nil, err + } + + fqn := name.String() + + // Network must not have any subnets depending on it + subnetKind := (&pb.Subnet{}).ProtoReflect().Descriptor() + if err := s.storage.List(ctx, subnetKind, storage.ListOptions{}, func (obj proto.Message) error { + subnet := obj.(*pb.Subnet) + if subnet.GetNetwork() == fqn { + return status.Errorf(codes.FailedPrecondition, + "cannot delete network with attached subnet: %v", subnet.GetName()) + } + return nil + }); err != nil { + return nil, err + } + + deletedObj := &pb.Network{} + if err := s.storage.Delete(ctx, fqn, deletedObj); err != nil { + if apierrors.IsNotFound(err) { + return nil, status.Errorf(codes.NotFound, "network %q not found", name) + } else { + return nil, status.Errorf(codes.Internal, "error deleting network: %v", err) + } + } + + return s.operations.NewLRO(ctx) +} diff --git a/mockgcp/mockedgenetwork/service.go b/mockgcp/mockedgenetwork/service.go new file mode 100644 index 0000000000..ac45cbaab0 --- /dev/null +++ b/mockgcp/mockedgenetwork/service.go @@ -0,0 +1,75 @@ +// Copyright 2022 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 +// +// http://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. + +package mockedgenetwork + +import ( + "context" + + "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" + "google.golang.org/grpc" + "sigs.k8s.io/controller-runtime/pkg/client" + + "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/common" + "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/common/operations" + "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/common/projects" + pb "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/generated/mockgcp/cloud/edgenetwork/v1" + "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/pkg/storage" +) + +// MockService represents a mocked edgenetwork service. +type MockService struct { + kube client.Client + storage storage.Storage + + projects *projects.ProjectStore + operations *operations.Operations + + v1 *EdgenetworkV1 +} + +type EdgenetworkV1 struct { + *MockService + pb.UnimplementedEdgeNetworkServer +} + +// New creates a MockService. +func New(env *common.MockEnvironment, storage storage.Storage) *MockService { + s := &MockService{ + kube: env.GetKubeClient(), + storage: storage, + projects: env.GetProjects(), + operations: operations.NewOperationsService(storage), + } + s.v1 = &EdgenetworkV1{MockService: s} + return s +} + +func (s *MockService) ExpectedHost() string { + return "edgenetwork.googleapis.com" +} + +func (s *MockService) Register(grpcServer *grpc.Server) { + pb.RegisterEdgeNetworkServer(grpcServer, s.v1) +} + +func (s *MockService) NewHTTPMux(ctx context.Context, conn *grpc.ClientConn) (*runtime.ServeMux, error) { + mux := runtime.NewServeMux() + + if err := pb.RegisterEdgeNetworkHandler(ctx, mux, conn); err != nil { + return nil, err + } + + return mux, nil +} diff --git a/mockgcp/mockedgenetwork/subnet.go b/mockgcp/mockedgenetwork/subnet.go new file mode 100644 index 0000000000..462539a9cf --- /dev/null +++ b/mockgcp/mockedgenetwork/subnet.go @@ -0,0 +1,92 @@ +// Copyright 2022 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 +// +// http://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. + +package mockedgenetwork + +import ( + "context" + + "google.golang.org/genproto/googleapis/longrunning" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" + apierrors "k8s.io/apimachinery/pkg/api/errors" + + pb "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/generated/mockgcp/cloud/edgenetwork/v1" +) + + +func (s *EdgenetworkV1) GetSubnet(ctx context.Context, req *pb.GetSubnetRequest) (*pb.Subnet, error) { + name, err := s.parseSubnetName(req.Name) + if err != nil { + return nil, err + } + + fqn := name.String() + obj := &pb.Subnet{} + if err := s.storage.Get(ctx, fqn, obj); err != nil { + if apierrors.IsNotFound(err) { + return nil, status.Errorf(codes.NotFound, "subnet %q not found", name) + } else { + return nil, status.Errorf(codes.Internal, "error reading subnet: %v", err) + } + } + + return obj, nil +} + +func (s *EdgenetworkV1) CreateSubnet(ctx context.Context, req *pb.CreateSubnetRequest) (*longrunning.Operation, error) { + reqName := req.Parent + "/subnets/" + req.SubnetId + name, err := s.parseSubnetName(reqName) + if err != nil { + return nil, err + } + + fqn := name.String() + + obj := proto.Clone(req.Subnet).(*pb.Subnet) + obj.Name = fqn + + // Network reference must exist + networkName := obj.GetNetwork() + if _, err := s.GetNetwork(ctx, &pb.GetNetworkRequest{Name: networkName}); err != nil { + return nil, status.Errorf(codes.FailedPrecondition, "network not found: %v", err) + } + + if err := s.storage.Create(ctx, fqn, obj); err != nil { + return nil, status.Errorf(codes.Internal, "error creating subnet: %v", err) + } + + return s.operations.NewLRO(ctx) +} + +func (s *EdgenetworkV1) DeleteSubnet(ctx context.Context, req *pb.DeleteSubnetRequest) (*longrunning.Operation, error) { + name, err := s.parseSubnetName(req.Name) + if err != nil { + return nil, err + } + + fqn := name.String() + + deletedObj := &pb.Subnet{} + if err := s.storage.Delete(ctx, fqn, deletedObj); err != nil { + if apierrors.IsNotFound(err) { + return nil, status.Errorf(codes.NotFound, "subnet %q not found", name) + } else { + return nil, status.Errorf(codes.Internal, "error deleting subnet: %v", err) + } + } + + return s.operations.NewLRO(ctx) +} diff --git a/pkg/clients/generated/apis/edgenetwork/group.go b/pkg/clients/generated/apis/edgenetwork/group.go new file mode 100644 index 0000000000..e2857dbdfe --- /dev/null +++ b/pkg/clients/generated/apis/edgenetwork/group.go @@ -0,0 +1,32 @@ +// Copyright 2020 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 +// +// http://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 CODE *** AUTO GENERATED CODE *** +// +// ---------------------------------------------------------------------------- +// +// This file is automatically generated by Config Connector and manual +// changes will be clobbered when the file is regenerated. +// +// ---------------------------------------------------------------------------- + +// *** DISCLAIMER *** +// Config Connector's go-client for CRDs is currently in ALPHA, which means +// that future versions of the go-client may include breaking changes. +// Please try it out and give us feedback! + +// Package edgenetwork contains edgenetwork API versions. +package edgenetwork diff --git a/pkg/clients/generated/apis/edgenetwork/v1beta1/doc.go b/pkg/clients/generated/apis/edgenetwork/v1beta1/doc.go new file mode 100644 index 0000000000..cb997a9908 --- /dev/null +++ b/pkg/clients/generated/apis/edgenetwork/v1beta1/doc.go @@ -0,0 +1,41 @@ +// Copyright 2020 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 +// +// http://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 CODE *** AUTO GENERATED CODE *** +// +// ---------------------------------------------------------------------------- +// +// This file is automatically generated by Config Connector and manual +// changes will be clobbered when the file is regenerated. +// +// ---------------------------------------------------------------------------- + +// *** DISCLAIMER *** +// Config Connector's go-client for CRDs is currently in ALPHA, which means +// that future versions of the go-client may include breaking changes. +// Please try it out and give us feedback! + +// Package v1beta1 contains API Schema definitions for the edgenetwork v1beta1 API group. +// +k8s:openapi-gen=true +// +k8s:deepcopy-gen=package,register +// +k8s:conversion-gen=github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/pkg/apis/edgenetwork +// +k8s:defaulter-gen=TypeMeta +// +groupName=edgenetwork.cnrm.cloud.google.com + +// Generate deepcopy object for edgenetwork/v1beta1 API group +// +//go:generate go run ../../../../../../scripts/deepcopy-gen/main.go -O zz_generated.deepcopy -i . -h ../../../../../../hack/boilerplate_client_alpha.go.txt +package v1beta1 diff --git a/pkg/clients/generated/apis/edgenetwork/v1beta1/edgenetworknetwork_types.go b/pkg/clients/generated/apis/edgenetwork/v1beta1/edgenetworknetwork_types.go new file mode 100644 index 0000000000..158b5018e8 --- /dev/null +++ b/pkg/clients/generated/apis/edgenetwork/v1beta1/edgenetworknetwork_types.go @@ -0,0 +1,111 @@ +// Copyright 2020 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 +// +// http://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 CODE *** AUTO GENERATED CODE *** +// +// ---------------------------------------------------------------------------- +// +// This file is automatically generated by Config Connector and manual +// changes will be clobbered when the file is regenerated. +// +// ---------------------------------------------------------------------------- + +// *** DISCLAIMER *** +// Config Connector's go-client for CRDs is currently in ALPHA, which means +// that future versions of the go-client may include breaking changes. +// Please try it out and give us feedback! + +package v1beta1 + +import ( + "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/k8s/v1alpha1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +type EdgeNetworkNetworkSpec struct { + /* Immutable. A free-text description of the resource. Max length 1024 characters. */ + // +optional + Description *string `json:"description,omitempty"` + + /* Immutable. The Google Cloud region to which the target Distributed Cloud Edge zone belongs. */ + Location string `json:"location"` + + /* Immutable. IP (L3) MTU value of the network. Default value is '1500'. Possible values are: '1500', '9000'. */ + // +optional + Mtu *int `json:"mtu,omitempty"` + + /* The project that this resource belongs to. */ + ProjectRef v1alpha1.ResourceRef `json:"projectRef"` + + /* Immutable. Optional. The networkId of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default. */ + // +optional + ResourceID *string `json:"resourceID,omitempty"` + + /* Immutable. The name of the target Distributed Cloud Edge zone. */ + Zone string `json:"zone"` +} + +type EdgeNetworkNetworkStatus struct { + /* Conditions represent the latest available observations of the + EdgeNetworkNetwork's current state. */ + Conditions []v1alpha1.Condition `json:"conditions,omitempty"` + /* The time when the subnet was created. + A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine + fractional digits. Examples: '2014-10-02T15:01:23Z' and '2014-10-02T15:01:23.045123456Z'. */ + // +optional + CreateTime *string `json:"createTime,omitempty"` + + /* The canonical name of this resource, with format + 'projects/{{project}}/locations/{{location}}/zones/{{zone}}/networks/{{network_id}}'. */ + // +optional + Name *string `json:"name,omitempty"` + + /* ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. */ + // +optional + ObservedGeneration *int `json:"observedGeneration,omitempty"` + + /* The time when the subnet was last updated. + A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine + fractional digits. Examples: '2014-10-02T15:01:23Z' and '2014-10-02T15:01:23.045123456Z'. */ + // +optional + UpdateTime *string `json:"updateTime,omitempty"` +} + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// EdgeNetworkNetwork is the Schema for the edgenetwork API +// +k8s:openapi-gen=true +type EdgeNetworkNetwork struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + Spec EdgeNetworkNetworkSpec `json:"spec,omitempty"` + Status EdgeNetworkNetworkStatus `json:"status,omitempty"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// EdgeNetworkNetworkList contains a list of EdgeNetworkNetwork +type EdgeNetworkNetworkList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []EdgeNetworkNetwork `json:"items"` +} + +func init() { + SchemeBuilder.Register(&EdgeNetworkNetwork{}, &EdgeNetworkNetworkList{}) +} diff --git a/pkg/clients/generated/apis/edgenetwork/v1beta1/edgenetworksubnet_types.go b/pkg/clients/generated/apis/edgenetwork/v1beta1/edgenetworksubnet_types.go new file mode 100644 index 0000000000..bd08aeac7c --- /dev/null +++ b/pkg/clients/generated/apis/edgenetwork/v1beta1/edgenetworksubnet_types.go @@ -0,0 +1,125 @@ +// Copyright 2020 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 +// +// http://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 CODE *** AUTO GENERATED CODE *** +// +// ---------------------------------------------------------------------------- +// +// This file is automatically generated by Config Connector and manual +// changes will be clobbered when the file is regenerated. +// +// ---------------------------------------------------------------------------- + +// *** DISCLAIMER *** +// Config Connector's go-client for CRDs is currently in ALPHA, which means +// that future versions of the go-client may include breaking changes. +// Please try it out and give us feedback! + +package v1beta1 + +import ( + "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/k8s/v1alpha1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +type EdgeNetworkSubnetSpec struct { + /* Immutable. A free-text description of the resource. Max length 1024 characters. */ + // +optional + Description *string `json:"description,omitempty"` + + /* Immutable. The ranges of ipv4 addresses that are owned by this subnetwork, in CIDR format. */ + // +optional + Ipv4Cidr []string `json:"ipv4Cidr,omitempty"` + + /* Immutable. The ranges of ipv6 addresses that are owned by this subnetwork, in CIDR format. */ + // +optional + Ipv6Cidr []string `json:"ipv6Cidr,omitempty"` + + /* Immutable. The Google Cloud region to which the target Distributed Cloud Edge zone belongs. */ + Location string `json:"location"` + + NetworkRef v1alpha1.ResourceRef `json:"networkRef"` + + /* The project that this resource belongs to. */ + ProjectRef v1alpha1.ResourceRef `json:"projectRef"` + + /* Immutable. Optional. The subnetId of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default. */ + // +optional + ResourceID *string `json:"resourceID,omitempty"` + + /* Immutable. VLAN ID for this subnetwork. If not specified, one is assigned automatically. */ + // +optional + VlanId *int `json:"vlanId,omitempty"` + + /* Immutable. The name of the target Distributed Cloud Edge zone. */ + Zone string `json:"zone"` +} + +type EdgeNetworkSubnetStatus struct { + /* Conditions represent the latest available observations of the + EdgeNetworkSubnet's current state. */ + Conditions []v1alpha1.Condition `json:"conditions,omitempty"` + /* The time when the subnet was created. + A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine + fractional digits. Examples: '2014-10-02T15:01:23Z' and '2014-10-02T15:01:23.045123456Z'. */ + // +optional + CreateTime *string `json:"createTime,omitempty"` + + /* The canonical name of this resource, with format + 'projects/{{project}}/locations/{{location}}/zones/{{zone}}/subnets/{{subnet_id}}'. */ + // +optional + Name *string `json:"name,omitempty"` + + /* ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. */ + // +optional + ObservedGeneration *int `json:"observedGeneration,omitempty"` + + /* Current stage of the resource to the device by config push. */ + // +optional + State *string `json:"state,omitempty"` + + /* The time when the subnet was last updated. + A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine + fractional digits. Examples: '2014-10-02T15:01:23Z' and '2014-10-02T15:01:23.045123456Z'. */ + // +optional + UpdateTime *string `json:"updateTime,omitempty"` +} + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// EdgeNetworkSubnet is the Schema for the edgenetwork API +// +k8s:openapi-gen=true +type EdgeNetworkSubnet struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + Spec EdgeNetworkSubnetSpec `json:"spec,omitempty"` + Status EdgeNetworkSubnetStatus `json:"status,omitempty"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// EdgeNetworkSubnetList contains a list of EdgeNetworkSubnet +type EdgeNetworkSubnetList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []EdgeNetworkSubnet `json:"items"` +} + +func init() { + SchemeBuilder.Register(&EdgeNetworkSubnet{}, &EdgeNetworkSubnetList{}) +} diff --git a/pkg/clients/generated/apis/edgenetwork/v1beta1/register.go b/pkg/clients/generated/apis/edgenetwork/v1beta1/register.go new file mode 100644 index 0000000000..ff1550b87a --- /dev/null +++ b/pkg/clients/generated/apis/edgenetwork/v1beta1/register.go @@ -0,0 +1,69 @@ +// Copyright 2020 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 +// +// http://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 CODE *** AUTO GENERATED CODE *** +// +// ---------------------------------------------------------------------------- +// +// This file is automatically generated by Config Connector and manual +// changes will be clobbered when the file is regenerated. +// +// ---------------------------------------------------------------------------- + +// *** DISCLAIMER *** +// Config Connector's go-client for CRDs is currently in ALPHA, which means +// that future versions of the go-client may include breaking changes. +// Please try it out and give us feedback! + +// Package v1beta1 contains API Schema definitions for the edgenetwork v1beta1 API group. +// +k8s:openapi-gen=true +// +k8s:deepcopy-gen=package,register +// +k8s:conversion-gen=github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/pkg/apis/edgenetwork +// +k8s:defaulter-gen=TypeMeta +// +groupName=edgenetwork.cnrm.cloud.google.com +package v1beta1 + +import ( + "reflect" + + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +var ( + // SchemeGroupVersion is the group version used to register these objects. + SchemeGroupVersion = schema.GroupVersion{Group: "edgenetwork.cnrm.cloud.google.com", Version: "v1beta1"} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme. + SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion} + + // AddToScheme is a global function that registers this API group & version to a scheme + AddToScheme = SchemeBuilder.AddToScheme + + EdgeNetworkNetworkGVK = schema.GroupVersionKind{ + Group: SchemeGroupVersion.Group, + Version: SchemeGroupVersion.Version, + Kind: reflect.TypeOf(EdgeNetworkNetwork{}).Name(), + } + + EdgeNetworkSubnetGVK = schema.GroupVersionKind{ + Group: SchemeGroupVersion.Group, + Version: SchemeGroupVersion.Version, + Kind: reflect.TypeOf(EdgeNetworkSubnet{}).Name(), + } + + edgenetworkAPIVersion = SchemeGroupVersion.String() +) diff --git a/pkg/clients/generated/apis/edgenetwork/v1beta1/zz_generated.deepcopy.go b/pkg/clients/generated/apis/edgenetwork/v1beta1/zz_generated.deepcopy.go new file mode 100644 index 0000000000..1689dd17b2 --- /dev/null +++ b/pkg/clients/generated/apis/edgenetwork/v1beta1/zz_generated.deepcopy.go @@ -0,0 +1,314 @@ +//go:build !ignore_autogenerated +// +build !ignore_autogenerated + +// Copyright 2020 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 +// +// http://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. + +// *** DISCLAIMER *** +// Config Connector's go-client for CRDs is currently in ALPHA, which means +// that future versions of the go-client may include breaking changes. +// Please try it out and give us feedback! + +// Code generated by main. DO NOT EDIT. + +package v1beta1 + +import ( + v1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/k8s/v1alpha1" + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EdgeNetworkNetwork) DeepCopyInto(out *EdgeNetworkNetwork) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EdgeNetworkNetwork. +func (in *EdgeNetworkNetwork) DeepCopy() *EdgeNetworkNetwork { + if in == nil { + return nil + } + out := new(EdgeNetworkNetwork) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *EdgeNetworkNetwork) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EdgeNetworkNetworkList) DeepCopyInto(out *EdgeNetworkNetworkList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]EdgeNetworkNetwork, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EdgeNetworkNetworkList. +func (in *EdgeNetworkNetworkList) DeepCopy() *EdgeNetworkNetworkList { + if in == nil { + return nil + } + out := new(EdgeNetworkNetworkList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *EdgeNetworkNetworkList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EdgeNetworkNetworkSpec) DeepCopyInto(out *EdgeNetworkNetworkSpec) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Mtu != nil { + in, out := &in.Mtu, &out.Mtu + *out = new(int) + **out = **in + } + out.ProjectRef = in.ProjectRef + if in.ResourceID != nil { + in, out := &in.ResourceID, &out.ResourceID + *out = new(string) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EdgeNetworkNetworkSpec. +func (in *EdgeNetworkNetworkSpec) DeepCopy() *EdgeNetworkNetworkSpec { + if in == nil { + return nil + } + out := new(EdgeNetworkNetworkSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EdgeNetworkNetworkStatus) DeepCopyInto(out *EdgeNetworkNetworkStatus) { + *out = *in + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]v1alpha1.Condition, len(*in)) + copy(*out, *in) + } + if in.CreateTime != nil { + in, out := &in.CreateTime, &out.CreateTime + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.ObservedGeneration != nil { + in, out := &in.ObservedGeneration, &out.ObservedGeneration + *out = new(int) + **out = **in + } + if in.UpdateTime != nil { + in, out := &in.UpdateTime, &out.UpdateTime + *out = new(string) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EdgeNetworkNetworkStatus. +func (in *EdgeNetworkNetworkStatus) DeepCopy() *EdgeNetworkNetworkStatus { + if in == nil { + return nil + } + out := new(EdgeNetworkNetworkStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EdgeNetworkSubnet) DeepCopyInto(out *EdgeNetworkSubnet) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EdgeNetworkSubnet. +func (in *EdgeNetworkSubnet) DeepCopy() *EdgeNetworkSubnet { + if in == nil { + return nil + } + out := new(EdgeNetworkSubnet) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *EdgeNetworkSubnet) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EdgeNetworkSubnetList) DeepCopyInto(out *EdgeNetworkSubnetList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]EdgeNetworkSubnet, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EdgeNetworkSubnetList. +func (in *EdgeNetworkSubnetList) DeepCopy() *EdgeNetworkSubnetList { + if in == nil { + return nil + } + out := new(EdgeNetworkSubnetList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *EdgeNetworkSubnetList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EdgeNetworkSubnetSpec) DeepCopyInto(out *EdgeNetworkSubnetSpec) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Ipv4Cidr != nil { + in, out := &in.Ipv4Cidr, &out.Ipv4Cidr + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Ipv6Cidr != nil { + in, out := &in.Ipv6Cidr, &out.Ipv6Cidr + *out = make([]string, len(*in)) + copy(*out, *in) + } + out.NetworkRef = in.NetworkRef + out.ProjectRef = in.ProjectRef + if in.ResourceID != nil { + in, out := &in.ResourceID, &out.ResourceID + *out = new(string) + **out = **in + } + if in.VlanId != nil { + in, out := &in.VlanId, &out.VlanId + *out = new(int) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EdgeNetworkSubnetSpec. +func (in *EdgeNetworkSubnetSpec) DeepCopy() *EdgeNetworkSubnetSpec { + if in == nil { + return nil + } + out := new(EdgeNetworkSubnetSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EdgeNetworkSubnetStatus) DeepCopyInto(out *EdgeNetworkSubnetStatus) { + *out = *in + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]v1alpha1.Condition, len(*in)) + copy(*out, *in) + } + if in.CreateTime != nil { + in, out := &in.CreateTime, &out.CreateTime + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.ObservedGeneration != nil { + in, out := &in.ObservedGeneration, &out.ObservedGeneration + *out = new(int) + **out = **in + } + if in.State != nil { + in, out := &in.State, &out.State + *out = new(string) + **out = **in + } + if in.UpdateTime != nil { + in, out := &in.UpdateTime, &out.UpdateTime + *out = new(string) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EdgeNetworkSubnetStatus. +func (in *EdgeNetworkSubnetStatus) DeepCopy() *EdgeNetworkSubnetStatus { + if in == nil { + return nil + } + out := new(EdgeNetworkSubnetStatus) + in.DeepCopyInto(out) + return out +} diff --git a/pkg/clients/generated/client/clientset/versioned/clientset.go b/pkg/clients/generated/client/clientset/versioned/clientset.go index 233d982abd..9ae19f848a 100644 --- a/pkg/clients/generated/client/clientset/versioned/clientset.go +++ b/pkg/clients/generated/client/clientset/versioned/clientset.go @@ -76,6 +76,7 @@ import ( dnsv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/dns/v1alpha1" dnsv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/dns/v1beta1" documentaiv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/documentai/v1alpha1" + edgenetworkv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/edgenetwork/v1beta1" essentialcontactsv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/essentialcontacts/v1alpha1" eventarcv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/eventarc/v1beta1" filestorev1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/filestore/v1alpha1" @@ -194,6 +195,7 @@ type Interface interface { DnsV1alpha1() dnsv1alpha1.DnsV1alpha1Interface DnsV1beta1() dnsv1beta1.DnsV1beta1Interface DocumentaiV1alpha1() documentaiv1alpha1.DocumentaiV1alpha1Interface + EdgenetworkV1beta1() edgenetworkv1beta1.EdgenetworkV1beta1Interface EssentialcontactsV1alpha1() essentialcontactsv1alpha1.EssentialcontactsV1alpha1Interface EventarcV1beta1() eventarcv1beta1.EventarcV1beta1Interface FilestoreV1alpha1() filestorev1alpha1.FilestoreV1alpha1Interface @@ -311,6 +313,7 @@ type Clientset struct { dnsV1alpha1 *dnsv1alpha1.DnsV1alpha1Client dnsV1beta1 *dnsv1beta1.DnsV1beta1Client documentaiV1alpha1 *documentaiv1alpha1.DocumentaiV1alpha1Client + edgenetworkV1beta1 *edgenetworkv1beta1.EdgenetworkV1beta1Client essentialcontactsV1alpha1 *essentialcontactsv1alpha1.EssentialcontactsV1alpha1Client eventarcV1beta1 *eventarcv1beta1.EventarcV1beta1Client filestoreV1alpha1 *filestorev1alpha1.FilestoreV1alpha1Client @@ -628,6 +631,11 @@ func (c *Clientset) DocumentaiV1alpha1() documentaiv1alpha1.DocumentaiV1alpha1In return c.documentaiV1alpha1 } +// EdgenetworkV1beta1 retrieves the EdgenetworkV1beta1Client +func (c *Clientset) EdgenetworkV1beta1() edgenetworkv1beta1.EdgenetworkV1beta1Interface { + return c.edgenetworkV1beta1 +} + // EssentialcontactsV1alpha1 retrieves the EssentialcontactsV1alpha1Client func (c *Clientset) EssentialcontactsV1alpha1() essentialcontactsv1alpha1.EssentialcontactsV1alpha1Interface { return c.essentialcontactsV1alpha1 @@ -1176,6 +1184,10 @@ func NewForConfigAndClient(c *rest.Config, httpClient *http.Client) (*Clientset, if err != nil { return nil, err } + cs.edgenetworkV1beta1, err = edgenetworkv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient) + if err != nil { + return nil, err + } cs.essentialcontactsV1alpha1, err = essentialcontactsv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient) if err != nil { return nil, err @@ -1488,6 +1500,7 @@ func New(c rest.Interface) *Clientset { cs.dnsV1alpha1 = dnsv1alpha1.New(c) cs.dnsV1beta1 = dnsv1beta1.New(c) cs.documentaiV1alpha1 = documentaiv1alpha1.New(c) + cs.edgenetworkV1beta1 = edgenetworkv1beta1.New(c) cs.essentialcontactsV1alpha1 = essentialcontactsv1alpha1.New(c) cs.eventarcV1beta1 = eventarcv1beta1.New(c) cs.filestoreV1alpha1 = filestorev1alpha1.New(c) diff --git a/pkg/clients/generated/client/clientset/versioned/fake/clientset_generated.go b/pkg/clients/generated/client/clientset/versioned/fake/clientset_generated.go index aa2a13126a..768928c65b 100644 --- a/pkg/clients/generated/client/clientset/versioned/fake/clientset_generated.go +++ b/pkg/clients/generated/client/clientset/versioned/fake/clientset_generated.go @@ -125,6 +125,8 @@ import ( fakednsv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/dns/v1beta1/fake" documentaiv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/documentai/v1alpha1" fakedocumentaiv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/documentai/v1alpha1/fake" + edgenetworkv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/edgenetwork/v1beta1" + fakeedgenetworkv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/edgenetwork/v1beta1/fake" essentialcontactsv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/essentialcontacts/v1alpha1" fakeessentialcontactsv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/essentialcontacts/v1alpha1/fake" eventarcv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/eventarc/v1beta1" @@ -557,6 +559,11 @@ func (c *Clientset) DocumentaiV1alpha1() documentaiv1alpha1.DocumentaiV1alpha1In return &fakedocumentaiv1alpha1.FakeDocumentaiV1alpha1{Fake: &c.Fake} } +// EdgenetworkV1beta1 retrieves the EdgenetworkV1beta1Client +func (c *Clientset) EdgenetworkV1beta1() edgenetworkv1beta1.EdgenetworkV1beta1Interface { + return &fakeedgenetworkv1beta1.FakeEdgenetworkV1beta1{Fake: &c.Fake} +} + // EssentialcontactsV1alpha1 retrieves the EssentialcontactsV1alpha1Client func (c *Clientset) EssentialcontactsV1alpha1() essentialcontactsv1alpha1.EssentialcontactsV1alpha1Interface { return &fakeessentialcontactsv1alpha1.FakeEssentialcontactsV1alpha1{Fake: &c.Fake} diff --git a/pkg/clients/generated/client/clientset/versioned/fake/register.go b/pkg/clients/generated/client/clientset/versioned/fake/register.go index 2ce8f5c14f..11e7d8ae1d 100644 --- a/pkg/clients/generated/client/clientset/versioned/fake/register.go +++ b/pkg/clients/generated/client/clientset/versioned/fake/register.go @@ -73,6 +73,7 @@ import ( dnsv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/dns/v1alpha1" dnsv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/dns/v1beta1" documentaiv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/documentai/v1alpha1" + edgenetworkv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/edgenetwork/v1beta1" essentialcontactsv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/essentialcontacts/v1alpha1" eventarcv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/eventarc/v1beta1" filestorev1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/filestore/v1alpha1" @@ -195,6 +196,7 @@ var localSchemeBuilder = runtime.SchemeBuilder{ dnsv1alpha1.AddToScheme, dnsv1beta1.AddToScheme, documentaiv1alpha1.AddToScheme, + edgenetworkv1beta1.AddToScheme, essentialcontactsv1alpha1.AddToScheme, eventarcv1beta1.AddToScheme, filestorev1alpha1.AddToScheme, diff --git a/pkg/clients/generated/client/clientset/versioned/scheme/register.go b/pkg/clients/generated/client/clientset/versioned/scheme/register.go index 1430cb1688..0c6bdb841b 100644 --- a/pkg/clients/generated/client/clientset/versioned/scheme/register.go +++ b/pkg/clients/generated/client/clientset/versioned/scheme/register.go @@ -73,6 +73,7 @@ import ( dnsv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/dns/v1alpha1" dnsv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/dns/v1beta1" documentaiv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/documentai/v1alpha1" + edgenetworkv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/edgenetwork/v1beta1" essentialcontactsv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/essentialcontacts/v1alpha1" eventarcv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/eventarc/v1beta1" filestorev1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/filestore/v1alpha1" @@ -195,6 +196,7 @@ var localSchemeBuilder = runtime.SchemeBuilder{ dnsv1alpha1.AddToScheme, dnsv1beta1.AddToScheme, documentaiv1alpha1.AddToScheme, + edgenetworkv1beta1.AddToScheme, essentialcontactsv1alpha1.AddToScheme, eventarcv1beta1.AddToScheme, filestorev1alpha1.AddToScheme, diff --git a/pkg/clients/generated/client/clientset/versioned/typed/edgenetwork/v1beta1/doc.go b/pkg/clients/generated/client/clientset/versioned/typed/edgenetwork/v1beta1/doc.go new file mode 100644 index 0000000000..0bf01d15b1 --- /dev/null +++ b/pkg/clients/generated/client/clientset/versioned/typed/edgenetwork/v1beta1/doc.go @@ -0,0 +1,23 @@ +// Copyright 2020 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 +// +// http://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. + +// *** DISCLAIMER *** +// Config Connector's go-client for CRDs is currently in ALPHA, which means +// that future versions of the go-client may include breaking changes. +// Please try it out and give us feedback! + +// Code generated by main. DO NOT EDIT. + +// This package has the automatically generated typed clients. +package v1beta1 diff --git a/pkg/clients/generated/client/clientset/versioned/typed/edgenetwork/v1beta1/edgenetwork_client.go b/pkg/clients/generated/client/clientset/versioned/typed/edgenetwork/v1beta1/edgenetwork_client.go new file mode 100644 index 0000000000..4f5cb0267c --- /dev/null +++ b/pkg/clients/generated/client/clientset/versioned/typed/edgenetwork/v1beta1/edgenetwork_client.go @@ -0,0 +1,115 @@ +// Copyright 2020 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 +// +// http://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. + +// *** DISCLAIMER *** +// Config Connector's go-client for CRDs is currently in ALPHA, which means +// that future versions of the go-client may include breaking changes. +// Please try it out and give us feedback! + +// Code generated by main. DO NOT EDIT. + +package v1beta1 + +import ( + "net/http" + + v1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/edgenetwork/v1beta1" + "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/scheme" + rest "k8s.io/client-go/rest" +) + +type EdgenetworkV1beta1Interface interface { + RESTClient() rest.Interface + EdgeNetworkNetworksGetter + EdgeNetworkSubnetsGetter +} + +// EdgenetworkV1beta1Client is used to interact with features provided by the edgenetwork.cnrm.cloud.google.com group. +type EdgenetworkV1beta1Client struct { + restClient rest.Interface +} + +func (c *EdgenetworkV1beta1Client) EdgeNetworkNetworks(namespace string) EdgeNetworkNetworkInterface { + return newEdgeNetworkNetworks(c, namespace) +} + +func (c *EdgenetworkV1beta1Client) EdgeNetworkSubnets(namespace string) EdgeNetworkSubnetInterface { + return newEdgeNetworkSubnets(c, namespace) +} + +// NewForConfig creates a new EdgenetworkV1beta1Client for the given config. +// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient), +// where httpClient was generated with rest.HTTPClientFor(c). +func NewForConfig(c *rest.Config) (*EdgenetworkV1beta1Client, error) { + config := *c + if err := setConfigDefaults(&config); err != nil { + return nil, err + } + httpClient, err := rest.HTTPClientFor(&config) + if err != nil { + return nil, err + } + return NewForConfigAndClient(&config, httpClient) +} + +// NewForConfigAndClient creates a new EdgenetworkV1beta1Client for the given config and http client. +// Note the http client provided takes precedence over the configured transport values. +func NewForConfigAndClient(c *rest.Config, h *http.Client) (*EdgenetworkV1beta1Client, error) { + config := *c + if err := setConfigDefaults(&config); err != nil { + return nil, err + } + client, err := rest.RESTClientForConfigAndClient(&config, h) + if err != nil { + return nil, err + } + return &EdgenetworkV1beta1Client{client}, nil +} + +// NewForConfigOrDie creates a new EdgenetworkV1beta1Client for the given config and +// panics if there is an error in the config. +func NewForConfigOrDie(c *rest.Config) *EdgenetworkV1beta1Client { + client, err := NewForConfig(c) + if err != nil { + panic(err) + } + return client +} + +// New creates a new EdgenetworkV1beta1Client for the given RESTClient. +func New(c rest.Interface) *EdgenetworkV1beta1Client { + return &EdgenetworkV1beta1Client{c} +} + +func setConfigDefaults(config *rest.Config) error { + gv := v1beta1.SchemeGroupVersion + config.GroupVersion = &gv + config.APIPath = "/apis" + config.NegotiatedSerializer = scheme.Codecs.WithoutConversion() + + if config.UserAgent == "" { + config.UserAgent = rest.DefaultKubernetesUserAgent() + } + + return nil +} + +// RESTClient returns a RESTClient that is used to communicate +// with API server by this client implementation. +func (c *EdgenetworkV1beta1Client) RESTClient() rest.Interface { + if c == nil { + return nil + } + return c.restClient +} diff --git a/pkg/clients/generated/client/clientset/versioned/typed/edgenetwork/v1beta1/edgenetworknetwork.go b/pkg/clients/generated/client/clientset/versioned/typed/edgenetwork/v1beta1/edgenetworknetwork.go new file mode 100644 index 0000000000..e903471dde --- /dev/null +++ b/pkg/clients/generated/client/clientset/versioned/typed/edgenetwork/v1beta1/edgenetworknetwork.go @@ -0,0 +1,198 @@ +// Copyright 2020 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 +// +// http://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. + +// *** DISCLAIMER *** +// Config Connector's go-client for CRDs is currently in ALPHA, which means +// that future versions of the go-client may include breaking changes. +// Please try it out and give us feedback! + +// Code generated by main. DO NOT EDIT. + +package v1beta1 + +import ( + "context" + "time" + + v1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/edgenetwork/v1beta1" + scheme "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/scheme" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + rest "k8s.io/client-go/rest" +) + +// EdgeNetworkNetworksGetter has a method to return a EdgeNetworkNetworkInterface. +// A group's client should implement this interface. +type EdgeNetworkNetworksGetter interface { + EdgeNetworkNetworks(namespace string) EdgeNetworkNetworkInterface +} + +// EdgeNetworkNetworkInterface has methods to work with EdgeNetworkNetwork resources. +type EdgeNetworkNetworkInterface interface { + Create(ctx context.Context, edgeNetworkNetwork *v1beta1.EdgeNetworkNetwork, opts v1.CreateOptions) (*v1beta1.EdgeNetworkNetwork, error) + Update(ctx context.Context, edgeNetworkNetwork *v1beta1.EdgeNetworkNetwork, opts v1.UpdateOptions) (*v1beta1.EdgeNetworkNetwork, error) + UpdateStatus(ctx context.Context, edgeNetworkNetwork *v1beta1.EdgeNetworkNetwork, opts v1.UpdateOptions) (*v1beta1.EdgeNetworkNetwork, error) + Delete(ctx context.Context, name string, opts v1.DeleteOptions) error + DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error + Get(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.EdgeNetworkNetwork, error) + List(ctx context.Context, opts v1.ListOptions) (*v1beta1.EdgeNetworkNetworkList, error) + Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) + Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.EdgeNetworkNetwork, err error) + EdgeNetworkNetworkExpansion +} + +// edgeNetworkNetworks implements EdgeNetworkNetworkInterface +type edgeNetworkNetworks struct { + client rest.Interface + ns string +} + +// newEdgeNetworkNetworks returns a EdgeNetworkNetworks +func newEdgeNetworkNetworks(c *EdgenetworkV1beta1Client, namespace string) *edgeNetworkNetworks { + return &edgeNetworkNetworks{ + client: c.RESTClient(), + ns: namespace, + } +} + +// Get takes name of the edgeNetworkNetwork, and returns the corresponding edgeNetworkNetwork object, and an error if there is any. +func (c *edgeNetworkNetworks) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.EdgeNetworkNetwork, err error) { + result = &v1beta1.EdgeNetworkNetwork{} + err = c.client.Get(). + Namespace(c.ns). + Resource("edgenetworknetworks"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(ctx). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of EdgeNetworkNetworks that match those selectors. +func (c *edgeNetworkNetworks) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.EdgeNetworkNetworkList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + result = &v1beta1.EdgeNetworkNetworkList{} + err = c.client.Get(). + Namespace(c.ns). + Resource("edgenetworknetworks"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Do(ctx). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested edgeNetworkNetworks. +func (c *edgeNetworkNetworks) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + opts.Watch = true + return c.client.Get(). + Namespace(c.ns). + Resource("edgenetworknetworks"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Watch(ctx) +} + +// Create takes the representation of a edgeNetworkNetwork and creates it. Returns the server's representation of the edgeNetworkNetwork, and an error, if there is any. +func (c *edgeNetworkNetworks) Create(ctx context.Context, edgeNetworkNetwork *v1beta1.EdgeNetworkNetwork, opts v1.CreateOptions) (result *v1beta1.EdgeNetworkNetwork, err error) { + result = &v1beta1.EdgeNetworkNetwork{} + err = c.client.Post(). + Namespace(c.ns). + Resource("edgenetworknetworks"). + VersionedParams(&opts, scheme.ParameterCodec). + Body(edgeNetworkNetwork). + Do(ctx). + Into(result) + return +} + +// Update takes the representation of a edgeNetworkNetwork and updates it. Returns the server's representation of the edgeNetworkNetwork, and an error, if there is any. +func (c *edgeNetworkNetworks) Update(ctx context.Context, edgeNetworkNetwork *v1beta1.EdgeNetworkNetwork, opts v1.UpdateOptions) (result *v1beta1.EdgeNetworkNetwork, err error) { + result = &v1beta1.EdgeNetworkNetwork{} + err = c.client.Put(). + Namespace(c.ns). + Resource("edgenetworknetworks"). + Name(edgeNetworkNetwork.Name). + VersionedParams(&opts, scheme.ParameterCodec). + Body(edgeNetworkNetwork). + Do(ctx). + Into(result) + return +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *edgeNetworkNetworks) UpdateStatus(ctx context.Context, edgeNetworkNetwork *v1beta1.EdgeNetworkNetwork, opts v1.UpdateOptions) (result *v1beta1.EdgeNetworkNetwork, err error) { + result = &v1beta1.EdgeNetworkNetwork{} + err = c.client.Put(). + Namespace(c.ns). + Resource("edgenetworknetworks"). + Name(edgeNetworkNetwork.Name). + SubResource("status"). + VersionedParams(&opts, scheme.ParameterCodec). + Body(edgeNetworkNetwork). + Do(ctx). + Into(result) + return +} + +// Delete takes name of the edgeNetworkNetwork and deletes it. Returns an error if one occurs. +func (c *edgeNetworkNetworks) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("edgenetworknetworks"). + Name(name). + Body(&opts). + Do(ctx). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *edgeNetworkNetworks) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { + var timeout time.Duration + if listOpts.TimeoutSeconds != nil { + timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second + } + return c.client.Delete(). + Namespace(c.ns). + Resource("edgenetworknetworks"). + VersionedParams(&listOpts, scheme.ParameterCodec). + Timeout(timeout). + Body(&opts). + Do(ctx). + Error() +} + +// Patch applies the patch and returns the patched edgeNetworkNetwork. +func (c *edgeNetworkNetworks) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.EdgeNetworkNetwork, err error) { + result = &v1beta1.EdgeNetworkNetwork{} + err = c.client.Patch(pt). + Namespace(c.ns). + Resource("edgenetworknetworks"). + Name(name). + SubResource(subresources...). + VersionedParams(&opts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/pkg/clients/generated/client/clientset/versioned/typed/edgenetwork/v1beta1/edgenetworksubnet.go b/pkg/clients/generated/client/clientset/versioned/typed/edgenetwork/v1beta1/edgenetworksubnet.go new file mode 100644 index 0000000000..198d0680f3 --- /dev/null +++ b/pkg/clients/generated/client/clientset/versioned/typed/edgenetwork/v1beta1/edgenetworksubnet.go @@ -0,0 +1,198 @@ +// Copyright 2020 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 +// +// http://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. + +// *** DISCLAIMER *** +// Config Connector's go-client for CRDs is currently in ALPHA, which means +// that future versions of the go-client may include breaking changes. +// Please try it out and give us feedback! + +// Code generated by main. DO NOT EDIT. + +package v1beta1 + +import ( + "context" + "time" + + v1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/edgenetwork/v1beta1" + scheme "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/scheme" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + rest "k8s.io/client-go/rest" +) + +// EdgeNetworkSubnetsGetter has a method to return a EdgeNetworkSubnetInterface. +// A group's client should implement this interface. +type EdgeNetworkSubnetsGetter interface { + EdgeNetworkSubnets(namespace string) EdgeNetworkSubnetInterface +} + +// EdgeNetworkSubnetInterface has methods to work with EdgeNetworkSubnet resources. +type EdgeNetworkSubnetInterface interface { + Create(ctx context.Context, edgeNetworkSubnet *v1beta1.EdgeNetworkSubnet, opts v1.CreateOptions) (*v1beta1.EdgeNetworkSubnet, error) + Update(ctx context.Context, edgeNetworkSubnet *v1beta1.EdgeNetworkSubnet, opts v1.UpdateOptions) (*v1beta1.EdgeNetworkSubnet, error) + UpdateStatus(ctx context.Context, edgeNetworkSubnet *v1beta1.EdgeNetworkSubnet, opts v1.UpdateOptions) (*v1beta1.EdgeNetworkSubnet, error) + Delete(ctx context.Context, name string, opts v1.DeleteOptions) error + DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error + Get(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.EdgeNetworkSubnet, error) + List(ctx context.Context, opts v1.ListOptions) (*v1beta1.EdgeNetworkSubnetList, error) + Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) + Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.EdgeNetworkSubnet, err error) + EdgeNetworkSubnetExpansion +} + +// edgeNetworkSubnets implements EdgeNetworkSubnetInterface +type edgeNetworkSubnets struct { + client rest.Interface + ns string +} + +// newEdgeNetworkSubnets returns a EdgeNetworkSubnets +func newEdgeNetworkSubnets(c *EdgenetworkV1beta1Client, namespace string) *edgeNetworkSubnets { + return &edgeNetworkSubnets{ + client: c.RESTClient(), + ns: namespace, + } +} + +// Get takes name of the edgeNetworkSubnet, and returns the corresponding edgeNetworkSubnet object, and an error if there is any. +func (c *edgeNetworkSubnets) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.EdgeNetworkSubnet, err error) { + result = &v1beta1.EdgeNetworkSubnet{} + err = c.client.Get(). + Namespace(c.ns). + Resource("edgenetworksubnets"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(ctx). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of EdgeNetworkSubnets that match those selectors. +func (c *edgeNetworkSubnets) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.EdgeNetworkSubnetList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + result = &v1beta1.EdgeNetworkSubnetList{} + err = c.client.Get(). + Namespace(c.ns). + Resource("edgenetworksubnets"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Do(ctx). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested edgeNetworkSubnets. +func (c *edgeNetworkSubnets) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + opts.Watch = true + return c.client.Get(). + Namespace(c.ns). + Resource("edgenetworksubnets"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Watch(ctx) +} + +// Create takes the representation of a edgeNetworkSubnet and creates it. Returns the server's representation of the edgeNetworkSubnet, and an error, if there is any. +func (c *edgeNetworkSubnets) Create(ctx context.Context, edgeNetworkSubnet *v1beta1.EdgeNetworkSubnet, opts v1.CreateOptions) (result *v1beta1.EdgeNetworkSubnet, err error) { + result = &v1beta1.EdgeNetworkSubnet{} + err = c.client.Post(). + Namespace(c.ns). + Resource("edgenetworksubnets"). + VersionedParams(&opts, scheme.ParameterCodec). + Body(edgeNetworkSubnet). + Do(ctx). + Into(result) + return +} + +// Update takes the representation of a edgeNetworkSubnet and updates it. Returns the server's representation of the edgeNetworkSubnet, and an error, if there is any. +func (c *edgeNetworkSubnets) Update(ctx context.Context, edgeNetworkSubnet *v1beta1.EdgeNetworkSubnet, opts v1.UpdateOptions) (result *v1beta1.EdgeNetworkSubnet, err error) { + result = &v1beta1.EdgeNetworkSubnet{} + err = c.client.Put(). + Namespace(c.ns). + Resource("edgenetworksubnets"). + Name(edgeNetworkSubnet.Name). + VersionedParams(&opts, scheme.ParameterCodec). + Body(edgeNetworkSubnet). + Do(ctx). + Into(result) + return +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *edgeNetworkSubnets) UpdateStatus(ctx context.Context, edgeNetworkSubnet *v1beta1.EdgeNetworkSubnet, opts v1.UpdateOptions) (result *v1beta1.EdgeNetworkSubnet, err error) { + result = &v1beta1.EdgeNetworkSubnet{} + err = c.client.Put(). + Namespace(c.ns). + Resource("edgenetworksubnets"). + Name(edgeNetworkSubnet.Name). + SubResource("status"). + VersionedParams(&opts, scheme.ParameterCodec). + Body(edgeNetworkSubnet). + Do(ctx). + Into(result) + return +} + +// Delete takes name of the edgeNetworkSubnet and deletes it. Returns an error if one occurs. +func (c *edgeNetworkSubnets) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("edgenetworksubnets"). + Name(name). + Body(&opts). + Do(ctx). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *edgeNetworkSubnets) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { + var timeout time.Duration + if listOpts.TimeoutSeconds != nil { + timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second + } + return c.client.Delete(). + Namespace(c.ns). + Resource("edgenetworksubnets"). + VersionedParams(&listOpts, scheme.ParameterCodec). + Timeout(timeout). + Body(&opts). + Do(ctx). + Error() +} + +// Patch applies the patch and returns the patched edgeNetworkSubnet. +func (c *edgeNetworkSubnets) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.EdgeNetworkSubnet, err error) { + result = &v1beta1.EdgeNetworkSubnet{} + err = c.client.Patch(pt). + Namespace(c.ns). + Resource("edgenetworksubnets"). + Name(name). + SubResource(subresources...). + VersionedParams(&opts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/pkg/clients/generated/client/clientset/versioned/typed/edgenetwork/v1beta1/fake/doc.go b/pkg/clients/generated/client/clientset/versioned/typed/edgenetwork/v1beta1/fake/doc.go new file mode 100644 index 0000000000..7a39491606 --- /dev/null +++ b/pkg/clients/generated/client/clientset/versioned/typed/edgenetwork/v1beta1/fake/doc.go @@ -0,0 +1,23 @@ +// Copyright 2020 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 +// +// http://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. + +// *** DISCLAIMER *** +// Config Connector's go-client for CRDs is currently in ALPHA, which means +// that future versions of the go-client may include breaking changes. +// Please try it out and give us feedback! + +// Code generated by main. DO NOT EDIT. + +// Package fake has the automatically generated clients. +package fake diff --git a/pkg/clients/generated/client/clientset/versioned/typed/edgenetwork/v1beta1/fake/fake_edgenetwork_client.go b/pkg/clients/generated/client/clientset/versioned/typed/edgenetwork/v1beta1/fake/fake_edgenetwork_client.go new file mode 100644 index 0000000000..3f53d19500 --- /dev/null +++ b/pkg/clients/generated/client/clientset/versioned/typed/edgenetwork/v1beta1/fake/fake_edgenetwork_client.go @@ -0,0 +1,47 @@ +// Copyright 2020 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 +// +// http://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. + +// *** DISCLAIMER *** +// Config Connector's go-client for CRDs is currently in ALPHA, which means +// that future versions of the go-client may include breaking changes. +// Please try it out and give us feedback! + +// Code generated by main. DO NOT EDIT. + +package fake + +import ( + v1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/edgenetwork/v1beta1" + rest "k8s.io/client-go/rest" + testing "k8s.io/client-go/testing" +) + +type FakeEdgenetworkV1beta1 struct { + *testing.Fake +} + +func (c *FakeEdgenetworkV1beta1) EdgeNetworkNetworks(namespace string) v1beta1.EdgeNetworkNetworkInterface { + return &FakeEdgeNetworkNetworks{c, namespace} +} + +func (c *FakeEdgenetworkV1beta1) EdgeNetworkSubnets(namespace string) v1beta1.EdgeNetworkSubnetInterface { + return &FakeEdgeNetworkSubnets{c, namespace} +} + +// RESTClient returns a RESTClient that is used to communicate +// with API server by this client implementation. +func (c *FakeEdgenetworkV1beta1) RESTClient() rest.Interface { + var ret *rest.RESTClient + return ret +} diff --git a/pkg/clients/generated/client/clientset/versioned/typed/edgenetwork/v1beta1/fake/fake_edgenetworknetwork.go b/pkg/clients/generated/client/clientset/versioned/typed/edgenetwork/v1beta1/fake/fake_edgenetworknetwork.go new file mode 100644 index 0000000000..61d8be709e --- /dev/null +++ b/pkg/clients/generated/client/clientset/versioned/typed/edgenetwork/v1beta1/fake/fake_edgenetworknetwork.go @@ -0,0 +1,145 @@ +// Copyright 2020 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 +// +// http://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. + +// *** DISCLAIMER *** +// Config Connector's go-client for CRDs is currently in ALPHA, which means +// that future versions of the go-client may include breaking changes. +// Please try it out and give us feedback! + +// Code generated by main. DO NOT EDIT. + +package fake + +import ( + "context" + + v1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/edgenetwork/v1beta1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" +) + +// FakeEdgeNetworkNetworks implements EdgeNetworkNetworkInterface +type FakeEdgeNetworkNetworks struct { + Fake *FakeEdgenetworkV1beta1 + ns string +} + +var edgenetworknetworksResource = schema.GroupVersionResource{Group: "edgenetwork.cnrm.cloud.google.com", Version: "v1beta1", Resource: "edgenetworknetworks"} + +var edgenetworknetworksKind = schema.GroupVersionKind{Group: "edgenetwork.cnrm.cloud.google.com", Version: "v1beta1", Kind: "EdgeNetworkNetwork"} + +// Get takes name of the edgeNetworkNetwork, and returns the corresponding edgeNetworkNetwork object, and an error if there is any. +func (c *FakeEdgeNetworkNetworks) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.EdgeNetworkNetwork, err error) { + obj, err := c.Fake. + Invokes(testing.NewGetAction(edgenetworknetworksResource, c.ns, name), &v1beta1.EdgeNetworkNetwork{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.EdgeNetworkNetwork), err +} + +// List takes label and field selectors, and returns the list of EdgeNetworkNetworks that match those selectors. +func (c *FakeEdgeNetworkNetworks) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.EdgeNetworkNetworkList, err error) { + obj, err := c.Fake. + Invokes(testing.NewListAction(edgenetworknetworksResource, edgenetworknetworksKind, c.ns, opts), &v1beta1.EdgeNetworkNetworkList{}) + + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &v1beta1.EdgeNetworkNetworkList{ListMeta: obj.(*v1beta1.EdgeNetworkNetworkList).ListMeta} + for _, item := range obj.(*v1beta1.EdgeNetworkNetworkList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested edgeNetworkNetworks. +func (c *FakeEdgeNetworkNetworks) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewWatchAction(edgenetworknetworksResource, c.ns, opts)) + +} + +// Create takes the representation of a edgeNetworkNetwork and creates it. Returns the server's representation of the edgeNetworkNetwork, and an error, if there is any. +func (c *FakeEdgeNetworkNetworks) Create(ctx context.Context, edgeNetworkNetwork *v1beta1.EdgeNetworkNetwork, opts v1.CreateOptions) (result *v1beta1.EdgeNetworkNetwork, err error) { + obj, err := c.Fake. + Invokes(testing.NewCreateAction(edgenetworknetworksResource, c.ns, edgeNetworkNetwork), &v1beta1.EdgeNetworkNetwork{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.EdgeNetworkNetwork), err +} + +// Update takes the representation of a edgeNetworkNetwork and updates it. Returns the server's representation of the edgeNetworkNetwork, and an error, if there is any. +func (c *FakeEdgeNetworkNetworks) Update(ctx context.Context, edgeNetworkNetwork *v1beta1.EdgeNetworkNetwork, opts v1.UpdateOptions) (result *v1beta1.EdgeNetworkNetwork, err error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateAction(edgenetworknetworksResource, c.ns, edgeNetworkNetwork), &v1beta1.EdgeNetworkNetwork{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.EdgeNetworkNetwork), err +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *FakeEdgeNetworkNetworks) UpdateStatus(ctx context.Context, edgeNetworkNetwork *v1beta1.EdgeNetworkNetwork, opts v1.UpdateOptions) (*v1beta1.EdgeNetworkNetwork, error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateSubresourceAction(edgenetworknetworksResource, "status", c.ns, edgeNetworkNetwork), &v1beta1.EdgeNetworkNetwork{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.EdgeNetworkNetwork), err +} + +// Delete takes name of the edgeNetworkNetwork and deletes it. Returns an error if one occurs. +func (c *FakeEdgeNetworkNetworks) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewDeleteActionWithOptions(edgenetworknetworksResource, c.ns, name, opts), &v1beta1.EdgeNetworkNetwork{}) + + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeEdgeNetworkNetworks) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { + action := testing.NewDeleteCollectionAction(edgenetworknetworksResource, c.ns, listOpts) + + _, err := c.Fake.Invokes(action, &v1beta1.EdgeNetworkNetworkList{}) + return err +} + +// Patch applies the patch and returns the patched edgeNetworkNetwork. +func (c *FakeEdgeNetworkNetworks) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.EdgeNetworkNetwork, err error) { + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(edgenetworknetworksResource, c.ns, name, pt, data, subresources...), &v1beta1.EdgeNetworkNetwork{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.EdgeNetworkNetwork), err +} diff --git a/pkg/clients/generated/client/clientset/versioned/typed/edgenetwork/v1beta1/fake/fake_edgenetworksubnet.go b/pkg/clients/generated/client/clientset/versioned/typed/edgenetwork/v1beta1/fake/fake_edgenetworksubnet.go new file mode 100644 index 0000000000..68d39c6d0a --- /dev/null +++ b/pkg/clients/generated/client/clientset/versioned/typed/edgenetwork/v1beta1/fake/fake_edgenetworksubnet.go @@ -0,0 +1,145 @@ +// Copyright 2020 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 +// +// http://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. + +// *** DISCLAIMER *** +// Config Connector's go-client for CRDs is currently in ALPHA, which means +// that future versions of the go-client may include breaking changes. +// Please try it out and give us feedback! + +// Code generated by main. DO NOT EDIT. + +package fake + +import ( + "context" + + v1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/edgenetwork/v1beta1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" +) + +// FakeEdgeNetworkSubnets implements EdgeNetworkSubnetInterface +type FakeEdgeNetworkSubnets struct { + Fake *FakeEdgenetworkV1beta1 + ns string +} + +var edgenetworksubnetsResource = schema.GroupVersionResource{Group: "edgenetwork.cnrm.cloud.google.com", Version: "v1beta1", Resource: "edgenetworksubnets"} + +var edgenetworksubnetsKind = schema.GroupVersionKind{Group: "edgenetwork.cnrm.cloud.google.com", Version: "v1beta1", Kind: "EdgeNetworkSubnet"} + +// Get takes name of the edgeNetworkSubnet, and returns the corresponding edgeNetworkSubnet object, and an error if there is any. +func (c *FakeEdgeNetworkSubnets) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.EdgeNetworkSubnet, err error) { + obj, err := c.Fake. + Invokes(testing.NewGetAction(edgenetworksubnetsResource, c.ns, name), &v1beta1.EdgeNetworkSubnet{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.EdgeNetworkSubnet), err +} + +// List takes label and field selectors, and returns the list of EdgeNetworkSubnets that match those selectors. +func (c *FakeEdgeNetworkSubnets) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.EdgeNetworkSubnetList, err error) { + obj, err := c.Fake. + Invokes(testing.NewListAction(edgenetworksubnetsResource, edgenetworksubnetsKind, c.ns, opts), &v1beta1.EdgeNetworkSubnetList{}) + + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &v1beta1.EdgeNetworkSubnetList{ListMeta: obj.(*v1beta1.EdgeNetworkSubnetList).ListMeta} + for _, item := range obj.(*v1beta1.EdgeNetworkSubnetList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested edgeNetworkSubnets. +func (c *FakeEdgeNetworkSubnets) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewWatchAction(edgenetworksubnetsResource, c.ns, opts)) + +} + +// Create takes the representation of a edgeNetworkSubnet and creates it. Returns the server's representation of the edgeNetworkSubnet, and an error, if there is any. +func (c *FakeEdgeNetworkSubnets) Create(ctx context.Context, edgeNetworkSubnet *v1beta1.EdgeNetworkSubnet, opts v1.CreateOptions) (result *v1beta1.EdgeNetworkSubnet, err error) { + obj, err := c.Fake. + Invokes(testing.NewCreateAction(edgenetworksubnetsResource, c.ns, edgeNetworkSubnet), &v1beta1.EdgeNetworkSubnet{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.EdgeNetworkSubnet), err +} + +// Update takes the representation of a edgeNetworkSubnet and updates it. Returns the server's representation of the edgeNetworkSubnet, and an error, if there is any. +func (c *FakeEdgeNetworkSubnets) Update(ctx context.Context, edgeNetworkSubnet *v1beta1.EdgeNetworkSubnet, opts v1.UpdateOptions) (result *v1beta1.EdgeNetworkSubnet, err error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateAction(edgenetworksubnetsResource, c.ns, edgeNetworkSubnet), &v1beta1.EdgeNetworkSubnet{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.EdgeNetworkSubnet), err +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *FakeEdgeNetworkSubnets) UpdateStatus(ctx context.Context, edgeNetworkSubnet *v1beta1.EdgeNetworkSubnet, opts v1.UpdateOptions) (*v1beta1.EdgeNetworkSubnet, error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateSubresourceAction(edgenetworksubnetsResource, "status", c.ns, edgeNetworkSubnet), &v1beta1.EdgeNetworkSubnet{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.EdgeNetworkSubnet), err +} + +// Delete takes name of the edgeNetworkSubnet and deletes it. Returns an error if one occurs. +func (c *FakeEdgeNetworkSubnets) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewDeleteActionWithOptions(edgenetworksubnetsResource, c.ns, name, opts), &v1beta1.EdgeNetworkSubnet{}) + + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeEdgeNetworkSubnets) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { + action := testing.NewDeleteCollectionAction(edgenetworksubnetsResource, c.ns, listOpts) + + _, err := c.Fake.Invokes(action, &v1beta1.EdgeNetworkSubnetList{}) + return err +} + +// Patch applies the patch and returns the patched edgeNetworkSubnet. +func (c *FakeEdgeNetworkSubnets) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.EdgeNetworkSubnet, err error) { + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(edgenetworksubnetsResource, c.ns, name, pt, data, subresources...), &v1beta1.EdgeNetworkSubnet{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.EdgeNetworkSubnet), err +} diff --git a/pkg/clients/generated/client/clientset/versioned/typed/edgenetwork/v1beta1/generated_expansion.go b/pkg/clients/generated/client/clientset/versioned/typed/edgenetwork/v1beta1/generated_expansion.go new file mode 100644 index 0000000000..2cc65a1974 --- /dev/null +++ b/pkg/clients/generated/client/clientset/versioned/typed/edgenetwork/v1beta1/generated_expansion.go @@ -0,0 +1,26 @@ +// Copyright 2020 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 +// +// http://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. + +// *** DISCLAIMER *** +// Config Connector's go-client for CRDs is currently in ALPHA, which means +// that future versions of the go-client may include breaking changes. +// Please try it out and give us feedback! + +// Code generated by main. DO NOT EDIT. + +package v1beta1 + +type EdgeNetworkNetworkExpansion interface{} + +type EdgeNetworkSubnetExpansion interface{} diff --git a/pkg/resourceskeleton/testdata/asset-skeleton.yaml b/pkg/resourceskeleton/testdata/asset-skeleton.yaml index 3c85921698..044d523863 100644 --- a/pkg/resourceskeleton/testdata/asset-skeleton.yaml +++ b/pkg/resourceskeleton/testdata/asset-skeleton.yaml @@ -819,6 +819,10 @@ # not supported by asset inventory - resourceConfigId: DataflowFlexTemplateJob # not supported by asset inventory +- resourceConfigId: EdgeNetworkNetwork +# not supported by asset inventory +- resourceConfigId: EdgeNetworkSubnet +# not supported by asset inventory - resourceConfigId: FirestoreIndex - asset: ancestors: diff --git a/pkg/resourceskeleton/testdata/uri-skeleton.yaml b/pkg/resourceskeleton/testdata/uri-skeleton.yaml index 7750662549..974670f68b 100644 --- a/pkg/resourceskeleton/testdata/uri-skeleton.yaml +++ b/pkg/resourceskeleton/testdata/uri-skeleton.yaml @@ -1031,3 +1031,9 @@ external: kcc-test ResourceConfigId: CertificateManagerDNSAuthorization URI: "https://certificatemanager.googleapis.com/v1/projects/kcc-test/locations/global/dnsAuthorizations/dnsauthorization-test?alt=json" +- ExpectedSkeleton: null + ResourceConfigId: EdgeNetworkNetwork + URI: "" +- ExpectedSkeleton: null + ResourceConfigId: EdgeNetworkSubnet + URI: "" diff --git a/pkg/test/constants/constants.go b/pkg/test/constants/constants.go index 2243a5a81b..db48556c6f 100644 --- a/pkg/test/constants/constants.go +++ b/pkg/test/constants/constants.go @@ -35,6 +35,8 @@ var TestNameRegexesToSkip = []string{ ".*(streamingdataflowjobupdateparameters).*", // TODO(b/267510222): re-enable calendarbudget test when test GCP org configconnector.net is allowlisted. ".*(calendarbudget).*", + // Edge Network tests require a mocked GCP API. + ".*(edgenetwork).*", } // TestNameRegexToSkipForTestCRUD is similar to @@ -53,4 +55,6 @@ var TestNameRegexToSkipForTestCRUD = []string{ // The test cases are selected by GetFilteredSetCover(). After orgrole // test is disabled, projectrole test is selected to test IAMRole resource. ".*orgrole.*", + // Edge Network tests require a mocked GCP API. + ".*(edgenetwork).*", } diff --git a/pkg/test/constants/presubmitconstants.go b/pkg/test/constants/presubmitconstants.go index 299ab4b2f9..d990ab8919 100644 --- a/pkg/test/constants/presubmitconstants.go +++ b/pkg/test/constants/presubmitconstants.go @@ -107,6 +107,11 @@ var ( "computefirewallpolicyassociation", "computefirewallpolicyrule", } + // Services with special testing requirements that should be skipped in presubmit + skipCRUDTests = map[string]bool{ + "containerattached": true, + "edgenetwork": true, + } DynamicTestPackagePath = "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/dynamic/..." ) diff --git a/pkg/test/constants/presubmitconstants_test.go b/pkg/test/constants/presubmitconstants_test.go index 6002dd32c6..87bcb2c400 100644 --- a/pkg/test/constants/presubmitconstants_test.go +++ b/pkg/test/constants/presubmitconstants_test.go @@ -44,9 +44,7 @@ func TestAllServicesInMap(t *testing.T) { // presubmit test suite. continue } - if s == "containerattached" { - // containerattached service can be excluded from presubmit test suite, - // to avoid test failures caused by the service special requirements. + if skip, ok := skipCRUDTests[s]; ok && skip { continue } if _, ok := RepresentativeCRUDTestsForAllServices[s]; !ok { diff --git a/pkg/test/resourcefixture/testdata/basic/edgenetwork/v1beta1/edgenetworknetwork/create.yaml b/pkg/test/resourcefixture/testdata/basic/edgenetwork/v1beta1/edgenetworknetwork/create.yaml new file mode 100644 index 0000000000..b9077b1684 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/edgenetwork/v1beta1/edgenetworknetwork/create.yaml @@ -0,0 +1,26 @@ +# Copyright 2023 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 +# +# http://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. + +apiVersion: edgenetwork.cnrm.cloud.google.com/v1beta1 +kind: EdgeNetworkNetwork +metadata: + name: edgenetworknetwork-${uniqueId} + labels: + label-one: "value-one" +spec: + description: "Basic Network" + location: us-central1 + zone: us-central1-test-zone + mtu: 9000 + diff --git a/pkg/test/resourcefixture/testdata/basic/edgenetwork/v1beta1/edgenetworksubnet/create.yaml b/pkg/test/resourcefixture/testdata/basic/edgenetwork/v1beta1/edgenetworksubnet/create.yaml new file mode 100644 index 0000000000..b6647ba9e8 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/edgenetwork/v1beta1/edgenetworksubnet/create.yaml @@ -0,0 +1,31 @@ +# Copyright 2023 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 +# +# http://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. + +apiVersion: edgenetwork.cnrm.cloud.google.com/v1beta1 +kind: EdgeNetworkSubnet +metadata: + name: edgenetworksubnet-${uniqueId} + labels: + label-one: "value-one" +spec: + description: "Basic Subnet" + location: us-central1 + zone: us-central1-test-zone + networkRef: + name: edgenetworknetwork-${uniqueId} + ipv4Cidr: + - 1.1.1.1/24 + - 2.2.2.2/32 + + diff --git a/pkg/test/resourcefixture/testdata/basic/edgenetwork/v1beta1/edgenetworksubnet/dependencies.yaml b/pkg/test/resourcefixture/testdata/basic/edgenetwork/v1beta1/edgenetworksubnet/dependencies.yaml new file mode 100644 index 0000000000..b2506563e6 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/edgenetwork/v1beta1/edgenetworksubnet/dependencies.yaml @@ -0,0 +1,24 @@ +# Copyright 2023 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 +# +# http://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. + +apiVersion: edgenetwork.cnrm.cloud.google.com/v1beta1 +kind: EdgeNetworkNetwork +metadata: + name: edgenetworknetwork-${uniqueId} +spec: + description: "Basic Network" + location: us-central1 + zone: us-central1-test-zone + mtu: 9000 + diff --git a/scripts/generate-google3-docs/resource-reference/_toc.yaml b/scripts/generate-google3-docs/resource-reference/_toc.yaml index 29112b7784..5fdfc1fb2f 100644 --- a/scripts/generate-google3-docs/resource-reference/_toc.yaml +++ b/scripts/generate-google3-docs/resource-reference/_toc.yaml @@ -123,6 +123,12 @@ toc: path: /config-connector/docs/reference/resource-docs/kms/kmscryptokey.md - title: "KMSKeyRing" path: /config-connector/docs/reference/resource-docs/kms/kmskeyring.md +- title: "EdgeNetwork" + section: + - title: "EdgeNetworkNetwork" + path: /config-connector/docs/reference/resource-docs/edgenetwork/edgenetworknetwork.md + - title: "EdgeNetworkSubnet" + path: /config-connector/docs/reference/resource-docs/edgenetwork/edgenetworksubnet.md - title: "Eventarc" section: - title: "EventarcTrigger" @@ -504,4 +510,4 @@ toc: - title: "VPC Access" section: - title: "VPCAccessConnector" - path: /config-connector/docs/reference/resource-docs/vpcaccess/vpcaccessconnector.md \ No newline at end of file + path: /config-connector/docs/reference/resource-docs/vpcaccess/vpcaccessconnector.md diff --git a/scripts/generate-google3-docs/resource-reference/generated/resource-docs/edgenetwork/edgenetworknetwork.md b/scripts/generate-google3-docs/resource-reference/generated/resource-docs/edgenetwork/edgenetworknetwork.md new file mode 100644 index 0000000000..699a0ba5bd --- /dev/null +++ b/scripts/generate-google3-docs/resource-reference/generated/resource-docs/edgenetwork/edgenetworknetwork.md @@ -0,0 +1,332 @@ +{# AUTOGENERATED. DO NOT EDIT. #} + +{% extends "config-connector/_base.html" %} + +{% block page_title %}EdgeNetworkNetwork{% endblock %} +{% block body %} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
{{gcp_name_short}} Service NameEdge Network
{{gcp_name_short}} Service Documentation/distributed-cloud/edge/latest/docs/
{{gcp_name_short}} REST Resource Nameprojects.locations.zones.networks
{{gcp_name_short}} REST Resource Documentation/distributed-cloud/edge/latest/docs/reference/network/rest/v1/projects.locations.zones.networks
{{product_name_short}} Resource Short Namesgcpedgenetworknetwork
gcpedgenetworknetworks
edgenetworknetwork
{{product_name_short}} Service Nameedgenetwork.googleapis.com
{{product_name_short}} Resource Fully Qualified Nameedgenetworknetworks.edgenetwork.cnrm.cloud.google.com
Can Be Referenced by IAMPolicy/IAMPolicyMemberNo
{{product_name_short}} Default Average Reconcile Interval In Seconds600
+ +## Custom Resource Definition Properties + + +### Annotations + + + + + + + + + + + +
Fields
cnrm.cloud.google.com/state-into-spec
+ + +### Spec +#### Schema +```yaml +description: string +location: string +mtu: integer +projectRef: + external: string + name: string + namespace: string +resourceID: string +zone: string +``` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Fields
+

description

+

Optional

+
+

string

+

{% verbatim %}Immutable. A free-text description of the resource. Max length 1024 characters.{% endverbatim %}

+
+

location

+

Required

+
+

string

+

{% verbatim %}Immutable. The Google Cloud region to which the target Distributed Cloud Edge zone belongs.{% endverbatim %}

+
+

mtu

+

Optional

+
+

integer

+

{% verbatim %}Immutable. IP (L3) MTU value of the network. Default value is '1500'. Possible values are: '1500', '9000'.{% endverbatim %}

+
+

projectRef

+

Required

+
+

object

+

{% verbatim %}The project that this resource belongs to.{% endverbatim %}

+
+

projectRef.external

+

Optional

+
+

string

+

{% verbatim %}Allowed value: The `name` field of a `Project` resource.{% endverbatim %}

+
+

projectRef.name

+

Optional

+
+

string

+

{% verbatim %}Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names{% endverbatim %}

+
+

projectRef.namespace

+

Optional

+
+

string

+

{% verbatim %}Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/{% endverbatim %}

+
+

resourceID

+

Optional

+
+

string

+

{% verbatim %}Immutable. Optional. The networkId of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default.{% endverbatim %}

+
+

zone

+

Required

+
+

string

+

{% verbatim %}Immutable. The name of the target Distributed Cloud Edge zone.{% endverbatim %}

+
+ + + +### Status +#### Schema +```yaml +conditions: +- lastTransitionTime: string + message: string + reason: string + status: string + type: string +createTime: string +name: string +observedGeneration: integer +updateTime: string +``` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Fields
conditions +

list (object)

+

{% verbatim %}Conditions represent the latest available observation of the resource's current state.{% endverbatim %}

+
conditions[] +

object

+

{% verbatim %}{% endverbatim %}

+
conditions[].lastTransitionTime +

string

+

{% verbatim %}Last time the condition transitioned from one status to another.{% endverbatim %}

+
conditions[].message +

string

+

{% verbatim %}Human-readable message indicating details about last transition.{% endverbatim %}

+
conditions[].reason +

string

+

{% verbatim %}Unique, one-word, CamelCase reason for the condition's last transition.{% endverbatim %}

+
conditions[].status +

string

+

{% verbatim %}Status is the status of the condition. Can be True, False, Unknown.{% endverbatim %}

+
conditions[].type +

string

+

{% verbatim %}Type is the type of the condition.{% endverbatim %}

+
createTime +

string

+

{% verbatim %}The time when the subnet was created. +A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine +fractional digits. Examples: '2014-10-02T15:01:23Z' and '2014-10-02T15:01:23.045123456Z'.{% endverbatim %}

+
name +

string

+

{% verbatim %}The canonical name of this resource, with format +'projects/{{project}}/locations/{{location}}/zones/{{zone}}/networks/{{network_id}}'.{% endverbatim %}

+
observedGeneration +

integer

+

{% verbatim %}ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource.{% endverbatim %}

+
updateTime +

string

+

{% verbatim %}The time when the subnet was last updated. +A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine +fractional digits. Examples: '2014-10-02T15:01:23Z' and '2014-10-02T15:01:23.045123456Z'.{% endverbatim %}

+
+ +## Sample YAML(s) + +### Typical Use Case +```yaml +# Copyright 2023 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 +# +# http://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. + +apiVersion: edgenetwork.cnrm.cloud.google.com/v1beta1 +kind: EdgeNetworkNetwork +metadata: + name: edgenetworknetwork-sample +spec: + description: "A sample edgenetwork network" + location: us-central1 + zone: us-central1-edge-den123 + mtu: 9000 +``` + + +Note: If you have any trouble with instantiating the resource, refer to Troubleshoot Config Connector. + +{% endblock %} diff --git a/scripts/generate-google3-docs/resource-reference/generated/resource-docs/edgenetwork/edgenetworksubnet.md b/scripts/generate-google3-docs/resource-reference/generated/resource-docs/edgenetwork/edgenetworksubnet.md new file mode 100644 index 0000000000..1a8f62454a --- /dev/null +++ b/scripts/generate-google3-docs/resource-reference/generated/resource-docs/edgenetwork/edgenetworksubnet.md @@ -0,0 +1,442 @@ +{# AUTOGENERATED. DO NOT EDIT. #} + +{% extends "config-connector/_base.html" %} + +{% block page_title %}EdgeNetworkSubnet{% endblock %} +{% block body %} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
{{gcp_name_short}} Service NameEdge Network
{{gcp_name_short}} Service Documentation/distributed-cloud/edge/latest/docs/
{{gcp_name_short}} REST Resource Nameprojects.locations.zones.subnets
{{gcp_name_short}} REST Resource Documentation/distributed-cloud/edge/latest/docs/reference/network/rest/v1/projects.locations.zones.subnets
{{product_name_short}} Resource Short Namesgcpedgenetworksubnet
gcpedgenetworksubnets
edgenetworksubnet
{{product_name_short}} Service Nameedgenetwork.googleapis.com
{{product_name_short}} Resource Fully Qualified Nameedgenetworksubnets.edgenetwork.cnrm.cloud.google.com
Can Be Referenced by IAMPolicy/IAMPolicyMemberNo
{{product_name_short}} Default Average Reconcile Interval In Seconds600
+ +## Custom Resource Definition Properties + + +### Annotations + + + + + + + + + + + +
Fields
cnrm.cloud.google.com/state-into-spec
+ + +### Spec +#### Schema +```yaml +description: string +ipv4Cidr: +- string +ipv6Cidr: +- string +location: string +networkRef: + external: string + name: string + namespace: string +projectRef: + external: string + name: string + namespace: string +resourceID: string +vlanId: integer +zone: string +``` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Fields
+

description

+

Optional

+
+

string

+

{% verbatim %}Immutable. A free-text description of the resource. Max length 1024 characters.{% endverbatim %}

+
+

ipv4Cidr

+

Optional

+
+

list (string)

+

{% verbatim %}Immutable. The ranges of ipv4 addresses that are owned by this subnetwork, in CIDR format.{% endverbatim %}

+
+

ipv4Cidr[]

+

Optional

+
+

string

+

{% verbatim %}{% endverbatim %}

+
+

ipv6Cidr

+

Optional

+
+

list (string)

+

{% verbatim %}Immutable. The ranges of ipv6 addresses that are owned by this subnetwork, in CIDR format.{% endverbatim %}

+
+

ipv6Cidr[]

+

Optional

+
+

string

+

{% verbatim %}{% endverbatim %}

+
+

location

+

Required

+
+

string

+

{% verbatim %}Immutable. The Google Cloud region to which the target Distributed Cloud Edge zone belongs.{% endverbatim %}

+
+

networkRef

+

Required

+
+

object

+

{% verbatim %}{% endverbatim %}

+
+

networkRef.external

+

Optional

+
+

string

+

{% verbatim %}Allowed value: The `name` field of an `EdgeNetworkNetwork` resource.{% endverbatim %}

+
+

networkRef.name

+

Optional

+
+

string

+

{% verbatim %}Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names{% endverbatim %}

+
+

networkRef.namespace

+

Optional

+
+

string

+

{% verbatim %}Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/{% endverbatim %}

+
+

projectRef

+

Required

+
+

object

+

{% verbatim %}The project that this resource belongs to.{% endverbatim %}

+
+

projectRef.external

+

Optional

+
+

string

+

{% verbatim %}Allowed value: The `name` field of a `Project` resource.{% endverbatim %}

+
+

projectRef.name

+

Optional

+
+

string

+

{% verbatim %}Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names{% endverbatim %}

+
+

projectRef.namespace

+

Optional

+
+

string

+

{% verbatim %}Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/{% endverbatim %}

+
+

resourceID

+

Optional

+
+

string

+

{% verbatim %}Immutable. Optional. The subnetId of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default.{% endverbatim %}

+
+

vlanId

+

Optional

+
+

integer

+

{% verbatim %}Immutable. VLAN ID for this subnetwork. If not specified, one is assigned automatically.{% endverbatim %}

+
+

zone

+

Required

+
+

string

+

{% verbatim %}Immutable. The name of the target Distributed Cloud Edge zone.{% endverbatim %}

+
+ + + +### Status +#### Schema +```yaml +conditions: +- lastTransitionTime: string + message: string + reason: string + status: string + type: string +createTime: string +name: string +observedGeneration: integer +state: string +updateTime: string +``` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Fields
conditions +

list (object)

+

{% verbatim %}Conditions represent the latest available observation of the resource's current state.{% endverbatim %}

+
conditions[] +

object

+

{% verbatim %}{% endverbatim %}

+
conditions[].lastTransitionTime +

string

+

{% verbatim %}Last time the condition transitioned from one status to another.{% endverbatim %}

+
conditions[].message +

string

+

{% verbatim %}Human-readable message indicating details about last transition.{% endverbatim %}

+
conditions[].reason +

string

+

{% verbatim %}Unique, one-word, CamelCase reason for the condition's last transition.{% endverbatim %}

+
conditions[].status +

string

+

{% verbatim %}Status is the status of the condition. Can be True, False, Unknown.{% endverbatim %}

+
conditions[].type +

string

+

{% verbatim %}Type is the type of the condition.{% endverbatim %}

+
createTime +

string

+

{% verbatim %}The time when the subnet was created. +A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine +fractional digits. Examples: '2014-10-02T15:01:23Z' and '2014-10-02T15:01:23.045123456Z'.{% endverbatim %}

+
name +

string

+

{% verbatim %}The canonical name of this resource, with format +'projects/{{project}}/locations/{{location}}/zones/{{zone}}/subnets/{{subnet_id}}'.{% endverbatim %}

+
observedGeneration +

integer

+

{% verbatim %}ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource.{% endverbatim %}

+
state +

string

+

{% verbatim %}Current stage of the resource to the device by config push.{% endverbatim %}

+
updateTime +

string

+

{% verbatim %}The time when the subnet was last updated. +A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine +fractional digits. Examples: '2014-10-02T15:01:23Z' and '2014-10-02T15:01:23.045123456Z'.{% endverbatim %}

+
+ +## Sample YAML(s) + +### Typical Use Case +```yaml +# Copyright 2023 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 +# +# http://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. + +apiVersion: edgenetwork.cnrm.cloud.google.com/v1beta1 +kind: EdgeNetworkSubnet +metadata: + name: edgenetworksubnet-sample +spec: + description: "A sample edgenetwork subnet" + location: us-central1 + zone: us-central1-edge-den123 + networkRef: + name: edgenetworksubnet-dep + ipv4Cidr: + - 1.1.1.1/24 + - 2.2.2.2/32 +--- +apiVersion: edgenetwork.cnrm.cloud.google.com/v1beta1 +kind: EdgeNetworkNetwork +metadata: + name: edgenetworksubnet-dep +spec: + description: "A sample edgenetwork network" + location: us-central1 + zone: us-central1-edge-den123 + mtu: 9000 +``` + + +Note: If you have any trouble with instantiating the resource, refer to Troubleshoot Config Connector. + +{% endblock %} diff --git a/scripts/generate-google3-docs/resource-reference/overview.md b/scripts/generate-google3-docs/resource-reference/overview.md index d661a61aae..a86624635d 100644 --- a/scripts/generate-google3-docs/resource-reference/overview.md +++ b/scripts/generate-google3-docs/resource-reference/overview.md @@ -413,6 +413,14 @@ Custom Resource Definitions in the GitHub repository. For example, this {{dns_name}} DNSRecordSet + + {{edgenetwork_name}} + EdgeNetworkNetwork + + + {{edgenetwork_name}} + EdgeNetworkSubnet + {{eventarc_name}} EventarcTrigger diff --git a/scripts/generate-google3-docs/resource-reference/templates/edgenetwork_edgenetworknetwork.tmpl b/scripts/generate-google3-docs/resource-reference/templates/edgenetwork_edgenetworknetwork.tmpl new file mode 100644 index 0000000000..b0bbbfef7a --- /dev/null +++ b/scripts/generate-google3-docs/resource-reference/templates/edgenetwork_edgenetworknetwork.tmpl @@ -0,0 +1,54 @@ +{{template "headercomment.tmpl" .}} + +{% extends "config-connector/_base.html" %} + +{% block page_title %}{{ .Kind}}{% endblock %} +{% block body %} +{{template "alphadisclaimer.tmpl" .}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{{template "iamsupport.tmpl" .}} + + + + + +
PropertyValue
{{"{{gcp_name_short}}"}} Service NameEdge Network
{{"{{gcp_name_short}}"}} Service Documentation/distributed-cloud/edge/latest/docs/
{{"{{gcp_name_short}}"}} REST Resource Nameprojects.locations.zones.networks
{{"{{gcp_name_short}}"}} REST Resource Documentation/distributed-cloud/edge/latest/docs/reference/network/rest/v1/projects.locations.zones.networks
{{"{{product_name_short}}"}} Resource Short Names{{ .ShortNames}}
{{"{{product_name_short}}"}} Service Nameedgenetwork.googleapis.com
{{"{{product_name_short}}"}} Resource Fully Qualified Name{{ .FullyQualifiedName}}
{{"{{product_name_short}}"}} Default Average Reconcile Interval In Seconds{{ .DefaultReconcileInterval}}
+ +{{template "resource.tmpl" .}} +{{template "endnote.tmpl" .}} +{% endblock %} diff --git a/scripts/generate-google3-docs/resource-reference/templates/edgenetwork_edgenetworksubnet.tmpl b/scripts/generate-google3-docs/resource-reference/templates/edgenetwork_edgenetworksubnet.tmpl new file mode 100644 index 0000000000..bfe6ff68ab --- /dev/null +++ b/scripts/generate-google3-docs/resource-reference/templates/edgenetwork_edgenetworksubnet.tmpl @@ -0,0 +1,54 @@ +{{template "headercomment.tmpl" .}} + +{% extends "config-connector/_base.html" %} + +{% block page_title %}{{ .Kind}}{% endblock %} +{% block body %} +{{template "alphadisclaimer.tmpl" .}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{{template "iamsupport.tmpl" .}} + + + + + +
PropertyValue
{{"{{gcp_name_short}}"}} Service NameEdge Network
{{"{{gcp_name_short}}"}} Service Documentation/distributed-cloud/edge/latest/docs/
{{"{{gcp_name_short}}"}} REST Resource Nameprojects.locations.zones.subnets
{{"{{gcp_name_short}}"}} REST Resource Documentation/distributed-cloud/edge/latest/docs/reference/network/rest/v1/projects.locations.zones.subnets
{{"{{product_name_short}}"}} Resource Short Names{{ .ShortNames}}
{{"{{product_name_short}}"}} Service Nameedgenetwork.googleapis.com
{{"{{product_name_short}}"}} Resource Fully Qualified Name{{ .FullyQualifiedName}}
{{"{{product_name_short}}"}} Default Average Reconcile Interval In Seconds{{ .DefaultReconcileInterval}}
+ +{{template "resource.tmpl" .}} +{{template "endnote.tmpl" .}} +{% endblock %} diff --git a/scripts/shared-vars-public.sh b/scripts/shared-vars-public.sh index 4c55877438..ceddafb79c 100644 --- a/scripts/shared-vars-public.sh +++ b/scripts/shared-vars-public.sh @@ -57,6 +57,7 @@ SUPPORTED_SERVICES=( dataproc.googleapis.com dlp.googleapis.com dns.googleapis.com + edgenetwork.googleapis.com eventarc.googleapis.com file.googleapis.com gkehub.googleapis.com