google-cloud-network_connectivity-v1 0.6.1 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,84 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2023 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Cloud
22
+ module NetworkConnectivity
23
+ module V1
24
+ module PolicyBasedRoutingService
25
+ # Path helper methods for the PolicyBasedRoutingService API.
26
+ module Paths
27
+ ##
28
+ # Create a fully-qualified Location resource string.
29
+ #
30
+ # The resource will be in the following format:
31
+ #
32
+ # `projects/{project}/locations/{location}`
33
+ #
34
+ # @param project [String]
35
+ # @param location [String]
36
+ #
37
+ # @return [::String]
38
+ def location_path project:, location:
39
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
40
+
41
+ "projects/#{project}/locations/#{location}"
42
+ end
43
+
44
+ ##
45
+ # Create a fully-qualified Network resource string.
46
+ #
47
+ # The resource will be in the following format:
48
+ #
49
+ # `projects/{project}/global/networks/{resource_id}`
50
+ #
51
+ # @param project [String]
52
+ # @param resource_id [String]
53
+ #
54
+ # @return [::String]
55
+ def network_path project:, resource_id:
56
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
57
+
58
+ "projects/#{project}/global/networks/#{resource_id}"
59
+ end
60
+
61
+ ##
62
+ # Create a fully-qualified PolicyBasedRoute resource string.
63
+ #
64
+ # The resource will be in the following format:
65
+ #
66
+ # `projects/{project}/locations/global/PolicyBasedRoutes/{policy_based_route}`
67
+ #
68
+ # @param project [String]
69
+ # @param policy_based_route [String]
70
+ #
71
+ # @return [::String]
72
+ def policy_based_route_path project:, policy_based_route:
73
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
74
+
75
+ "projects/#{project}/locations/global/PolicyBasedRoutes/#{policy_based_route}"
76
+ end
77
+
78
+ extend self
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2023 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+ require "gapic/common"
20
+ require "gapic/config"
21
+ require "gapic/config/method"
22
+
23
+ require "google/cloud/network_connectivity/v1/version"
24
+
25
+ require "google/cloud/network_connectivity/v1/policy_based_routing_service/credentials"
26
+ require "google/cloud/network_connectivity/v1/policy_based_routing_service/paths"
27
+ require "google/cloud/network_connectivity/v1/policy_based_routing_service/operations"
28
+ require "google/cloud/network_connectivity/v1/policy_based_routing_service/client"
29
+
30
+ module Google
31
+ module Cloud
32
+ module NetworkConnectivity
33
+ module V1
34
+ ##
35
+ # Policy-Based Routing allows GCP customers to specify flexibile routing
36
+ # policies for Layer 4 traffic traversing through the connected service.
37
+ #
38
+ # @example Load this service and instantiate a gRPC client
39
+ #
40
+ # require "google/cloud/network_connectivity/v1/policy_based_routing_service"
41
+ # client = ::Google::Cloud::NetworkConnectivity::V1::PolicyBasedRoutingService::Client.new
42
+ #
43
+ module PolicyBasedRoutingService
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+
50
+ helper_path = ::File.join __dir__, "policy_based_routing_service", "helpers.rb"
51
+ require "google/cloud/network_connectivity/v1/policy_based_routing_service/helpers" if ::File.file? helper_path
@@ -21,7 +21,7 @@ module Google
21
21
  module Cloud
22
22
  module NetworkConnectivity
23
23
  module V1
24
- VERSION = "0.6.1"
24
+ VERSION = "0.7.0"
25
25
  end
26
26
  end
27
27
  end
@@ -17,6 +17,7 @@
17
17
  # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
18
 
19
19
  require "google/cloud/network_connectivity/v1/hub_service"
20
+ require "google/cloud/network_connectivity/v1/policy_based_routing_service"
20
21
  require "google/cloud/network_connectivity/v1/version"
21
22
 
22
23
  module Google
@@ -0,0 +1,64 @@
1
+ # frozen_string_literal: true
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: google/cloud/networkconnectivity/v1/policy_based_routing.proto
4
+
5
+ require 'google/protobuf'
6
+
7
+ require 'google/api/annotations_pb'
8
+ require 'google/api/client_pb'
9
+ require 'google/api/field_behavior_pb'
10
+ require 'google/api/resource_pb'
11
+ require 'google/cloud/networkconnectivity/v1/common_pb'
12
+ require 'google/longrunning/operations_pb'
13
+ require 'google/protobuf/empty_pb'
14
+ require 'google/protobuf/timestamp_pb'
15
+
16
+
17
+ descriptor_data = "\n>google/cloud/networkconnectivity/v1/policy_based_routing.proto\x12#google.cloud.networkconnectivity.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x30google/cloud/networkconnectivity/v1/common.proto\x1a#google/longrunning/operations.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xd1\x0e\n\x10PolicyBasedRoute\x12\x64\n\x0fvirtual_machine\x18\x12 \x01(\x0b\x32\x44.google.cloud.networkconnectivity.v1.PolicyBasedRoute.VirtualMachineB\x03\xe0\x41\x01H\x00\x12t\n\x17interconnect_attachment\x18\t \x01(\x0b\x32L.google.cloud.networkconnectivity.v1.PolicyBasedRoute.InterconnectAttachmentB\x03\xe0\x41\x01H\x00\x12\x1e\n\x0fnext_hop_ilb_ip\x18\x0c \x01(\tB\x03\xe0\x41\x01H\x01\x12g\n\x15next_hop_other_routes\x18\x15 \x01(\x0e\x32\x41.google.cloud.networkconnectivity.v1.PolicyBasedRoute.OtherRoutesB\x03\xe0\x41\x01H\x01\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x05\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12Q\n\x06labels\x18\x04 \x03(\x0b\x32\x41.google.cloud.networkconnectivity.v1.PolicyBasedRoute.LabelsEntry\x12\x18\n\x0b\x64\x65scription\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12\x37\n\x07network\x18\x06 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1e\x63ompute.googleapis.com/Network\x12Q\n\x06\x66ilter\x18\n \x01(\x0b\x32<.google.cloud.networkconnectivity.v1.PolicyBasedRoute.FilterB\x03\xe0\x41\x02\x12\x15\n\x08priority\x18\x0b \x01(\x05\x42\x03\xe0\x41\x01\x12U\n\x08warnings\x18\x0e \x03(\x0b\x32>.google.cloud.networkconnectivity.v1.PolicyBasedRoute.WarningsB\x03\xe0\x41\x03\x12\x16\n\tself_link\x18\x0f \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04kind\x18\x10 \x01(\tB\x03\xe0\x41\x03\x1a#\n\x0eVirtualMachine\x12\x11\n\x04tags\x18\x01 \x03(\tB\x03\xe0\x41\x01\x1a-\n\x16InterconnectAttachment\x12\x13\n\x06region\x18\x01 \x01(\tB\x03\xe0\x41\x01\x1a\xff\x01\n\x06\x46ilter\x12\x18\n\x0bip_protocol\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tsrc_range\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x17\n\ndest_range\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12k\n\x10protocol_version\x18\x06 \x01(\x0e\x32L.google.cloud.networkconnectivity.v1.PolicyBasedRoute.Filter.ProtocolVersionB\x03\xe0\x41\x02\"=\n\x0fProtocolVersion\x12 \n\x1cPROTOCOL_VERSION_UNSPECIFIED\x10\x00\x12\x08\n\x04IPV4\x10\x01\x1a\xe1\x02\n\x08Warnings\x12V\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x43.google.cloud.networkconnectivity.v1.PolicyBasedRoute.Warnings.CodeB\x03\xe0\x41\x03\x12[\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32H.google.cloud.networkconnectivity.v1.PolicyBasedRoute.Warnings.DataEntryB\x03\xe0\x41\x03\x12\x1c\n\x0fwarning_message\x18\x03 \x01(\tB\x03\xe0\x41\x03\x1a+\n\tDataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"U\n\x04\x43ode\x12\x17\n\x13WARNING_UNSPECIFIED\x10\x00\x12\x17\n\x13RESOURCE_NOT_ACTIVE\x10\x01\x12\x1b\n\x17RESOURCE_BEING_MODIFIED\x10\x02\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"@\n\x0bOtherRoutes\x12\x1c\n\x18OTHER_ROUTES_UNSPECIFIED\x10\x00\x12\x13\n\x0f\x44\x45\x46\x41ULT_ROUTING\x10\x01:\x85\x01\xea\x41\x81\x01\n3networkconnectivity.googleapis.com/PolicyBasedRoute\x12Jprojects/{project}/locations/global/PolicyBasedRoutes/{policy_based_route}B\x08\n\x06targetB\n\n\x08next_hop\"\xa2\x01\n\x1cListPolicyBasedRoutesRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x04 \x01(\t\x12\x10\n\x08order_by\x18\x05 \x01(\t\"\xa1\x01\n\x1dListPolicyBasedRoutesResponse\x12R\n\x13policy_based_routes\x18\x01 \x03(\x0b\x32\x35.google.cloud.networkconnectivity.v1.PolicyBasedRoute\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"g\n\x1aGetPolicyBasedRouteRequest\x12I\n\x04name\x18\x01 \x01(\tB;\xe0\x41\x02\xfa\x41\x35\n3networkconnectivity.googleapis.com/PolicyBasedRoute\"\xef\x01\n\x1d\x43reatePolicyBasedRouteRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\"\n\x15policy_based_route_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12V\n\x12policy_based_route\x18\x03 \x01(\x0b\x32\x35.google.cloud.networkconnectivity.v1.PolicyBasedRouteB\x03\xe0\x41\x02\x12\x17\n\nrequest_id\x18\x04 \x01(\tB\x03\xe0\x41\x01\"\x83\x01\n\x1d\x44\x65letePolicyBasedRouteRequest\x12I\n\x04name\x18\x01 \x01(\tB;\xe0\x41\x02\xfa\x41\x35\n3networkconnectivity.googleapis.com/PolicyBasedRoute\x12\x17\n\nrequest_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x32\xe3\x08\n\x19PolicyBasedRoutingService\x12\xeb\x01\n\x15ListPolicyBasedRoutes\x12\x41.google.cloud.networkconnectivity.v1.ListPolicyBasedRoutesRequest\x1a\x42.google.cloud.networkconnectivity.v1.ListPolicyBasedRoutesResponse\"K\x82\xd3\xe4\x93\x02<\x12:/v1/{parent=projects/*/locations/global}/policyBasedRoutes\xda\x41\x06parent\x12\xd8\x01\n\x13GetPolicyBasedRoute\x12?.google.cloud.networkconnectivity.v1.GetPolicyBasedRouteRequest\x1a\x35.google.cloud.networkconnectivity.v1.PolicyBasedRoute\"I\x82\xd3\xe4\x93\x02<\x12:/v1/{name=projects/*/locations/global/policyBasedRoutes/*}\xda\x41\x04name\x12\xae\x02\n\x16\x43reatePolicyBasedRoute\x12\x42.google.cloud.networkconnectivity.v1.CreatePolicyBasedRouteRequest\x1a\x1d.google.longrunning.Operation\"\xb0\x01\x82\xd3\xe4\x93\x02P\":/v1/{parent=projects/*/locations/global}/policyBasedRoutes:\x12policy_based_route\xda\x41/parent,policy_based_route,policy_based_route_id\xca\x41%\n\x10PolicyBasedRoute\x12\x11OperationMetadata\x12\xf3\x01\n\x16\x44\x65letePolicyBasedRoute\x12\x42.google.cloud.networkconnectivity.v1.DeletePolicyBasedRouteRequest\x1a\x1d.google.longrunning.Operation\"v\x82\xd3\xe4\x93\x02<*:/v1/{name=projects/*/locations/global/policyBasedRoutes/*}\xda\x41\x04name\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\x1aV\xca\x41\"networkconnectivity.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\x94\x02\n\'com.google.cloud.networkconnectivity.v1B\x17PolicyBasedRoutingProtoP\x01ZYcloud.google.com/go/networkconnectivity/apiv1/networkconnectivitypb;networkconnectivitypb\xaa\x02#Google.Cloud.NetworkConnectivity.V1\xca\x02#Google\\Cloud\\NetworkConnectivity\\V1\xea\x02&Google::Cloud::NetworkConnectivity::V1b\x06proto3"
18
+
19
+ pool = Google::Protobuf::DescriptorPool.generated_pool
20
+
21
+ begin
22
+ pool.add_serialized_file(descriptor_data)
23
+ rescue TypeError => e
24
+ # Compatibility code: will be removed in the next major version.
25
+ require 'google/protobuf/descriptor_pb'
26
+ parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
27
+ parsed.clear_dependency
28
+ serialized = parsed.class.encode(parsed)
29
+ file = pool.add_serialized_file(serialized)
30
+ warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
31
+ imports = [
32
+ ["google.protobuf.Timestamp", "google/protobuf/timestamp.proto"],
33
+ ]
34
+ imports.each do |type_name, expected_filename|
35
+ import_file = pool.lookup(type_name).file_descriptor
36
+ if import_file.name != expected_filename
37
+ warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
38
+ end
39
+ end
40
+ warn "Each proto file must use a consistent fully-qualified name."
41
+ warn "This will become an error in the next major version."
42
+ end
43
+
44
+ module Google
45
+ module Cloud
46
+ module NetworkConnectivity
47
+ module V1
48
+ PolicyBasedRoute = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.PolicyBasedRoute").msgclass
49
+ PolicyBasedRoute::VirtualMachine = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.PolicyBasedRoute.VirtualMachine").msgclass
50
+ PolicyBasedRoute::InterconnectAttachment = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.PolicyBasedRoute.InterconnectAttachment").msgclass
51
+ PolicyBasedRoute::Filter = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.PolicyBasedRoute.Filter").msgclass
52
+ PolicyBasedRoute::Filter::ProtocolVersion = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.PolicyBasedRoute.Filter.ProtocolVersion").enummodule
53
+ PolicyBasedRoute::Warnings = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.PolicyBasedRoute.Warnings").msgclass
54
+ PolicyBasedRoute::Warnings::Code = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.PolicyBasedRoute.Warnings.Code").enummodule
55
+ PolicyBasedRoute::OtherRoutes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.PolicyBasedRoute.OtherRoutes").enummodule
56
+ ListPolicyBasedRoutesRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.ListPolicyBasedRoutesRequest").msgclass
57
+ ListPolicyBasedRoutesResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.ListPolicyBasedRoutesResponse").msgclass
58
+ GetPolicyBasedRouteRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.GetPolicyBasedRouteRequest").msgclass
59
+ CreatePolicyBasedRouteRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.CreatePolicyBasedRouteRequest").msgclass
60
+ DeletePolicyBasedRouteRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.DeletePolicyBasedRouteRequest").msgclass
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,52 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # Source: google/cloud/networkconnectivity/v1/policy_based_routing.proto for package 'Google.Cloud.NetworkConnectivity.V1'
3
+ # Original file comments:
4
+ # Copyright 2023 Google LLC
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+
19
+ require 'grpc'
20
+ require 'google/cloud/networkconnectivity/v1/policy_based_routing_pb'
21
+
22
+ module Google
23
+ module Cloud
24
+ module NetworkConnectivity
25
+ module V1
26
+ module PolicyBasedRoutingService
27
+ # Policy-Based Routing allows GCP customers to specify flexibile routing
28
+ # policies for Layer 4 traffic traversing through the connected service.
29
+ class Service
30
+
31
+ include ::GRPC::GenericService
32
+
33
+ self.marshal_class_method = :encode
34
+ self.unmarshal_class_method = :decode
35
+ self.service_name = 'google.cloud.networkconnectivity.v1.PolicyBasedRoutingService'
36
+
37
+ # Lists PolicyBasedRoutes in a given project and location.
38
+ rpc :ListPolicyBasedRoutes, ::Google::Cloud::NetworkConnectivity::V1::ListPolicyBasedRoutesRequest, ::Google::Cloud::NetworkConnectivity::V1::ListPolicyBasedRoutesResponse
39
+ # Gets details of a single PolicyBasedRoute.
40
+ rpc :GetPolicyBasedRoute, ::Google::Cloud::NetworkConnectivity::V1::GetPolicyBasedRouteRequest, ::Google::Cloud::NetworkConnectivity::V1::PolicyBasedRoute
41
+ # Creates a new PolicyBasedRoute in a given project and location.
42
+ rpc :CreatePolicyBasedRoute, ::Google::Cloud::NetworkConnectivity::V1::CreatePolicyBasedRouteRequest, ::Google::Longrunning::Operation
43
+ # Deletes a single PolicyBasedRoute.
44
+ rpc :DeletePolicyBasedRoute, ::Google::Cloud::NetworkConnectivity::V1::DeletePolicyBasedRouteRequest, ::Google::Longrunning::Operation
45
+ end
46
+
47
+ Stub = Service.rpc_stub_class
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -66,6 +66,20 @@ module Google
66
66
  # a non-empty value will be returned. The user will not be aware of what
67
67
  # non-empty value to expect.
68
68
  NON_EMPTY_DEFAULT = 7
69
+
70
+ # Denotes that the field in a resource (a message annotated with
71
+ # google.api.resource) is used in the resource name to uniquely identify the
72
+ # resource. For AIP-compliant APIs, this should only be applied to the
73
+ # `name` field on the resource.
74
+ #
75
+ # This behavior should not be applied to references to other resources within
76
+ # the message.
77
+ #
78
+ # The identifier field of resources often have different field behavior
79
+ # depending on the request it is embedded in (e.g. for Create methods name
80
+ # is optional and unused, while for Update methods it is required). Instead
81
+ # of method-specific annotations, only `IDENTIFIER` is required.
82
+ IDENTIFIER = 8
69
83
  end
70
84
  end
71
85
  end
@@ -0,0 +1,312 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2023 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Cloud
22
+ module NetworkConnectivity
23
+ module V1
24
+ # Policy Based Routes (PBR) are more powerful routes that allows GCP customers
25
+ # to route their L4 network traffic based on not just destination IP, but also
26
+ # source IP, protocol and more. A PBR always take precedence when it conflicts
27
+ # with other types of routes.
28
+ # Next id: 22
29
+ # @!attribute [rw] virtual_machine
30
+ # @return [::Google::Cloud::NetworkConnectivity::V1::PolicyBasedRoute::VirtualMachine]
31
+ # Optional. VM instances to which this policy based route applies to.
32
+ # @!attribute [rw] interconnect_attachment
33
+ # @return [::Google::Cloud::NetworkConnectivity::V1::PolicyBasedRoute::InterconnectAttachment]
34
+ # Optional. The interconnect attachments to which this route applies to.
35
+ # @!attribute [rw] next_hop_ilb_ip
36
+ # @return [::String]
37
+ # Optional. The IP of a global access enabled L4 ILB that should be the
38
+ # next hop to handle matching packets. For this version, only
39
+ # next_hop_ilb_ip is supported.
40
+ # @!attribute [rw] next_hop_other_routes
41
+ # @return [::Google::Cloud::NetworkConnectivity::V1::PolicyBasedRoute::OtherRoutes]
42
+ # Optional. Other routes that will be referenced to determine the next hop
43
+ # of the packet.
44
+ # @!attribute [rw] name
45
+ # @return [::String]
46
+ # Immutable. A unique name of the resource in the form of
47
+ # `projects/{project_number}/locations/global/PolicyBasedRoutes/{policy_based_route_id}`
48
+ # @!attribute [r] create_time
49
+ # @return [::Google::Protobuf::Timestamp]
50
+ # Output only. Time when the PolicyBasedRoute was created.
51
+ # @!attribute [r] update_time
52
+ # @return [::Google::Protobuf::Timestamp]
53
+ # Output only. Time when the PolicyBasedRoute was updated.
54
+ # @!attribute [rw] labels
55
+ # @return [::Google::Protobuf::Map{::String => ::String}]
56
+ # User-defined labels.
57
+ # @!attribute [rw] description
58
+ # @return [::String]
59
+ # Optional. An optional description of this resource. Provide this field when
60
+ # you create the resource.
61
+ # @!attribute [rw] network
62
+ # @return [::String]
63
+ # Required. Fully-qualified URL of the network that this route applies to.
64
+ # e.g. projects/my-project/global/networks/my-network.
65
+ # @!attribute [rw] filter
66
+ # @return [::Google::Cloud::NetworkConnectivity::V1::PolicyBasedRoute::Filter]
67
+ # Required. The filter to match L4 traffic.
68
+ # @!attribute [rw] priority
69
+ # @return [::Integer]
70
+ # Optional. The priority of this policy based route. Priority is used to
71
+ # break ties in cases where there are more than one matching policy based
72
+ # routes found. In cases where multiple policy based routes are matched, the
73
+ # one with the lowest-numbered priority value wins. The default value is
74
+ # 1000. The priority value must be from 1 to 65535, inclusive.
75
+ # @!attribute [r] warnings
76
+ # @return [::Array<::Google::Cloud::NetworkConnectivity::V1::PolicyBasedRoute::Warnings>]
77
+ # Output only. If potential misconfigurations are detected for this route,
78
+ # this field will be populated with warning messages.
79
+ # @!attribute [r] self_link
80
+ # @return [::String]
81
+ # Output only. Server-defined fully-qualified URL for this resource.
82
+ # @!attribute [r] kind
83
+ # @return [::String]
84
+ # Output only. Type of this resource. Always
85
+ # networkconnectivity#policyBasedRoute for Policy Based Route resources.
86
+ class PolicyBasedRoute
87
+ include ::Google::Protobuf::MessageExts
88
+ extend ::Google::Protobuf::MessageExts::ClassMethods
89
+
90
+ # VM instances to which this policy based route applies to.
91
+ # @!attribute [rw] tags
92
+ # @return [::Array<::String>]
93
+ # Optional. A list of VM instance tags to which this policy based route
94
+ # applies to. VM instances that have ANY of tags specified here will
95
+ # install this PBR.
96
+ class VirtualMachine
97
+ include ::Google::Protobuf::MessageExts
98
+ extend ::Google::Protobuf::MessageExts::ClassMethods
99
+ end
100
+
101
+ # InterconnectAttachment to which this route applies to.
102
+ # @!attribute [rw] region
103
+ # @return [::String]
104
+ # Optional. Cloud region to install this policy based route on interconnect
105
+ # attachment. Use `all` to install it on all interconnect attachments.
106
+ class InterconnectAttachment
107
+ include ::Google::Protobuf::MessageExts
108
+ extend ::Google::Protobuf::MessageExts::ClassMethods
109
+ end
110
+
111
+ # Filter matches L4 traffic.
112
+ # @!attribute [rw] ip_protocol
113
+ # @return [::String]
114
+ # Optional. The IP protocol that this policy based route applies to. Valid
115
+ # values are 'TCP', 'UDP', and 'ALL'. Default is 'ALL'.
116
+ # @!attribute [rw] src_range
117
+ # @return [::String]
118
+ # Optional. The source IP range of outgoing packets that this policy based
119
+ # route applies to. Default is "0.0.0.0/0" if protocol version is IPv4.
120
+ # @!attribute [rw] dest_range
121
+ # @return [::String]
122
+ # Optional. The destination IP range of outgoing packets that this policy
123
+ # based route applies to. Default is "0.0.0.0/0" if protocol version is
124
+ # IPv4.
125
+ # @!attribute [rw] protocol_version
126
+ # @return [::Google::Cloud::NetworkConnectivity::V1::PolicyBasedRoute::Filter::ProtocolVersion]
127
+ # Required. Internet protocol versions this policy based route applies to.
128
+ # For this version, only IPV4 is supported.
129
+ class Filter
130
+ include ::Google::Protobuf::MessageExts
131
+ extend ::Google::Protobuf::MessageExts::ClassMethods
132
+
133
+ # The internet protocol version.
134
+ module ProtocolVersion
135
+ # Default value.
136
+ PROTOCOL_VERSION_UNSPECIFIED = 0
137
+
138
+ # The PBR is for IPv4 internet protocol traffic.
139
+ IPV4 = 1
140
+ end
141
+ end
142
+
143
+ # Informational warning message.
144
+ # @!attribute [r] code
145
+ # @return [::Google::Cloud::NetworkConnectivity::V1::PolicyBasedRoute::Warnings::Code]
146
+ # Output only. A warning code, if applicable.
147
+ # @!attribute [r] data
148
+ # @return [::Google::Protobuf::Map{::String => ::String}]
149
+ # Output only. Metadata about this warning in key: value format. The key
150
+ # should provides more detail on the warning being returned. For example,
151
+ # for warnings where there are no results in a list request for a
152
+ # particular zone, this key might be scope and the key value might be the
153
+ # zone name. Other examples might be a key indicating a deprecated resource
154
+ # and a suggested replacement.
155
+ # @!attribute [r] warning_message
156
+ # @return [::String]
157
+ # Output only. A human-readable description of the warning code.
158
+ class Warnings
159
+ include ::Google::Protobuf::MessageExts
160
+ extend ::Google::Protobuf::MessageExts::ClassMethods
161
+
162
+ # @!attribute [rw] key
163
+ # @return [::String]
164
+ # @!attribute [rw] value
165
+ # @return [::String]
166
+ class DataEntry
167
+ include ::Google::Protobuf::MessageExts
168
+ extend ::Google::Protobuf::MessageExts::ClassMethods
169
+ end
170
+
171
+ # Warning code for Policy Based Routing. Expect to add values in the
172
+ # future.
173
+ module Code
174
+ # Default value.
175
+ WARNING_UNSPECIFIED = 0
176
+
177
+ # The policy based route is not active and functioning. Common causes are
178
+ # the dependent network was deleted or the resource project was turned
179
+ # off.
180
+ RESOURCE_NOT_ACTIVE = 1
181
+
182
+ # The policy based route is being modified (e.g. created/deleted) at this
183
+ # time.
184
+ RESOURCE_BEING_MODIFIED = 2
185
+ end
186
+ end
187
+
188
+ # @!attribute [rw] key
189
+ # @return [::String]
190
+ # @!attribute [rw] value
191
+ # @return [::String]
192
+ class LabelsEntry
193
+ include ::Google::Protobuf::MessageExts
194
+ extend ::Google::Protobuf::MessageExts::ClassMethods
195
+ end
196
+
197
+ # The other routing cases.
198
+ module OtherRoutes
199
+ # Default value.
200
+ OTHER_ROUTES_UNSPECIFIED = 0
201
+
202
+ # Use the routes from the default routing tables (system-generated routes,
203
+ # custom routes, peering route) to determine the next hop. This will
204
+ # effectively exclude matching packets being applied on other PBRs with a
205
+ # lower priority.
206
+ DEFAULT_ROUTING = 1
207
+ end
208
+ end
209
+
210
+ # Request for [PolicyBasedRouting.ListPolicyBasedRoutes][] method.
211
+ # @!attribute [rw] parent
212
+ # @return [::String]
213
+ # Required. The parent resource's name.
214
+ # @!attribute [rw] page_size
215
+ # @return [::Integer]
216
+ # The maximum number of results per page that should be returned.
217
+ # @!attribute [rw] page_token
218
+ # @return [::String]
219
+ # The page token.
220
+ # @!attribute [rw] filter
221
+ # @return [::String]
222
+ # A filter expression that filters the results listed in the response.
223
+ # @!attribute [rw] order_by
224
+ # @return [::String]
225
+ # Sort the results by a certain order.
226
+ class ListPolicyBasedRoutesRequest
227
+ include ::Google::Protobuf::MessageExts
228
+ extend ::Google::Protobuf::MessageExts::ClassMethods
229
+ end
230
+
231
+ # Response for [PolicyBasedRouting.ListPolicyBasedRoutes][] method.
232
+ # @!attribute [rw] policy_based_routes
233
+ # @return [::Array<::Google::Cloud::NetworkConnectivity::V1::PolicyBasedRoute>]
234
+ # Policy based routes to be returned.
235
+ # @!attribute [rw] next_page_token
236
+ # @return [::String]
237
+ # The next pagination token in the List response. It should be used as
238
+ # page_token for the following request. An empty value means no more result.
239
+ # @!attribute [rw] unreachable
240
+ # @return [::Array<::String>]
241
+ # Locations that could not be reached.
242
+ class ListPolicyBasedRoutesResponse
243
+ include ::Google::Protobuf::MessageExts
244
+ extend ::Google::Protobuf::MessageExts::ClassMethods
245
+ end
246
+
247
+ # Request for [PolicyBasedRouting.GetPolicyBasedRoute][] method.
248
+ # @!attribute [rw] name
249
+ # @return [::String]
250
+ # Required. Name of the PolicyBasedRoute resource to get.
251
+ class GetPolicyBasedRouteRequest
252
+ include ::Google::Protobuf::MessageExts
253
+ extend ::Google::Protobuf::MessageExts::ClassMethods
254
+ end
255
+
256
+ # Request for [PolicyBasedRouting.CreatePolicyBasedRoute][] method.
257
+ # @!attribute [rw] parent
258
+ # @return [::String]
259
+ # Required. The parent resource's name of the PolicyBasedRoute.
260
+ # @!attribute [rw] policy_based_route_id
261
+ # @return [::String]
262
+ # Required. Unique id for the Policy Based Route to create.
263
+ # @!attribute [rw] policy_based_route
264
+ # @return [::Google::Cloud::NetworkConnectivity::V1::PolicyBasedRoute]
265
+ # Required. Initial values for a new Policy Based Route.
266
+ # @!attribute [rw] request_id
267
+ # @return [::String]
268
+ # Optional. An optional request ID to identify requests. Specify a unique
269
+ # request ID so that if you must retry your request, the server will know to
270
+ # ignore the request if it has already been completed. The server will
271
+ # guarantee that for at least 60 minutes since the first request.
272
+ #
273
+ # For example, consider a situation where you make an initial request and
274
+ # the request times out. If you make the request again with the same request
275
+ # ID, the server can check if original operation with the same request ID
276
+ # was received, and if so, will ignore the second request. This prevents
277
+ # clients from accidentally creating duplicate commitments.
278
+ #
279
+ # The request ID must be a valid UUID with the exception that zero UUID is
280
+ # not supported (00000000-0000-0000-0000-000000000000).
281
+ class CreatePolicyBasedRouteRequest
282
+ include ::Google::Protobuf::MessageExts
283
+ extend ::Google::Protobuf::MessageExts::ClassMethods
284
+ end
285
+
286
+ # Request for [PolicyBasedRouting.DeletePolicyBasedRoute][] method.
287
+ # @!attribute [rw] name
288
+ # @return [::String]
289
+ # Required. Name of the PolicyBasedRoute resource to delete.
290
+ # @!attribute [rw] request_id
291
+ # @return [::String]
292
+ # Optional. An optional request ID to identify requests. Specify a unique
293
+ # request ID so that if you must retry your request, the server will know to
294
+ # ignore the request if it has already been completed. The server will
295
+ # guarantee that for at least 60 minutes after the first request.
296
+ #
297
+ # For example, consider a situation where you make an initial request and
298
+ # the request times out. If you make the request again with the same request
299
+ # ID, the server can check if original operation with the same request ID
300
+ # was received, and if so, will ignore the second request. This prevents
301
+ # clients from accidentally creating duplicate commitments.
302
+ #
303
+ # The request ID must be a valid UUID with the exception that zero UUID is
304
+ # not supported (00000000-0000-0000-0000-000000000000).
305
+ class DeletePolicyBasedRouteRequest
306
+ include ::Google::Protobuf::MessageExts
307
+ extend ::Google::Protobuf::MessageExts::ClassMethods
308
+ end
309
+ end
310
+ end
311
+ end
312
+ end