google-cloud-optimization-v1 0.3.0 → 0.4.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ef1c06c8689f9ec9924927c2e6a0f05bf3ae76fc4cacfb54f66209e9c41c80f5
4
- data.tar.gz: b88a5648c0cd64550643df1bae0294832727a0048b710f8ffefd8d6a5172ed30
3
+ metadata.gz: 1d5105a7ff65a35eda5d8335c7e639d43a1aea4ce12af5d5ac328f3ddd0d1201
4
+ data.tar.gz: bec629b610f6a31801baa408695b5c448d0131e36743de71063b78c26999427b
5
5
  SHA512:
6
- metadata.gz: 31d9d6dd3d96519f5c6e832bca5ac24bd478f2e0fad7514de42554d996fb377a3d7638c458b8b3721f0358ed68e52fc9ec321bf1e22335c1163d8306e467a268
7
- data.tar.gz: 740e1e2341166cc4a3206e813ad6479a9a6178573fa8238051a6ff20d2bc6bfc1511845235bcc79b66726ab1a7ff9d49c32f13798182590c14a3f529d388ca73
6
+ metadata.gz: 818eab72d604a5473efc58e19435ab29406de4bf1591e540a11680871e4062f2979bdd6804cf06490288dd92c970330359de59ec1824888555a4dd38ea0cf9e2
7
+ data.tar.gz: 16a3125143d8cab7539fd6c90159625fe62e5f66f525309c2611413a7a8322f5a6a2600d7738772e44c829a684d0f8e16f9022e36e9313c4b810c6ffe75f3883
data/README.md CHANGED
@@ -47,7 +47,7 @@ for general usage information.
47
47
 
48
48
  To enable logging for this library, set the logger for the underlying [gRPC](https://github.com/grpc/grpc/tree/master/src/ruby) library.
49
49
  The logger that you set may be a Ruby stdlib [`Logger`](https://ruby-doc.org/current/stdlibs/logger/Logger.html) as shown below,
50
- or a [`Google::Cloud::Logging::Logger`](https://googleapis.dev/ruby/google-cloud-logging/latest)
50
+ or a [`Google::Cloud::Logging::Logger`](https://cloud.google.com/ruby/docs/reference/google-cloud-logging/latest)
51
51
  that will write logs to [Cloud Logging](https://cloud.google.com/logging/). See [grpc/logconfig.rb](https://github.com/grpc/grpc/blob/master/src/ruby/lib/grpc/logconfig.rb)
52
52
  and the gRPC [spec_helper.rb](https://github.com/grpc/grpc/blob/master/src/ruby/spec/spec_helper.rb) for additional information.
53
53
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
2
3
  # source: google/cloud/optimization/v1/async_model.proto
3
4
 
@@ -6,45 +7,32 @@ require 'google/protobuf'
6
7
  require 'google/api/field_behavior_pb'
7
8
  require 'google/protobuf/timestamp_pb'
8
9
 
9
- Google::Protobuf::DescriptorPool.generated_pool.build do
10
- add_file("google/cloud/optimization/v1/async_model.proto", :syntax => :proto3) do
11
- add_message "google.cloud.optimization.v1.InputConfig" do
12
- optional :data_format, :enum, 2, "google.cloud.optimization.v1.DataFormat"
13
- oneof :source do
14
- optional :gcs_source, :message, 1, "google.cloud.optimization.v1.GcsSource"
15
- end
16
- end
17
- add_message "google.cloud.optimization.v1.OutputConfig" do
18
- optional :data_format, :enum, 2, "google.cloud.optimization.v1.DataFormat"
19
- oneof :destination do
20
- optional :gcs_destination, :message, 1, "google.cloud.optimization.v1.GcsDestination"
21
- end
22
- end
23
- add_message "google.cloud.optimization.v1.GcsSource" do
24
- optional :uri, :string, 1
25
- end
26
- add_message "google.cloud.optimization.v1.GcsDestination" do
27
- optional :uri, :string, 1
28
- end
29
- add_message "google.cloud.optimization.v1.AsyncModelMetadata" do
30
- optional :state, :enum, 1, "google.cloud.optimization.v1.AsyncModelMetadata.State"
31
- optional :state_message, :string, 2
32
- optional :create_time, :message, 3, "google.protobuf.Timestamp"
33
- optional :update_time, :message, 4, "google.protobuf.Timestamp"
34
- end
35
- add_enum "google.cloud.optimization.v1.AsyncModelMetadata.State" do
36
- value :STATE_UNSPECIFIED, 0
37
- value :RUNNING, 1
38
- value :SUCCEEDED, 2
39
- value :CANCELLED, 3
40
- value :FAILED, 4
41
- end
42
- add_enum "google.cloud.optimization.v1.DataFormat" do
43
- value :DATA_FORMAT_UNSPECIFIED, 0
44
- value :JSON, 1
45
- value :STRING, 2
10
+
11
+ descriptor_data = "\n.google/cloud/optimization/v1/async_model.proto\x12\x1cgoogle.cloud.optimization.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x95\x01\n\x0bInputConfig\x12=\n\ngcs_source\x18\x01 \x01(\x0b\x32\'.google.cloud.optimization.v1.GcsSourceH\x00\x12=\n\x0b\x64\x61ta_format\x18\x02 \x01(\x0e\x32(.google.cloud.optimization.v1.DataFormatB\x08\n\x06source\"\xa5\x01\n\x0cOutputConfig\x12G\n\x0fgcs_destination\x18\x01 \x01(\x0b\x32,.google.cloud.optimization.v1.GcsDestinationH\x00\x12=\n\x0b\x64\x61ta_format\x18\x02 \x01(\x0e\x32(.google.cloud.optimization.v1.DataFormatB\r\n\x0b\x64\x65stination\"\x1d\n\tGcsSource\x12\x10\n\x03uri\x18\x01 \x01(\tB\x03\xe0\x41\x02\"\"\n\x0eGcsDestination\x12\x10\n\x03uri\x18\x01 \x01(\tB\x03\xe0\x41\x02\"\xab\x02\n\x12\x41syncModelMetadata\x12\x45\n\x05state\x18\x01 \x01(\x0e\x32\x36.google.cloud.optimization.v1.AsyncModelMetadata.State\x12\x15\n\rstate_message\x18\x02 \x01(\t\x12/\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"U\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\r\n\tSUCCEEDED\x10\x02\x12\r\n\tCANCELLED\x10\x03\x12\n\n\x06\x46\x41ILED\x10\x04*?\n\nDataFormat\x12\x1b\n\x17\x44\x41TA_FORMAT_UNSPECIFIED\x10\x00\x12\x08\n\x04JSON\x10\x01\x12\n\n\x06STRING\x10\x02\x42{\n com.google.cloud.optimization.v1B\x0f\x41syncModelProtoP\x01ZDcloud.google.com/go/optimization/apiv1/optimizationpb;optimizationpbb\x06proto3"
12
+
13
+ pool = Google::Protobuf::DescriptorPool.generated_pool
14
+
15
+ begin
16
+ pool.add_serialized_file(descriptor_data)
17
+ rescue TypeError => e
18
+ # Compatibility code: will be removed in the next major version.
19
+ require 'google/protobuf/descriptor_pb'
20
+ parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
21
+ parsed.clear_dependency
22
+ serialized = parsed.class.encode(parsed)
23
+ file = pool.add_serialized_file(serialized)
24
+ warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
25
+ imports = [
26
+ ["google.protobuf.Timestamp", "google/protobuf/timestamp.proto"],
27
+ ]
28
+ imports.each do |type_name, expected_filename|
29
+ import_file = pool.lookup(type_name).file_descriptor
30
+ if import_file.name != expected_filename
31
+ warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
46
32
  end
47
33
  end
34
+ warn "Each proto file must use a consistent fully-qualified name."
35
+ warn "This will become an error in the next major version."
48
36
  end
49
37
 
50
38
  module Google
@@ -613,9 +613,9 @@ module Google
613
613
  # * (`String`) The path to a service account key file in JSON format
614
614
  # * (`Hash`) A service account key as a Hash
615
615
  # * (`Google::Auth::Credentials`) A googleauth credentials object
616
- # (see the [googleauth docs](https://googleapis.dev/ruby/googleauth/latest/index.html))
616
+ # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials))
617
617
  # * (`Signet::OAuth2::Client`) A signet oauth2 client object
618
- # (see the [signet docs](https://googleapis.dev/ruby/signet/latest/Signet/OAuth2/Client.html))
618
+ # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client))
619
619
  # * (`GRPC::Core::Channel`) a gRPC channel with included credentials
620
620
  # * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object
621
621
  # * (`nil`) indicating no credentials
@@ -620,9 +620,9 @@ module Google
620
620
  # * (`String`) The path to a service account key file in JSON format
621
621
  # * (`Hash`) A service account key as a Hash
622
622
  # * (`Google::Auth::Credentials`) A googleauth credentials object
623
- # (see the [googleauth docs](https://googleapis.dev/ruby/googleauth/latest/index.html))
623
+ # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials))
624
624
  # * (`Signet::OAuth2::Client`) A signet oauth2 client object
625
- # (see the [signet docs](https://googleapis.dev/ruby/signet/latest/Signet/OAuth2/Client.html))
625
+ # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client))
626
626
  # * (`GRPC::Core::Channel`) a gRPC channel with included credentials
627
627
  # * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object
628
628
  # * (`nil`) indicating no credentials
@@ -551,9 +551,9 @@ module Google
551
551
  # * (`String`) The path to a service account key file in JSON format
552
552
  # * (`Hash`) A service account key as a Hash
553
553
  # * (`Google::Auth::Credentials`) A googleauth credentials object
554
- # (see the [googleauth docs](https://googleapis.dev/ruby/googleauth/latest/index.html))
554
+ # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials))
555
555
  # * (`Signet::OAuth2::Client`) A signet oauth2 client object
556
- # (see the [signet docs](https://googleapis.dev/ruby/signet/latest/Signet/OAuth2/Client.html))
556
+ # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client))
557
557
  # * (`nil`) indicating no credentials
558
558
  # @return [::Object]
559
559
  # @!attribute [rw] scope
@@ -411,9 +411,9 @@ module Google
411
411
  # * (`String`) The path to a service account key file in JSON format
412
412
  # * (`Hash`) A service account key as a Hash
413
413
  # * (`Google::Auth::Credentials`) A googleauth credentials object
414
- # (see the [googleauth docs](https://googleapis.dev/ruby/googleauth/latest/index.html))
414
+ # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials))
415
415
  # * (`Signet::OAuth2::Client`) A signet oauth2 client object
416
- # (see the [signet docs](https://googleapis.dev/ruby/signet/latest/Signet/OAuth2/Client.html))
416
+ # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client))
417
417
  # * (`nil`) indicating no credentials
418
418
  # @return [::Object]
419
419
  # @!attribute [rw] scope
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
2
3
  # source: google/cloud/optimization/v1/fleet_routing.proto
3
4
 
@@ -12,410 +13,35 @@ require 'google/protobuf/duration_pb'
12
13
  require 'google/protobuf/timestamp_pb'
13
14
  require 'google/type/latlng_pb'
14
15
 
15
- Google::Protobuf::DescriptorPool.generated_pool.build do
16
- add_file("google/cloud/optimization/v1/fleet_routing.proto", :syntax => :proto3) do
17
- add_message "google.cloud.optimization.v1.OptimizeToursRequest" do
18
- optional :parent, :string, 1
19
- optional :timeout, :message, 2, "google.protobuf.Duration"
20
- optional :model, :message, 3, "google.cloud.optimization.v1.ShipmentModel"
21
- optional :solving_mode, :enum, 4, "google.cloud.optimization.v1.OptimizeToursRequest.SolvingMode"
22
- proto3_optional :max_validation_errors, :int32, 5
23
- optional :search_mode, :enum, 6, "google.cloud.optimization.v1.OptimizeToursRequest.SearchMode"
24
- repeated :injected_first_solution_routes, :message, 7, "google.cloud.optimization.v1.ShipmentRoute"
25
- optional :injected_solution_constraint, :message, 8, "google.cloud.optimization.v1.InjectedSolutionConstraint"
26
- repeated :refresh_details_routes, :message, 9, "google.cloud.optimization.v1.ShipmentRoute"
27
- optional :interpret_injected_solutions_using_labels, :bool, 10
28
- optional :consider_road_traffic, :bool, 11
29
- optional :populate_polylines, :bool, 12
30
- optional :populate_transition_polylines, :bool, 13
31
- optional :allow_large_deadline_despite_interruption_risk, :bool, 14
32
- optional :use_geodesic_distances, :bool, 15
33
- proto3_optional :geodesic_meters_per_second, :double, 16
34
- optional :label, :string, 17
35
- optional :populate_travel_step_polylines, :bool, 20
36
- end
37
- add_enum "google.cloud.optimization.v1.OptimizeToursRequest.SolvingMode" do
38
- value :DEFAULT_SOLVE, 0
39
- value :VALIDATE_ONLY, 1
40
- value :DETECT_SOME_INFEASIBLE_SHIPMENTS, 2
41
- end
42
- add_enum "google.cloud.optimization.v1.OptimizeToursRequest.SearchMode" do
43
- value :SEARCH_MODE_UNSPECIFIED, 0
44
- value :RETURN_FAST, 1
45
- value :CONSUME_ALL_AVAILABLE_TIME, 2
46
- end
47
- add_message "google.cloud.optimization.v1.OptimizeToursResponse" do
48
- repeated :routes, :message, 1, "google.cloud.optimization.v1.ShipmentRoute"
49
- optional :request_label, :string, 3
50
- repeated :skipped_shipments, :message, 4, "google.cloud.optimization.v1.SkippedShipment"
51
- repeated :validation_errors, :message, 5, "google.cloud.optimization.v1.OptimizeToursValidationError"
52
- optional :metrics, :message, 6, "google.cloud.optimization.v1.OptimizeToursResponse.Metrics"
53
- optional :total_cost, :double, 2
54
- end
55
- add_message "google.cloud.optimization.v1.OptimizeToursResponse.Metrics" do
56
- optional :aggregated_route_metrics, :message, 1, "google.cloud.optimization.v1.AggregatedMetrics"
57
- optional :skipped_mandatory_shipment_count, :int32, 2
58
- optional :used_vehicle_count, :int32, 3
59
- optional :earliest_vehicle_start_time, :message, 4, "google.protobuf.Timestamp"
60
- optional :latest_vehicle_end_time, :message, 5, "google.protobuf.Timestamp"
61
- map :costs, :string, :double, 10
62
- optional :total_cost, :double, 6
63
- end
64
- add_message "google.cloud.optimization.v1.BatchOptimizeToursRequest" do
65
- optional :parent, :string, 1
66
- repeated :model_configs, :message, 2, "google.cloud.optimization.v1.BatchOptimizeToursRequest.AsyncModelConfig"
67
- end
68
- add_message "google.cloud.optimization.v1.BatchOptimizeToursRequest.AsyncModelConfig" do
69
- optional :display_name, :string, 1
70
- optional :input_config, :message, 2, "google.cloud.optimization.v1.InputConfig"
71
- optional :output_config, :message, 3, "google.cloud.optimization.v1.OutputConfig"
72
- optional :enable_checkpoints, :bool, 4
73
- end
74
- add_message "google.cloud.optimization.v1.BatchOptimizeToursResponse" do
75
- end
76
- add_message "google.cloud.optimization.v1.ShipmentModel" do
77
- repeated :shipments, :message, 1, "google.cloud.optimization.v1.Shipment"
78
- repeated :vehicles, :message, 2, "google.cloud.optimization.v1.Vehicle"
79
- proto3_optional :max_active_vehicles, :int32, 4
80
- optional :global_start_time, :message, 5, "google.protobuf.Timestamp"
81
- optional :global_end_time, :message, 6, "google.protobuf.Timestamp"
82
- optional :global_duration_cost_per_hour, :double, 7
83
- repeated :duration_distance_matrices, :message, 8, "google.cloud.optimization.v1.ShipmentModel.DurationDistanceMatrix"
84
- repeated :duration_distance_matrix_src_tags, :string, 9
85
- repeated :duration_distance_matrix_dst_tags, :string, 10
86
- repeated :transition_attributes, :message, 11, "google.cloud.optimization.v1.TransitionAttributes"
87
- repeated :shipment_type_incompatibilities, :message, 12, "google.cloud.optimization.v1.ShipmentTypeIncompatibility"
88
- repeated :shipment_type_requirements, :message, 13, "google.cloud.optimization.v1.ShipmentTypeRequirement"
89
- repeated :precedence_rules, :message, 14, "google.cloud.optimization.v1.ShipmentModel.PrecedenceRule"
90
- repeated :break_rules, :message, 15, "google.cloud.optimization.v1.ShipmentModel.BreakRule"
91
- end
92
- add_message "google.cloud.optimization.v1.ShipmentModel.DurationDistanceMatrix" do
93
- repeated :rows, :message, 1, "google.cloud.optimization.v1.ShipmentModel.DurationDistanceMatrix.Row"
94
- optional :vehicle_start_tag, :string, 2
95
- end
96
- add_message "google.cloud.optimization.v1.ShipmentModel.DurationDistanceMatrix.Row" do
97
- repeated :durations, :message, 1, "google.protobuf.Duration"
98
- repeated :meters, :double, 2
99
- end
100
- add_message "google.cloud.optimization.v1.ShipmentModel.PrecedenceRule" do
101
- proto3_optional :first_index, :int32, 1
102
- optional :first_is_delivery, :bool, 3
103
- proto3_optional :second_index, :int32, 2
104
- optional :second_is_delivery, :bool, 4
105
- optional :offset_duration, :message, 5, "google.protobuf.Duration"
106
- end
107
- add_message "google.cloud.optimization.v1.ShipmentModel.BreakRule" do
108
- repeated :break_requests, :message, 1, "google.cloud.optimization.v1.ShipmentModel.BreakRule.BreakRequest"
109
- repeated :frequency_constraints, :message, 2, "google.cloud.optimization.v1.ShipmentModel.BreakRule.FrequencyConstraint"
110
- end
111
- add_message "google.cloud.optimization.v1.ShipmentModel.BreakRule.BreakRequest" do
112
- optional :earliest_start_time, :message, 1, "google.protobuf.Timestamp"
113
- optional :latest_start_time, :message, 2, "google.protobuf.Timestamp"
114
- optional :min_duration, :message, 3, "google.protobuf.Duration"
115
- end
116
- add_message "google.cloud.optimization.v1.ShipmentModel.BreakRule.FrequencyConstraint" do
117
- optional :min_break_duration, :message, 1, "google.protobuf.Duration"
118
- optional :max_inter_break_duration, :message, 2, "google.protobuf.Duration"
119
- end
120
- add_message "google.cloud.optimization.v1.Shipment" do
121
- repeated :pickups, :message, 1, "google.cloud.optimization.v1.Shipment.VisitRequest"
122
- repeated :deliveries, :message, 2, "google.cloud.optimization.v1.Shipment.VisitRequest"
123
- map :load_demands, :string, :message, 14, "google.cloud.optimization.v1.Shipment.Load"
124
- proto3_optional :penalty_cost, :double, 4
125
- repeated :allowed_vehicle_indices, :int32, 5
126
- repeated :costs_per_vehicle, :double, 6
127
- repeated :costs_per_vehicle_indices, :int32, 7
128
- proto3_optional :pickup_to_delivery_relative_detour_limit, :double, 8
129
- optional :pickup_to_delivery_absolute_detour_limit, :message, 9, "google.protobuf.Duration"
130
- optional :pickup_to_delivery_time_limit, :message, 10, "google.protobuf.Duration"
131
- optional :shipment_type, :string, 11
132
- optional :label, :string, 12
133
- optional :ignore, :bool, 13
134
- repeated :demands, :message, 3, "google.cloud.optimization.v1.CapacityQuantity"
135
- end
136
- add_message "google.cloud.optimization.v1.Shipment.VisitRequest" do
137
- optional :arrival_location, :message, 1, "google.type.LatLng"
138
- optional :arrival_waypoint, :message, 2, "google.cloud.optimization.v1.Waypoint"
139
- optional :departure_location, :message, 3, "google.type.LatLng"
140
- optional :departure_waypoint, :message, 4, "google.cloud.optimization.v1.Waypoint"
141
- repeated :tags, :string, 5
142
- repeated :time_windows, :message, 6, "google.cloud.optimization.v1.TimeWindow"
143
- optional :duration, :message, 7, "google.protobuf.Duration"
144
- optional :cost, :double, 8
145
- map :load_demands, :string, :message, 12, "google.cloud.optimization.v1.Shipment.Load"
146
- repeated :visit_types, :string, 10
147
- optional :label, :string, 11
148
- repeated :demands, :message, 9, "google.cloud.optimization.v1.CapacityQuantity"
149
- end
150
- add_message "google.cloud.optimization.v1.Shipment.Load" do
151
- optional :amount, :int64, 2
152
- end
153
- add_message "google.cloud.optimization.v1.ShipmentTypeIncompatibility" do
154
- repeated :types, :string, 1
155
- optional :incompatibility_mode, :enum, 2, "google.cloud.optimization.v1.ShipmentTypeIncompatibility.IncompatibilityMode"
156
- end
157
- add_enum "google.cloud.optimization.v1.ShipmentTypeIncompatibility.IncompatibilityMode" do
158
- value :INCOMPATIBILITY_MODE_UNSPECIFIED, 0
159
- value :NOT_PERFORMED_BY_SAME_VEHICLE, 1
160
- value :NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY, 2
161
- end
162
- add_message "google.cloud.optimization.v1.ShipmentTypeRequirement" do
163
- repeated :required_shipment_type_alternatives, :string, 1
164
- repeated :dependent_shipment_types, :string, 2
165
- optional :requirement_mode, :enum, 3, "google.cloud.optimization.v1.ShipmentTypeRequirement.RequirementMode"
166
- end
167
- add_enum "google.cloud.optimization.v1.ShipmentTypeRequirement.RequirementMode" do
168
- value :REQUIREMENT_MODE_UNSPECIFIED, 0
169
- value :PERFORMED_BY_SAME_VEHICLE, 1
170
- value :IN_SAME_VEHICLE_AT_PICKUP_TIME, 2
171
- value :IN_SAME_VEHICLE_AT_DELIVERY_TIME, 3
172
- end
173
- add_message "google.cloud.optimization.v1.Vehicle" do
174
- optional :travel_mode, :enum, 1, "google.cloud.optimization.v1.Vehicle.TravelMode"
175
- optional :start_location, :message, 3, "google.type.LatLng"
176
- optional :start_waypoint, :message, 4, "google.cloud.optimization.v1.Waypoint"
177
- optional :end_location, :message, 5, "google.type.LatLng"
178
- optional :end_waypoint, :message, 6, "google.cloud.optimization.v1.Waypoint"
179
- repeated :start_tags, :string, 7
180
- repeated :end_tags, :string, 8
181
- repeated :start_time_windows, :message, 9, "google.cloud.optimization.v1.TimeWindow"
182
- repeated :end_time_windows, :message, 10, "google.cloud.optimization.v1.TimeWindow"
183
- proto3_optional :travel_duration_multiple, :double, 11
184
- optional :unloading_policy, :enum, 12, "google.cloud.optimization.v1.Vehicle.UnloadingPolicy"
185
- map :load_limits, :string, :message, 30, "google.cloud.optimization.v1.Vehicle.LoadLimit"
186
- optional :cost_per_hour, :double, 16
187
- optional :cost_per_traveled_hour, :double, 17
188
- optional :cost_per_kilometer, :double, 18
189
- optional :fixed_cost, :double, 19
190
- optional :used_if_route_is_empty, :bool, 20
191
- optional :route_duration_limit, :message, 21, "google.cloud.optimization.v1.Vehicle.DurationLimit"
192
- optional :travel_duration_limit, :message, 22, "google.cloud.optimization.v1.Vehicle.DurationLimit"
193
- optional :route_distance_limit, :message, 23, "google.cloud.optimization.v1.DistanceLimit"
194
- map :extra_visit_duration_for_visit_type, :string, :message, 24, "google.protobuf.Duration"
195
- optional :break_rule, :message, 25, "google.cloud.optimization.v1.BreakRule"
196
- optional :label, :string, 27
197
- optional :ignore, :bool, 28
198
- repeated :break_rule_indices, :int32, 29
199
- repeated :capacities, :message, 13, "google.cloud.optimization.v1.CapacityQuantity"
200
- repeated :start_load_intervals, :message, 14, "google.cloud.optimization.v1.CapacityQuantityInterval"
201
- repeated :end_load_intervals, :message, 15, "google.cloud.optimization.v1.CapacityQuantityInterval"
202
- end
203
- add_message "google.cloud.optimization.v1.Vehicle.LoadLimit" do
204
- proto3_optional :max_load, :int64, 1
205
- optional :soft_max_load, :int64, 2
206
- optional :cost_per_unit_above_soft_max, :double, 3
207
- optional :start_load_interval, :message, 4, "google.cloud.optimization.v1.Vehicle.LoadLimit.Interval"
208
- optional :end_load_interval, :message, 5, "google.cloud.optimization.v1.Vehicle.LoadLimit.Interval"
209
- end
210
- add_message "google.cloud.optimization.v1.Vehicle.LoadLimit.Interval" do
211
- optional :min, :int64, 1
212
- proto3_optional :max, :int64, 2
213
- end
214
- add_message "google.cloud.optimization.v1.Vehicle.DurationLimit" do
215
- optional :max_duration, :message, 1, "google.protobuf.Duration"
216
- optional :soft_max_duration, :message, 2, "google.protobuf.Duration"
217
- proto3_optional :cost_per_hour_after_soft_max, :double, 3
218
- optional :quadratic_soft_max_duration, :message, 4, "google.protobuf.Duration"
219
- proto3_optional :cost_per_square_hour_after_quadratic_soft_max, :double, 5
220
- end
221
- add_enum "google.cloud.optimization.v1.Vehicle.TravelMode" do
222
- value :TRAVEL_MODE_UNSPECIFIED, 0
223
- value :DRIVING, 1
224
- end
225
- add_enum "google.cloud.optimization.v1.Vehicle.UnloadingPolicy" do
226
- value :UNLOADING_POLICY_UNSPECIFIED, 0
227
- value :LAST_IN_FIRST_OUT, 1
228
- value :FIRST_IN_FIRST_OUT, 2
229
- end
230
- add_message "google.cloud.optimization.v1.TimeWindow" do
231
- optional :start_time, :message, 1, "google.protobuf.Timestamp"
232
- optional :end_time, :message, 2, "google.protobuf.Timestamp"
233
- optional :soft_start_time, :message, 3, "google.protobuf.Timestamp"
234
- optional :soft_end_time, :message, 4, "google.protobuf.Timestamp"
235
- proto3_optional :cost_per_hour_before_soft_start_time, :double, 5
236
- proto3_optional :cost_per_hour_after_soft_end_time, :double, 6
237
- end
238
- add_message "google.cloud.optimization.v1.CapacityQuantity" do
239
- optional :type, :string, 1
240
- optional :value, :int64, 2
241
- end
242
- add_message "google.cloud.optimization.v1.CapacityQuantityInterval" do
243
- optional :type, :string, 1
244
- proto3_optional :min_value, :int64, 2
245
- proto3_optional :max_value, :int64, 3
246
- end
247
- add_message "google.cloud.optimization.v1.DistanceLimit" do
248
- proto3_optional :max_meters, :int64, 1
249
- proto3_optional :soft_max_meters, :int64, 2
250
- proto3_optional :cost_per_kilometer_above_soft_max, :double, 3
251
- end
252
- add_message "google.cloud.optimization.v1.TransitionAttributes" do
253
- optional :src_tag, :string, 1
254
- optional :excluded_src_tag, :string, 2
255
- optional :dst_tag, :string, 3
256
- optional :excluded_dst_tag, :string, 4
257
- optional :cost, :double, 5
258
- optional :cost_per_kilometer, :double, 6
259
- optional :distance_limit, :message, 7, "google.cloud.optimization.v1.DistanceLimit"
260
- optional :delay, :message, 8, "google.protobuf.Duration"
261
- end
262
- add_message "google.cloud.optimization.v1.Waypoint" do
263
- optional :side_of_road, :bool, 3
264
- oneof :location_type do
265
- optional :location, :message, 1, "google.cloud.optimization.v1.Location"
266
- optional :place_id, :string, 2
267
- end
268
- end
269
- add_message "google.cloud.optimization.v1.Location" do
270
- optional :lat_lng, :message, 1, "google.type.LatLng"
271
- proto3_optional :heading, :int32, 2
272
- end
273
- add_message "google.cloud.optimization.v1.BreakRule" do
274
- repeated :break_requests, :message, 1, "google.cloud.optimization.v1.BreakRule.BreakRequest"
275
- repeated :frequency_constraints, :message, 2, "google.cloud.optimization.v1.BreakRule.FrequencyConstraint"
276
- end
277
- add_message "google.cloud.optimization.v1.BreakRule.BreakRequest" do
278
- optional :earliest_start_time, :message, 1, "google.protobuf.Timestamp"
279
- optional :latest_start_time, :message, 2, "google.protobuf.Timestamp"
280
- optional :min_duration, :message, 3, "google.protobuf.Duration"
281
- end
282
- add_message "google.cloud.optimization.v1.BreakRule.FrequencyConstraint" do
283
- optional :min_break_duration, :message, 1, "google.protobuf.Duration"
284
- optional :max_inter_break_duration, :message, 2, "google.protobuf.Duration"
285
- end
286
- add_message "google.cloud.optimization.v1.ShipmentRoute" do
287
- optional :vehicle_index, :int32, 1
288
- optional :vehicle_label, :string, 2
289
- optional :vehicle_start_time, :message, 5, "google.protobuf.Timestamp"
290
- optional :vehicle_end_time, :message, 6, "google.protobuf.Timestamp"
291
- repeated :visits, :message, 7, "google.cloud.optimization.v1.ShipmentRoute.Visit"
292
- repeated :transitions, :message, 8, "google.cloud.optimization.v1.ShipmentRoute.Transition"
293
- optional :has_traffic_infeasibilities, :bool, 9
294
- optional :route_polyline, :message, 10, "google.cloud.optimization.v1.ShipmentRoute.EncodedPolyline"
295
- repeated :breaks, :message, 11, "google.cloud.optimization.v1.ShipmentRoute.Break"
296
- optional :metrics, :message, 12, "google.cloud.optimization.v1.AggregatedMetrics"
297
- map :route_costs, :string, :double, 17
298
- optional :route_total_cost, :double, 18
299
- repeated :end_loads, :message, 13, "google.cloud.optimization.v1.CapacityQuantity"
300
- repeated :travel_steps, :message, 14, "google.cloud.optimization.v1.ShipmentRoute.TravelStep"
301
- optional :vehicle_detour, :message, 15, "google.protobuf.Duration"
302
- optional :delay_before_vehicle_end, :message, 16, "google.cloud.optimization.v1.ShipmentRoute.Delay"
303
- end
304
- add_message "google.cloud.optimization.v1.ShipmentRoute.Delay" do
305
- optional :start_time, :message, 1, "google.protobuf.Timestamp"
306
- optional :duration, :message, 2, "google.protobuf.Duration"
307
- end
308
- add_message "google.cloud.optimization.v1.ShipmentRoute.Visit" do
309
- optional :shipment_index, :int32, 1
310
- optional :is_pickup, :bool, 2
311
- optional :visit_request_index, :int32, 3
312
- optional :start_time, :message, 4, "google.protobuf.Timestamp"
313
- map :load_demands, :string, :message, 11, "google.cloud.optimization.v1.Shipment.Load"
314
- optional :detour, :message, 6, "google.protobuf.Duration"
315
- optional :shipment_label, :string, 7
316
- optional :visit_label, :string, 8
317
- repeated :arrival_loads, :message, 9, "google.cloud.optimization.v1.CapacityQuantity"
318
- optional :delay_before_start, :message, 10, "google.cloud.optimization.v1.ShipmentRoute.Delay"
319
- repeated :demands, :message, 5, "google.cloud.optimization.v1.CapacityQuantity"
320
- end
321
- add_message "google.cloud.optimization.v1.ShipmentRoute.Transition" do
322
- optional :travel_duration, :message, 1, "google.protobuf.Duration"
323
- optional :travel_distance_meters, :double, 2
324
- optional :traffic_info_unavailable, :bool, 3
325
- optional :delay_duration, :message, 4, "google.protobuf.Duration"
326
- optional :break_duration, :message, 5, "google.protobuf.Duration"
327
- optional :wait_duration, :message, 6, "google.protobuf.Duration"
328
- optional :total_duration, :message, 7, "google.protobuf.Duration"
329
- optional :start_time, :message, 8, "google.protobuf.Timestamp"
330
- optional :route_polyline, :message, 9, "google.cloud.optimization.v1.ShipmentRoute.EncodedPolyline"
331
- map :vehicle_loads, :string, :message, 11, "google.cloud.optimization.v1.ShipmentRoute.VehicleLoad"
332
- repeated :loads, :message, 10, "google.cloud.optimization.v1.CapacityQuantity"
333
- end
334
- add_message "google.cloud.optimization.v1.ShipmentRoute.VehicleLoad" do
335
- optional :amount, :int64, 1
336
- end
337
- add_message "google.cloud.optimization.v1.ShipmentRoute.EncodedPolyline" do
338
- optional :points, :string, 1
339
- end
340
- add_message "google.cloud.optimization.v1.ShipmentRoute.Break" do
341
- optional :start_time, :message, 1, "google.protobuf.Timestamp"
342
- optional :duration, :message, 2, "google.protobuf.Duration"
343
- end
344
- add_message "google.cloud.optimization.v1.ShipmentRoute.TravelStep" do
345
- optional :duration, :message, 1, "google.protobuf.Duration"
346
- optional :distance_meters, :double, 2
347
- optional :traffic_info_unavailable, :bool, 3
348
- optional :route_polyline, :message, 4, "google.cloud.optimization.v1.ShipmentRoute.EncodedPolyline"
349
- end
350
- add_message "google.cloud.optimization.v1.SkippedShipment" do
351
- optional :index, :int32, 1
352
- optional :label, :string, 2
353
- repeated :reasons, :message, 3, "google.cloud.optimization.v1.SkippedShipment.Reason"
354
- end
355
- add_message "google.cloud.optimization.v1.SkippedShipment.Reason" do
356
- optional :code, :enum, 1, "google.cloud.optimization.v1.SkippedShipment.Reason.Code"
357
- proto3_optional :example_vehicle_index, :int32, 2
358
- optional :example_exceeded_capacity_type, :string, 3
359
- end
360
- add_enum "google.cloud.optimization.v1.SkippedShipment.Reason.Code" do
361
- value :CODE_UNSPECIFIED, 0
362
- value :NO_VEHICLE, 1
363
- value :DEMAND_EXCEEDS_VEHICLE_CAPACITY, 2
364
- value :CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT, 3
365
- value :CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT, 4
366
- value :CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT, 5
367
- value :CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS, 6
368
- value :VEHICLE_NOT_ALLOWED, 7
369
- end
370
- add_message "google.cloud.optimization.v1.AggregatedMetrics" do
371
- optional :performed_shipment_count, :int32, 1
372
- optional :travel_duration, :message, 2, "google.protobuf.Duration"
373
- optional :wait_duration, :message, 3, "google.protobuf.Duration"
374
- optional :delay_duration, :message, 4, "google.protobuf.Duration"
375
- optional :break_duration, :message, 5, "google.protobuf.Duration"
376
- optional :visit_duration, :message, 6, "google.protobuf.Duration"
377
- optional :total_duration, :message, 7, "google.protobuf.Duration"
378
- optional :travel_distance_meters, :double, 8
379
- map :max_loads, :string, :message, 9, "google.cloud.optimization.v1.ShipmentRoute.VehicleLoad"
380
- map :costs, :string, :double, 10
381
- optional :total_cost, :double, 11
382
- end
383
- add_message "google.cloud.optimization.v1.InjectedSolutionConstraint" do
384
- repeated :routes, :message, 1, "google.cloud.optimization.v1.ShipmentRoute"
385
- repeated :skipped_shipments, :message, 2, "google.cloud.optimization.v1.SkippedShipment"
386
- repeated :constraint_relaxations, :message, 3, "google.cloud.optimization.v1.InjectedSolutionConstraint.ConstraintRelaxation"
387
- end
388
- add_message "google.cloud.optimization.v1.InjectedSolutionConstraint.ConstraintRelaxation" do
389
- repeated :relaxations, :message, 1, "google.cloud.optimization.v1.InjectedSolutionConstraint.ConstraintRelaxation.Relaxation"
390
- repeated :vehicle_indices, :int32, 2
391
- end
392
- add_message "google.cloud.optimization.v1.InjectedSolutionConstraint.ConstraintRelaxation.Relaxation" do
393
- optional :level, :enum, 1, "google.cloud.optimization.v1.InjectedSolutionConstraint.ConstraintRelaxation.Relaxation.Level"
394
- optional :threshold_time, :message, 2, "google.protobuf.Timestamp"
395
- optional :threshold_visit_count, :int32, 3
396
- end
397
- add_enum "google.cloud.optimization.v1.InjectedSolutionConstraint.ConstraintRelaxation.Relaxation.Level" do
398
- value :LEVEL_UNSPECIFIED, 0
399
- value :RELAX_VISIT_TIMES_AFTER_THRESHOLD, 1
400
- value :RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD, 2
401
- value :RELAX_ALL_AFTER_THRESHOLD, 3
402
- end
403
- add_message "google.cloud.optimization.v1.OptimizeToursValidationError" do
404
- optional :code, :int32, 1
405
- optional :display_name, :string, 2
406
- repeated :fields, :message, 3, "google.cloud.optimization.v1.OptimizeToursValidationError.FieldReference"
407
- optional :error_message, :string, 4
408
- optional :offending_values, :string, 5
409
- end
410
- add_message "google.cloud.optimization.v1.OptimizeToursValidationError.FieldReference" do
411
- optional :name, :string, 1
412
- optional :sub_field, :message, 3, "google.cloud.optimization.v1.OptimizeToursValidationError.FieldReference"
413
- oneof :index_or_key do
414
- optional :index, :int32, 2
415
- optional :key, :string, 4
416
- end
16
+
17
+ descriptor_data = "\n0google/cloud/optimization/v1/fleet_routing.proto\x12\x1cgoogle.cloud.optimization.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a.google/cloud/optimization/v1/async_model.proto\x1a#google/longrunning/operations.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x18google/type/latlng.proto\"\xa4\t\n\x14OptimizeToursRequest\x12\x13\n\x06parent\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12*\n\x07timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12:\n\x05model\x18\x03 \x01(\x0b\x32+.google.cloud.optimization.v1.ShipmentModel\x12T\n\x0csolving_mode\x18\x04 \x01(\x0e\x32>.google.cloud.optimization.v1.OptimizeToursRequest.SolvingMode\x12\"\n\x15max_validation_errors\x18\x05 \x01(\x05H\x00\x88\x01\x01\x12R\n\x0bsearch_mode\x18\x06 \x01(\x0e\x32=.google.cloud.optimization.v1.OptimizeToursRequest.SearchMode\x12S\n\x1einjected_first_solution_routes\x18\x07 \x03(\x0b\x32+.google.cloud.optimization.v1.ShipmentRoute\x12^\n\x1cinjected_solution_constraint\x18\x08 \x01(\x0b\x32\x38.google.cloud.optimization.v1.InjectedSolutionConstraint\x12K\n\x16refresh_details_routes\x18\t \x03(\x0b\x32+.google.cloud.optimization.v1.ShipmentRoute\x12\x31\n)interpret_injected_solutions_using_labels\x18\n \x01(\x08\x12\x1d\n\x15\x63onsider_road_traffic\x18\x0b \x01(\x08\x12\x1a\n\x12populate_polylines\x18\x0c \x01(\x08\x12%\n\x1dpopulate_transition_polylines\x18\r \x01(\x08\x12\x36\n.allow_large_deadline_despite_interruption_risk\x18\x0e \x01(\x08\x12\x1e\n\x16use_geodesic_distances\x18\x0f \x01(\x08\x12\'\n\x1ageodesic_meters_per_second\x18\x10 \x01(\x01H\x01\x88\x01\x01\x12\r\n\x05label\x18\x11 \x01(\t\x12*\n\x1epopulate_travel_step_polylines\x18\x14 \x01(\x08\x42\x02\x18\x01\"Y\n\x0bSolvingMode\x12\x11\n\rDEFAULT_SOLVE\x10\x00\x12\x11\n\rVALIDATE_ONLY\x10\x01\x12$\n DETECT_SOME_INFEASIBLE_SHIPMENTS\x10\x02\"Z\n\nSearchMode\x12\x1b\n\x17SEARCH_MODE_UNSPECIFIED\x10\x00\x12\x0f\n\x0bRETURN_FAST\x10\x01\x12\x1e\n\x1a\x43ONSUME_ALL_AVAILABLE_TIME\x10\x02\x42\x18\n\x16_max_validation_errorsB\x1d\n\x1b_geodesic_meters_per_second\"\xae\x06\n\x15OptimizeToursResponse\x12;\n\x06routes\x18\x01 \x03(\x0b\x32+.google.cloud.optimization.v1.ShipmentRoute\x12\x15\n\rrequest_label\x18\x03 \x01(\t\x12H\n\x11skipped_shipments\x18\x04 \x03(\x0b\x32-.google.cloud.optimization.v1.SkippedShipment\x12U\n\x11validation_errors\x18\x05 \x03(\x0b\x32:.google.cloud.optimization.v1.OptimizeToursValidationError\x12L\n\x07metrics\x18\x06 \x01(\x0b\x32;.google.cloud.optimization.v1.OptimizeToursResponse.Metrics\x12\x16\n\ntotal_cost\x18\x02 \x01(\x01\x42\x02\x18\x01\x1a\xb9\x03\n\x07Metrics\x12Q\n\x18\x61ggregated_route_metrics\x18\x01 \x01(\x0b\x32/.google.cloud.optimization.v1.AggregatedMetrics\x12(\n skipped_mandatory_shipment_count\x18\x02 \x01(\x05\x12\x1a\n\x12used_vehicle_count\x18\x03 \x01(\x05\x12?\n\x1b\x65\x61rliest_vehicle_start_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12;\n\x17latest_vehicle_end_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12U\n\x05\x63osts\x18\n \x03(\x0b\x32\x46.google.cloud.optimization.v1.OptimizeToursResponse.Metrics.CostsEntry\x12\x12\n\ntotal_cost\x18\x06 \x01(\x01\x1a,\n\nCostsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x01:\x02\x38\x01\"\xeb\x02\n\x19\x42\x61tchOptimizeToursRequest\x12\x13\n\x06parent\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x64\n\rmodel_configs\x18\x02 \x03(\x0b\x32H.google.cloud.optimization.v1.BatchOptimizeToursRequest.AsyncModelConfigB\x03\xe0\x41\x02\x1a\xd2\x01\n\x10\x41syncModelConfig\x12\x14\n\x0c\x64isplay_name\x18\x01 \x01(\t\x12\x44\n\x0cinput_config\x18\x02 \x01(\x0b\x32).google.cloud.optimization.v1.InputConfigB\x03\xe0\x41\x02\x12\x46\n\routput_config\x18\x03 \x01(\x0b\x32*.google.cloud.optimization.v1.OutputConfigB\x03\xe0\x41\x02\x12\x1a\n\x12\x65nable_checkpoints\x18\x04 \x01(\x08\"\x1c\n\x1a\x42\x61tchOptimizeToursResponse\"\x9a\x0f\n\rShipmentModel\x12\x39\n\tshipments\x18\x01 \x03(\x0b\x32&.google.cloud.optimization.v1.Shipment\x12\x37\n\x08vehicles\x18\x02 \x03(\x0b\x32%.google.cloud.optimization.v1.Vehicle\x12 \n\x13max_active_vehicles\x18\x04 \x01(\x05H\x00\x88\x01\x01\x12\x35\n\x11global_start_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x33\n\x0fglobal_end_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12%\n\x1dglobal_duration_cost_per_hour\x18\x07 \x01(\x01\x12\x66\n\x1a\x64uration_distance_matrices\x18\x08 \x03(\x0b\x32\x42.google.cloud.optimization.v1.ShipmentModel.DurationDistanceMatrix\x12)\n!duration_distance_matrix_src_tags\x18\t \x03(\t\x12)\n!duration_distance_matrix_dst_tags\x18\n \x03(\t\x12Q\n\x15transition_attributes\x18\x0b \x03(\x0b\x32\x32.google.cloud.optimization.v1.TransitionAttributes\x12\x62\n\x1fshipment_type_incompatibilities\x18\x0c \x03(\x0b\x32\x39.google.cloud.optimization.v1.ShipmentTypeIncompatibility\x12Y\n\x1ashipment_type_requirements\x18\r \x03(\x0b\x32\x35.google.cloud.optimization.v1.ShipmentTypeRequirement\x12T\n\x10precedence_rules\x18\x0e \x03(\x0b\x32:.google.cloud.optimization.v1.ShipmentModel.PrecedenceRule\x12N\n\x0b\x62reak_rules\x18\x0f \x03(\x0b\x32\x35.google.cloud.optimization.v1.ShipmentModel.BreakRuleB\x02\x18\x01\x1a\xce\x01\n\x16\x44urationDistanceMatrix\x12T\n\x04rows\x18\x01 \x03(\x0b\x32\x46.google.cloud.optimization.v1.ShipmentModel.DurationDistanceMatrix.Row\x12\x19\n\x11vehicle_start_tag\x18\x02 \x01(\t\x1a\x43\n\x03Row\x12,\n\tdurations\x18\x01 \x03(\x0b\x32\x19.google.protobuf.Duration\x12\x0e\n\x06meters\x18\x02 \x03(\x01\x1a\xd1\x01\n\x0ePrecedenceRule\x12\x18\n\x0b\x66irst_index\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x19\n\x11\x66irst_is_delivery\x18\x03 \x01(\x08\x12\x19\n\x0csecond_index\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x1a\n\x12second_is_delivery\x18\x04 \x01(\x08\x12\x32\n\x0foffset_duration\x18\x05 \x01(\x0b\x32\x19.google.protobuf.DurationB\x0e\n\x0c_first_indexB\x0f\n\r_second_index\x1a\xac\x04\n\tBreakRule\x12Z\n\x0e\x62reak_requests\x18\x01 \x03(\x0b\x32\x42.google.cloud.optimization.v1.ShipmentModel.BreakRule.BreakRequest\x12h\n\x15\x66requency_constraints\x18\x02 \x03(\x0b\x32I.google.cloud.optimization.v1.ShipmentModel.BreakRule.FrequencyConstraint\x1a\xbe\x01\n\x0c\x42reakRequest\x12<\n\x13\x65\x61rliest_start_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02\x12:\n\x11latest_start_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02\x12\x34\n\x0cmin_duration\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x02\x1a\x93\x01\n\x13\x46requencyConstraint\x12:\n\x12min_break_duration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x02\x12@\n\x18max_inter_break_duration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x02:\x02\x18\x01\x42\x16\n\x14_max_active_vehicles\"\x80\x0c\n\x08Shipment\x12\x44\n\x07pickups\x18\x01 \x03(\x0b\x32\x33.google.cloud.optimization.v1.Shipment.VisitRequest\x12G\n\ndeliveries\x18\x02 \x03(\x0b\x32\x33.google.cloud.optimization.v1.Shipment.VisitRequest\x12M\n\x0cload_demands\x18\x0e \x03(\x0b\x32\x37.google.cloud.optimization.v1.Shipment.LoadDemandsEntry\x12\x19\n\x0cpenalty_cost\x18\x04 \x01(\x01H\x00\x88\x01\x01\x12\x1f\n\x17\x61llowed_vehicle_indices\x18\x05 \x03(\x05\x12\x19\n\x11\x63osts_per_vehicle\x18\x06 \x03(\x01\x12!\n\x19\x63osts_per_vehicle_indices\x18\x07 \x03(\x05\x12\x35\n(pickup_to_delivery_relative_detour_limit\x18\x08 \x01(\x01H\x01\x88\x01\x01\x12K\n(pickup_to_delivery_absolute_detour_limit\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12@\n\x1dpickup_to_delivery_time_limit\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x15\n\rshipment_type\x18\x0b \x01(\t\x12\r\n\x05label\x18\x0c \x01(\t\x12\x0e\n\x06ignore\x18\r \x01(\x08\x12\x43\n\x07\x64\x65mands\x18\x03 \x03(\x0b\x32..google.cloud.optimization.v1.CapacityQuantityB\x02\x18\x01\x1a\xa3\x05\n\x0cVisitRequest\x12-\n\x10\x61rrival_location\x18\x01 \x01(\x0b\x32\x13.google.type.LatLng\x12@\n\x10\x61rrival_waypoint\x18\x02 \x01(\x0b\x32&.google.cloud.optimization.v1.Waypoint\x12/\n\x12\x64\x65parture_location\x18\x03 \x01(\x0b\x32\x13.google.type.LatLng\x12\x42\n\x12\x64\x65parture_waypoint\x18\x04 \x01(\x0b\x32&.google.cloud.optimization.v1.Waypoint\x12\x0c\n\x04tags\x18\x05 \x03(\t\x12>\n\x0ctime_windows\x18\x06 \x03(\x0b\x32(.google.cloud.optimization.v1.TimeWindow\x12+\n\x08\x64uration\x18\x07 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x0c\n\x04\x63ost\x18\x08 \x01(\x01\x12Z\n\x0cload_demands\x18\x0c \x03(\x0b\x32\x44.google.cloud.optimization.v1.Shipment.VisitRequest.LoadDemandsEntry\x12\x13\n\x0bvisit_types\x18\n \x03(\t\x12\r\n\x05label\x18\x0b \x01(\t\x12\x43\n\x07\x64\x65mands\x18\t \x03(\x0b\x32..google.cloud.optimization.v1.CapacityQuantityB\x02\x18\x01\x1a_\n\x10LoadDemandsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12:\n\x05value\x18\x02 \x01(\x0b\x32+.google.cloud.optimization.v1.Shipment.Load:\x02\x38\x01\x1a\x16\n\x04Load\x12\x0e\n\x06\x61mount\x18\x02 \x01(\x03\x1a_\n\x10LoadDemandsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12:\n\x05value\x18\x02 \x01(\x0b\x32+.google.cloud.optimization.v1.Shipment.Load:\x02\x38\x01\x42\x0f\n\r_penalty_costB+\n)_pickup_to_delivery_relative_detour_limit\"\xa2\x02\n\x1bShipmentTypeIncompatibility\x12\r\n\x05types\x18\x01 \x03(\t\x12k\n\x14incompatibility_mode\x18\x02 \x01(\x0e\x32M.google.cloud.optimization.v1.ShipmentTypeIncompatibility.IncompatibilityMode\"\x86\x01\n\x13IncompatibilityMode\x12$\n INCOMPATIBILITY_MODE_UNSPECIFIED\x10\x00\x12!\n\x1dNOT_PERFORMED_BY_SAME_VEHICLE\x10\x01\x12&\n\"NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY\x10\x02\"\xe8\x02\n\x17ShipmentTypeRequirement\x12+\n#required_shipment_type_alternatives\x18\x01 \x03(\t\x12 \n\x18\x64\x65pendent_shipment_types\x18\x02 \x03(\t\x12_\n\x10requirement_mode\x18\x03 \x01(\x0e\x32\x45.google.cloud.optimization.v1.ShipmentTypeRequirement.RequirementMode\"\x9c\x01\n\x0fRequirementMode\x12 \n\x1cREQUIREMENT_MODE_UNSPECIFIED\x10\x00\x12\x1d\n\x19PERFORMED_BY_SAME_VEHICLE\x10\x01\x12\"\n\x1eIN_SAME_VEHICLE_AT_PICKUP_TIME\x10\x02\x12$\n IN_SAME_VEHICLE_AT_DELIVERY_TIME\x10\x03\"\xc1\x14\n\x07Vehicle\x12\x45\n\x0btravel_mode\x18\x01 \x01(\x0e\x32\x30.google.cloud.optimization.v1.Vehicle.TravelMode\x12+\n\x0estart_location\x18\x03 \x01(\x0b\x32\x13.google.type.LatLng\x12>\n\x0estart_waypoint\x18\x04 \x01(\x0b\x32&.google.cloud.optimization.v1.Waypoint\x12)\n\x0c\x65nd_location\x18\x05 \x01(\x0b\x32\x13.google.type.LatLng\x12<\n\x0c\x65nd_waypoint\x18\x06 \x01(\x0b\x32&.google.cloud.optimization.v1.Waypoint\x12\x12\n\nstart_tags\x18\x07 \x03(\t\x12\x10\n\x08\x65nd_tags\x18\x08 \x03(\t\x12\x44\n\x12start_time_windows\x18\t \x03(\x0b\x32(.google.cloud.optimization.v1.TimeWindow\x12\x42\n\x10\x65nd_time_windows\x18\n \x03(\x0b\x32(.google.cloud.optimization.v1.TimeWindow\x12%\n\x18travel_duration_multiple\x18\x0b \x01(\x01H\x00\x88\x01\x01\x12O\n\x10unloading_policy\x18\x0c \x01(\x0e\x32\x35.google.cloud.optimization.v1.Vehicle.UnloadingPolicy\x12J\n\x0bload_limits\x18\x1e \x03(\x0b\x32\x35.google.cloud.optimization.v1.Vehicle.LoadLimitsEntry\x12\x15\n\rcost_per_hour\x18\x10 \x01(\x01\x12\x1e\n\x16\x63ost_per_traveled_hour\x18\x11 \x01(\x01\x12\x1a\n\x12\x63ost_per_kilometer\x18\x12 \x01(\x01\x12\x12\n\nfixed_cost\x18\x13 \x01(\x01\x12\x1e\n\x16used_if_route_is_empty\x18\x14 \x01(\x08\x12Q\n\x14route_duration_limit\x18\x15 \x01(\x0b\x32\x33.google.cloud.optimization.v1.Vehicle.DurationLimit\x12R\n\x15travel_duration_limit\x18\x16 \x01(\x0b\x32\x33.google.cloud.optimization.v1.Vehicle.DurationLimit\x12I\n\x14route_distance_limit\x18\x17 \x01(\x0b\x32+.google.cloud.optimization.v1.DistanceLimit\x12v\n#extra_visit_duration_for_visit_type\x18\x18 \x03(\x0b\x32I.google.cloud.optimization.v1.Vehicle.ExtraVisitDurationForVisitTypeEntry\x12;\n\nbreak_rule\x18\x19 \x01(\x0b\x32\'.google.cloud.optimization.v1.BreakRule\x12\r\n\x05label\x18\x1b \x01(\t\x12\x0e\n\x06ignore\x18\x1c \x01(\x08\x12\x1e\n\x12\x62reak_rule_indices\x18\x1d \x03(\x05\x42\x02\x18\x01\x12\x46\n\ncapacities\x18\r \x03(\x0b\x32..google.cloud.optimization.v1.CapacityQuantityB\x02\x18\x01\x12X\n\x14start_load_intervals\x18\x0e \x03(\x0b\x32\x36.google.cloud.optimization.v1.CapacityQuantityIntervalB\x02\x18\x01\x12V\n\x12\x65nd_load_intervals\x18\x0f \x03(\x0b\x32\x36.google.cloud.optimization.v1.CapacityQuantityIntervalB\x02\x18\x01\x1a\xcb\x02\n\tLoadLimit\x12\x15\n\x08max_load\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12\x15\n\rsoft_max_load\x18\x02 \x01(\x03\x12$\n\x1c\x63ost_per_unit_above_soft_max\x18\x03 \x01(\x01\x12U\n\x13start_load_interval\x18\x04 \x01(\x0b\x32\x38.google.cloud.optimization.v1.Vehicle.LoadLimit.Interval\x12S\n\x11\x65nd_load_interval\x18\x05 \x01(\x0b\x32\x38.google.cloud.optimization.v1.Vehicle.LoadLimit.Interval\x1a\x31\n\x08Interval\x12\x0b\n\x03min\x18\x01 \x01(\x03\x12\x10\n\x03max\x18\x02 \x01(\x03H\x00\x88\x01\x01\x42\x06\n\x04_maxB\x0b\n\t_max_load\x1a\xf0\x02\n\rDurationLimit\x12/\n\x0cmax_duration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x34\n\x11soft_max_duration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12)\n\x1c\x63ost_per_hour_after_soft_max\x18\x03 \x01(\x01H\x00\x88\x01\x01\x12>\n\x1bquadratic_soft_max_duration\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12:\n-cost_per_square_hour_after_quadratic_soft_max\x18\x05 \x01(\x01H\x01\x88\x01\x01\x42\x1f\n\x1d_cost_per_hour_after_soft_maxB0\n._cost_per_square_hour_after_quadratic_soft_max\x1a\x62\n\x0fLoadLimitsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12>\n\x05value\x18\x02 \x01(\x0b\x32/.google.cloud.optimization.v1.Vehicle.LoadLimit:\x02\x38\x01\x1a`\n#ExtraVisitDurationForVisitTypeEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration:\x02\x38\x01\"6\n\nTravelMode\x12\x1b\n\x17TRAVEL_MODE_UNSPECIFIED\x10\x00\x12\x0b\n\x07\x44RIVING\x10\x01\"b\n\x0fUnloadingPolicy\x12 \n\x1cUNLOADING_POLICY_UNSPECIFIED\x10\x00\x12\x15\n\x11LAST_IN_FIRST_OUT\x10\x01\x12\x16\n\x12\x46IRST_IN_FIRST_OUT\x10\x02\x42\x1b\n\x19_travel_duration_multiple\"\x84\x03\n\nTimeWindow\x12.\n\nstart_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x33\n\x0fsoft_start_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\rsoft_end_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n$cost_per_hour_before_soft_start_time\x18\x05 \x01(\x01H\x00\x88\x01\x01\x12.\n!cost_per_hour_after_soft_end_time\x18\x06 \x01(\x01H\x01\x88\x01\x01\x42\'\n%_cost_per_hour_before_soft_start_timeB$\n\"_cost_per_hour_after_soft_end_time\"3\n\x10\x43\x61pacityQuantity\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x18\x01\"x\n\x18\x43\x61pacityQuantityInterval\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x16\n\tmin_value\x18\x02 \x01(\x03H\x00\x88\x01\x01\x12\x16\n\tmax_value\x18\x03 \x01(\x03H\x01\x88\x01\x01:\x02\x18\x01\x42\x0c\n\n_min_valueB\x0c\n\n_max_value\"\xbf\x01\n\rDistanceLimit\x12\x17\n\nmax_meters\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12\x1c\n\x0fsoft_max_meters\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12.\n!cost_per_kilometer_above_soft_max\x18\x03 \x01(\x01H\x02\x88\x01\x01\x42\r\n\x0b_max_metersB\x12\n\x10_soft_max_metersB$\n\"_cost_per_kilometer_above_soft_max\"\x85\x02\n\x14TransitionAttributes\x12\x0f\n\x07src_tag\x18\x01 \x01(\t\x12\x18\n\x10\x65xcluded_src_tag\x18\x02 \x01(\t\x12\x0f\n\x07\x64st_tag\x18\x03 \x01(\t\x12\x18\n\x10\x65xcluded_dst_tag\x18\x04 \x01(\t\x12\x0c\n\x04\x63ost\x18\x05 \x01(\x01\x12\x1a\n\x12\x63ost_per_kilometer\x18\x06 \x01(\x01\x12\x43\n\x0e\x64istance_limit\x18\x07 \x01(\x0b\x32+.google.cloud.optimization.v1.DistanceLimit\x12(\n\x05\x64\x65lay\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\"\x81\x01\n\x08Waypoint\x12:\n\x08location\x18\x01 \x01(\x0b\x32&.google.cloud.optimization.v1.LocationH\x00\x12\x12\n\x08place_id\x18\x02 \x01(\tH\x00\x12\x14\n\x0cside_of_road\x18\x03 \x01(\x08\x42\x0f\n\rlocation_type\"R\n\x08Location\x12$\n\x07lat_lng\x18\x01 \x01(\x0b\x32\x13.google.type.LatLng\x12\x14\n\x07heading\x18\x02 \x01(\x05H\x00\x88\x01\x01\x42\n\n\x08_heading\"\x8c\x04\n\tBreakRule\x12L\n\x0e\x62reak_requests\x18\x01 \x03(\x0b\x32\x34.google.cloud.optimization.v1.BreakRule.BreakRequest\x12Z\n\x15\x66requency_constraints\x18\x02 \x03(\x0b\x32;.google.cloud.optimization.v1.BreakRule.FrequencyConstraint\x1a\xbe\x01\n\x0c\x42reakRequest\x12<\n\x13\x65\x61rliest_start_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02\x12:\n\x11latest_start_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02\x12\x34\n\x0cmin_duration\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x02\x1a\x93\x01\n\x13\x46requencyConstraint\x12:\n\x12min_break_duration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x02\x12@\n\x18max_inter_break_duration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x02\"\xc3\x16\n\rShipmentRoute\x12\x15\n\rvehicle_index\x18\x01 \x01(\x05\x12\x15\n\rvehicle_label\x18\x02 \x01(\t\x12\x36\n\x12vehicle_start_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x34\n\x10vehicle_end_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x41\n\x06visits\x18\x07 \x03(\x0b\x32\x31.google.cloud.optimization.v1.ShipmentRoute.Visit\x12K\n\x0btransitions\x18\x08 \x03(\x0b\x32\x36.google.cloud.optimization.v1.ShipmentRoute.Transition\x12#\n\x1bhas_traffic_infeasibilities\x18\t \x01(\x08\x12S\n\x0eroute_polyline\x18\n \x01(\x0b\x32;.google.cloud.optimization.v1.ShipmentRoute.EncodedPolyline\x12\x41\n\x06\x62reaks\x18\x0b \x03(\x0b\x32\x31.google.cloud.optimization.v1.ShipmentRoute.Break\x12@\n\x07metrics\x18\x0c \x01(\x0b\x32/.google.cloud.optimization.v1.AggregatedMetrics\x12P\n\x0broute_costs\x18\x11 \x03(\x0b\x32;.google.cloud.optimization.v1.ShipmentRoute.RouteCostsEntry\x12\x18\n\x10route_total_cost\x18\x12 \x01(\x01\x12\x45\n\tend_loads\x18\r \x03(\x0b\x32..google.cloud.optimization.v1.CapacityQuantityB\x02\x18\x01\x12P\n\x0ctravel_steps\x18\x0e \x03(\x0b\x32\x36.google.cloud.optimization.v1.ShipmentRoute.TravelStepB\x02\x18\x01\x12\x35\n\x0evehicle_detour\x18\x0f \x01(\x0b\x32\x19.google.protobuf.DurationB\x02\x18\x01\x12W\n\x18\x64\x65lay_before_vehicle_end\x18\x10 \x01(\x0b\x32\x31.google.cloud.optimization.v1.ShipmentRoute.DelayB\x02\x18\x01\x1ah\n\x05\x44\x65lay\x12.\n\nstart_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12+\n\x08\x64uration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration:\x02\x18\x01\x1a\xf5\x04\n\x05Visit\x12\x16\n\x0eshipment_index\x18\x01 \x01(\x05\x12\x11\n\tis_pickup\x18\x02 \x01(\x08\x12\x1b\n\x13visit_request_index\x18\x03 \x01(\x05\x12.\n\nstart_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12X\n\x0cload_demands\x18\x0b \x03(\x0b\x32\x42.google.cloud.optimization.v1.ShipmentRoute.Visit.LoadDemandsEntry\x12)\n\x06\x64\x65tour\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x16\n\x0eshipment_label\x18\x07 \x01(\t\x12\x13\n\x0bvisit_label\x18\x08 \x01(\t\x12I\n\rarrival_loads\x18\t \x03(\x0b\x32..google.cloud.optimization.v1.CapacityQuantityB\x02\x18\x01\x12Q\n\x12\x64\x65lay_before_start\x18\n \x01(\x0b\x32\x31.google.cloud.optimization.v1.ShipmentRoute.DelayB\x02\x18\x01\x12\x43\n\x07\x64\x65mands\x18\x05 \x03(\x0b\x32..google.cloud.optimization.v1.CapacityQuantityB\x02\x18\x01\x1a_\n\x10LoadDemandsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12:\n\x05value\x18\x02 \x01(\x0b\x32+.google.cloud.optimization.v1.Shipment.Load:\x02\x38\x01\x1a\xe4\x05\n\nTransition\x12\x32\n\x0ftravel_duration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x1e\n\x16travel_distance_meters\x18\x02 \x01(\x01\x12 \n\x18traffic_info_unavailable\x18\x03 \x01(\x08\x12\x31\n\x0e\x64\x65lay_duration\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x31\n\x0e\x62reak_duration\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x30\n\rwait_duration\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x31\n\x0etotal_duration\x18\x07 \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\nstart_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12S\n\x0eroute_polyline\x18\t \x01(\x0b\x32;.google.cloud.optimization.v1.ShipmentRoute.EncodedPolyline\x12_\n\rvehicle_loads\x18\x0b \x03(\x0b\x32H.google.cloud.optimization.v1.ShipmentRoute.Transition.VehicleLoadsEntry\x12\x41\n\x05loads\x18\n \x03(\x0b\x32..google.cloud.optimization.v1.CapacityQuantityB\x02\x18\x01\x1al\n\x11VehicleLoadsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x46\n\x05value\x18\x02 \x01(\x0b\x32\x37.google.cloud.optimization.v1.ShipmentRoute.VehicleLoad:\x02\x38\x01\x1a\x1d\n\x0bVehicleLoad\x12\x0e\n\x06\x61mount\x18\x01 \x01(\x03\x1a!\n\x0f\x45ncodedPolyline\x12\x0e\n\x06points\x18\x01 \x01(\t\x1a\x64\n\x05\x42reak\x12.\n\nstart_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12+\n\x08\x64uration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\xcd\x01\n\nTravelStep\x12+\n\x08\x64uration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x17\n\x0f\x64istance_meters\x18\x02 \x01(\x01\x12 \n\x18traffic_info_unavailable\x18\x03 \x01(\x08\x12S\n\x0eroute_polyline\x18\x04 \x01(\x0b\x32;.google.cloud.optimization.v1.ShipmentRoute.EncodedPolyline:\x02\x18\x01\x1a\x31\n\x0fRouteCostsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x01:\x02\x38\x01\"\xfe\x04\n\x0fSkippedShipment\x12\r\n\x05index\x18\x01 \x01(\x05\x12\r\n\x05label\x18\x02 \x01(\t\x12\x45\n\x07reasons\x18\x03 \x03(\x0b\x32\x34.google.cloud.optimization.v1.SkippedShipment.Reason\x1a\x85\x04\n\x06Reason\x12G\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x39.google.cloud.optimization.v1.SkippedShipment.Reason.Code\x12\"\n\x15\x65xample_vehicle_index\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12&\n\x1e\x65xample_exceeded_capacity_type\x18\x03 \x01(\t\"\xcb\x02\n\x04\x43ode\x12\x14\n\x10\x43ODE_UNSPECIFIED\x10\x00\x12\x0e\n\nNO_VEHICLE\x10\x01\x12#\n\x1f\x44\x45MAND_EXCEEDS_VEHICLE_CAPACITY\x10\x02\x12\x35\n1CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT\x10\x03\x12\x35\n1CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT\x10\x04\x12<\n8CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT\x10\x05\x12\x33\n/CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS\x10\x06\x12\x17\n\x13VEHICLE_NOT_ALLOWED\x10\x07\x42\x18\n\x16_example_vehicle_index\"\xd8\x05\n\x11\x41ggregatedMetrics\x12 \n\x18performed_shipment_count\x18\x01 \x01(\x05\x12\x32\n\x0ftravel_duration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x30\n\rwait_duration\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x31\n\x0e\x64\x65lay_duration\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x31\n\x0e\x62reak_duration\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x31\n\x0evisit_duration\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x31\n\x0etotal_duration\x18\x07 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x1e\n\x16travel_distance_meters\x18\x08 \x01(\x01\x12P\n\tmax_loads\x18\t \x03(\x0b\x32=.google.cloud.optimization.v1.AggregatedMetrics.MaxLoadsEntry\x12M\n\x05\x63osts\x18\n \x03(\x0b\x32:.google.cloud.optimization.v1.AggregatedMetrics.CostsEntryB\x02\x18\x01\x12\x16\n\ntotal_cost\x18\x0b \x01(\x01\x42\x02\x18\x01\x1ah\n\rMaxLoadsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x46\n\x05value\x18\x02 \x01(\x0b\x32\x37.google.cloud.optimization.v1.ShipmentRoute.VehicleLoad:\x02\x38\x01\x1a,\n\nCostsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x01:\x02\x38\x01\"\x9f\x06\n\x1aInjectedSolutionConstraint\x12;\n\x06routes\x18\x01 \x03(\x0b\x32+.google.cloud.optimization.v1.ShipmentRoute\x12H\n\x11skipped_shipments\x18\x02 \x03(\x0b\x32-.google.cloud.optimization.v1.SkippedShipment\x12m\n\x16\x63onstraint_relaxations\x18\x03 \x03(\x0b\x32M.google.cloud.optimization.v1.InjectedSolutionConstraint.ConstraintRelaxation\x1a\x8a\x04\n\x14\x43onstraintRelaxation\x12m\n\x0brelaxations\x18\x01 \x03(\x0b\x32X.google.cloud.optimization.v1.InjectedSolutionConstraint.ConstraintRelaxation.Relaxation\x12\x17\n\x0fvehicle_indices\x18\x02 \x03(\x05\x1a\xe9\x02\n\nRelaxation\x12m\n\x05level\x18\x01 \x01(\x0e\x32^.google.cloud.optimization.v1.InjectedSolutionConstraint.ConstraintRelaxation.Relaxation.Level\x12\x32\n\x0ethreshold_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1d\n\x15threshold_visit_count\x18\x03 \x01(\x05\"\x98\x01\n\x05Level\x12\x15\n\x11LEVEL_UNSPECIFIED\x10\x00\x12%\n!RELAX_VISIT_TIMES_AFTER_THRESHOLD\x10\x01\x12\x32\n.RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD\x10\x02\x12\x1d\n\x19RELAX_ALL_AFTER_THRESHOLD\x10\x03\"\xfd\x02\n\x1cOptimizeToursValidationError\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x05\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12Y\n\x06\x66ields\x18\x03 \x03(\x0b\x32I.google.cloud.optimization.v1.OptimizeToursValidationError.FieldReference\x12\x15\n\rerror_message\x18\x04 \x01(\t\x12\x18\n\x10offending_values\x18\x05 \x01(\t\x1a\xac\x01\n\x0e\x46ieldReference\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x05index\x18\x02 \x01(\x05H\x00\x12\r\n\x03key\x18\x04 \x01(\tH\x00\x12\\\n\tsub_field\x18\x03 \x01(\x0b\x32I.google.cloud.optimization.v1.OptimizeToursValidationError.FieldReferenceB\x0e\n\x0cindex_or_key2\xe0\x04\n\x0c\x46leetRouting\x12\xe2\x01\n\rOptimizeTours\x12\x32.google.cloud.optimization.v1.OptimizeToursRequest\x1a\x33.google.cloud.optimization.v1.OptimizeToursResponse\"h\x82\xd3\xe4\x93\x02\x62\"1/v1/{parent=projects/*/locations/*}:optimizeTours:\x01*Z*\"%/v1/{parent=projects/*}:optimizeTours:\x01*\x12\x94\x02\n\x12\x42\x61tchOptimizeTours\x12\x37.google.cloud.optimization.v1.BatchOptimizeToursRequest\x1a\x1d.google.longrunning.Operation\"\xa5\x01\x82\xd3\xe4\x93\x02l\"6/v1/{parent=projects/*/locations/*}:batchOptimizeTours:\x01*Z/\"*/v1/{parent=projects/*}:batchOptimizeTours:\x01*\xca\x41\x30\n\x1a\x42\x61tchOptimizeToursResponse\x12\x12\x41syncModelMetadata\x1aT\xca\x41 cloudoptimization.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB}\n com.google.cloud.optimization.v1B\x11\x46leetRoutingProtoP\x01ZDcloud.google.com/go/optimization/apiv1/optimizationpb;optimizationpbb\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.Duration", "google/protobuf/duration.proto"],
33
+ ["google.protobuf.Timestamp", "google/protobuf/timestamp.proto"],
34
+ ["google.cloud.optimization.v1.InputConfig", "google/cloud/optimization/v1/async_model.proto"],
35
+ ["google.type.LatLng", "google/type/latlng.proto"],
36
+ ]
37
+ imports.each do |type_name, expected_filename|
38
+ import_file = pool.lookup(type_name).file_descriptor
39
+ if import_file.name != expected_filename
40
+ warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
417
41
  end
418
42
  end
43
+ warn "Each proto file must use a consistent fully-qualified name."
44
+ warn "This will become an error in the next major version."
419
45
  end
420
46
 
421
47
  module Google
@@ -21,7 +21,7 @@ module Google
21
21
  module Cloud
22
22
  module Optimization
23
23
  module V1
24
- VERSION = "0.3.0"
24
+ VERSION = "0.4.0"
25
25
  end
26
26
  end
27
27
  end
@@ -35,7 +35,9 @@ module Google
35
35
  # Details about how and where to publish client libraries.
36
36
  # @!attribute [rw] version
37
37
  # @return [::String]
38
- # Version of the API to apply these settings to.
38
+ # Version of the API to apply these settings to. This is the full protobuf
39
+ # package for the API, ending in the version element.
40
+ # Examples: "google.cloud.speech.v1" and "google.spanner.admin.database.v1".
39
41
  # @!attribute [rw] launch_stage
40
42
  # @return [::Google::Api::LaunchStage]
41
43
  # Launch stage of this version of the API.
@@ -81,7 +83,7 @@ module Google
81
83
  # long-running operation pattern.
82
84
  # @!attribute [rw] new_issue_uri
83
85
  # @return [::String]
84
- # Link to a place that API users can report issues. Example:
86
+ # Link to a *public* URI where users can report issues. Example:
85
87
  # https://issuetracker.google.com/issues/new?component=190865&template=1161103
86
88
  # @!attribute [rw] documentation_uri
87
89
  # @return [::String]
@@ -111,6 +113,10 @@ module Google
111
113
  # Client library settings. If the same version string appears multiple
112
114
  # times in this list, then the last one wins. Settings from earlier
113
115
  # settings with the same version string are discarded.
116
+ # @!attribute [rw] proto_reference_documentation_uri
117
+ # @return [::String]
118
+ # Optional link to proto reference documentation. Example:
119
+ # https://cloud.google.com/pubsub/lite/docs/reference/rpc
114
120
  class Publishing
115
121
  include ::Google::Protobuf::MessageExts
116
122
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -203,9 +209,57 @@ module Google
203
209
  # @!attribute [rw] common
204
210
  # @return [::Google::Api::CommonLanguageSettings]
205
211
  # Some settings.
212
+ # @!attribute [rw] renamed_services
213
+ # @return [::Google::Protobuf::Map{::String => ::String}]
214
+ # Map from original service names to renamed versions.
215
+ # This is used when the default generated types
216
+ # would cause a naming conflict. (Neither name is
217
+ # fully-qualified.)
218
+ # Example: Subscriber to SubscriberServiceApi.
219
+ # @!attribute [rw] renamed_resources
220
+ # @return [::Google::Protobuf::Map{::String => ::String}]
221
+ # Map from full resource types to the effective short name
222
+ # for the resource. This is used when otherwise resource
223
+ # named from different services would cause naming collisions.
224
+ # Example entry:
225
+ # "datalabeling.googleapis.com/Dataset": "DataLabelingDataset"
226
+ # @!attribute [rw] ignored_resources
227
+ # @return [::Array<::String>]
228
+ # List of full resource types to ignore during generation.
229
+ # This is typically used for API-specific Location resources,
230
+ # which should be handled by the generator as if they were actually
231
+ # the common Location resources.
232
+ # Example entry: "documentai.googleapis.com/Location"
233
+ # @!attribute [rw] forced_namespace_aliases
234
+ # @return [::Array<::String>]
235
+ # Namespaces which must be aliased in snippets due to
236
+ # a known (but non-generator-predictable) naming collision
237
+ # @!attribute [rw] handwritten_signatures
238
+ # @return [::Array<::String>]
239
+ # Method signatures (in the form "service.method(signature)")
240
+ # which are provided separately, so shouldn't be generated.
241
+ # Snippets *calling* these methods are still generated, however.
206
242
  class DotnetSettings
207
243
  include ::Google::Protobuf::MessageExts
208
244
  extend ::Google::Protobuf::MessageExts::ClassMethods
245
+
246
+ # @!attribute [rw] key
247
+ # @return [::String]
248
+ # @!attribute [rw] value
249
+ # @return [::String]
250
+ class RenamedServicesEntry
251
+ include ::Google::Protobuf::MessageExts
252
+ extend ::Google::Protobuf::MessageExts::ClassMethods
253
+ end
254
+
255
+ # @!attribute [rw] key
256
+ # @return [::String]
257
+ # @!attribute [rw] value
258
+ # @return [::String]
259
+ class RenamedResourcesEntry
260
+ include ::Google::Protobuf::MessageExts
261
+ extend ::Google::Protobuf::MessageExts::ClassMethods
262
+ end
209
263
  end
210
264
 
211
265
  # Settings for Ruby client libraries.
@@ -240,8 +294,8 @@ module Google
240
294
  # Example of a YAML configuration::
241
295
  #
242
296
  # publishing:
243
- # method_behavior:
244
- # - selector: CreateAdDomain
297
+ # method_settings:
298
+ # - selector: google.cloud.speech.v2.Speech.BatchRecognize
245
299
  # long_running:
246
300
  # initial_poll_delay:
247
301
  # seconds: 60 # 1 minute
@@ -299,6 +353,15 @@ module Google
299
353
 
300
354
  # Street View Org.
301
355
  STREET_VIEW = 4
356
+
357
+ # Shopping Org.
358
+ SHOPPING = 5
359
+
360
+ # Geo Org.
361
+ GEO = 6
362
+
363
+ # Generative AI - https://developers.generativeai.google
364
+ GENERATIVE_AI = 7
302
365
  end
303
366
 
304
367
  # To where should client libraries be published?
@@ -43,8 +43,12 @@ module Google
43
43
  # if (any.is(Foo.class)) {
44
44
  # foo = any.unpack(Foo.class);
45
45
  # }
46
+ # // or ...
47
+ # if (any.isSameTypeAs(Foo.getDefaultInstance())) {
48
+ # foo = any.unpack(Foo.getDefaultInstance());
49
+ # }
46
50
  #
47
- # Example 3: Pack and unpack a message in Python.
51
+ # Example 3: Pack and unpack a message in Python.
48
52
  #
49
53
  # foo = Foo(...)
50
54
  # any = Any()
@@ -54,7 +58,7 @@ module Google
54
58
  # any.Unpack(foo)
55
59
  # ...
56
60
  #
57
- # Example 4: Pack and unpack a message in Go
61
+ # Example 4: Pack and unpack a message in Go
58
62
  #
59
63
  # foo := &pb.Foo{...}
60
64
  # any, err := anypb.New(foo)
@@ -73,9 +77,8 @@ module Google
73
77
  # in the type URL, for example "foo.bar.com/x/y.z" will yield type
74
78
  # name "y.z".
75
79
  #
76
- #
77
80
  # JSON
78
- #
81
+ # ====
79
82
  # The JSON representation of an `Any` value uses the regular
80
83
  # representation of the deserialized, embedded message, with an
81
84
  # additional field `@type` which contains the type URL. Example:
@@ -69,7 +69,6 @@ module Google
69
69
  # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
70
70
  # .setNanos((int) ((millis % 1000) * 1000000)).build();
71
71
  #
72
- #
73
72
  # Example 5: Compute Timestamp from Java `Instant.now()`.
74
73
  #
75
74
  # Instant now = Instant.now();
@@ -78,7 +77,6 @@ module Google
78
77
  # Timestamp.newBuilder().setSeconds(now.getEpochSecond())
79
78
  # .setNanos(now.getNano()).build();
80
79
  #
81
- #
82
80
  # Example 6: Compute Timestamp from current time in Python.
83
81
  #
84
82
  # timestamp = Timestamp()
@@ -108,7 +106,7 @@ module Google
108
106
  # [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
109
107
  # the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
110
108
  # the Joda Time's [`ISODateTimeFormat.dateTime()`](
111
- # http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D
109
+ # http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()
112
110
  # ) to obtain a formatter capable of generating timestamps in this format.
113
111
  # @!attribute [rw] seconds
114
112
  # @return [::Integer]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-cloud-optimization-v1
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Google LLC
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-08 00:00:00.000000000 Z
11
+ date: 2023-05-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gapic-common
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.18.0
19
+ version: 0.19.0
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: 2.a
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 0.18.0
29
+ version: 0.19.0
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: 2.a