google-cloud-cloud_controls_partner-v1 0.a → 0.1.1
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 +4 -4
- data/.yardopts +12 -0
- data/AUTHENTICATION.md +122 -0
- data/README.md +144 -8
- data/lib/google/cloud/cloud_controls_partner/v1/cloud_controls_partner_core/client.rb +1171 -0
- data/lib/google/cloud/cloud_controls_partner/v1/cloud_controls_partner_core/credentials.rb +47 -0
- data/lib/google/cloud/cloud_controls_partner/v1/cloud_controls_partner_core/paths.rb +149 -0
- data/lib/google/cloud/cloud_controls_partner/v1/cloud_controls_partner_core/rest/client.rb +1084 -0
- data/lib/google/cloud/cloud_controls_partner/v1/cloud_controls_partner_core/rest/service_stub.rb +541 -0
- data/lib/google/cloud/cloud_controls_partner/v1/cloud_controls_partner_core/rest.rb +52 -0
- data/lib/google/cloud/cloud_controls_partner/v1/cloud_controls_partner_core.rb +55 -0
- data/lib/google/cloud/cloud_controls_partner/v1/cloud_controls_partner_monitoring/client.rb +556 -0
- data/lib/google/cloud/cloud_controls_partner/v1/cloud_controls_partner_monitoring/credentials.rb +47 -0
- data/lib/google/cloud/cloud_controls_partner/v1/cloud_controls_partner_monitoring/paths.rb +77 -0
- data/lib/google/cloud/cloud_controls_partner/v1/cloud_controls_partner_monitoring/rest/client.rb +515 -0
- data/lib/google/cloud/cloud_controls_partner/v1/cloud_controls_partner_monitoring/rest/service_stub.rb +187 -0
- data/lib/google/cloud/cloud_controls_partner/v1/cloud_controls_partner_monitoring/rest.rb +52 -0
- data/lib/google/cloud/cloud_controls_partner/v1/cloud_controls_partner_monitoring.rb +55 -0
- data/lib/google/cloud/cloud_controls_partner/v1/rest.rb +38 -0
- data/lib/google/cloud/cloud_controls_partner/v1/version.rb +7 -2
- data/lib/google/cloud/cloud_controls_partner/v1.rb +46 -0
- data/lib/google/cloud/cloudcontrolspartner/v1/access_approval_requests_pb.rb +51 -0
- data/lib/google/cloud/cloudcontrolspartner/v1/completion_state_pb.rb +42 -0
- data/lib/google/cloud/cloudcontrolspartner/v1/core_pb.rb +55 -0
- data/lib/google/cloud/cloudcontrolspartner/v1/core_services_pb.rb +60 -0
- data/lib/google/cloud/cloudcontrolspartner/v1/customer_workloads_pb.rb +55 -0
- data/lib/google/cloud/cloudcontrolspartner/v1/customers_pb.rb +54 -0
- data/lib/google/cloud/cloudcontrolspartner/v1/ekm_connections_pb.rb +49 -0
- data/lib/google/cloud/cloudcontrolspartner/v1/monitoring_pb.rb +45 -0
- data/lib/google/cloud/cloudcontrolspartner/v1/monitoring_services_pb.rb +53 -0
- data/lib/google/cloud/cloudcontrolspartner/v1/partner_permissions_pb.rb +47 -0
- data/lib/google/cloud/cloudcontrolspartner/v1/partners_pb.rb +51 -0
- data/lib/google/cloud/cloudcontrolspartner/v1/violations_pb.rb +58 -0
- data/lib/google-cloud-cloud_controls_partner-v1.rb +21 -0
- data/proto_docs/README.md +4 -0
- data/proto_docs/google/api/client.rb +399 -0
- data/proto_docs/google/api/field_behavior.rb +85 -0
- data/proto_docs/google/api/launch_stage.rb +71 -0
- data/proto_docs/google/api/resource.rb +222 -0
- data/proto_docs/google/cloud/cloudcontrolspartner/v1/access_approval_requests.rb +143 -0
- data/proto_docs/google/cloud/cloudcontrolspartner/v1/completion_state.rb +44 -0
- data/proto_docs/google/cloud/cloudcontrolspartner/v1/core.rb +57 -0
- data/proto_docs/google/cloud/cloudcontrolspartner/v1/customer_workloads.rb +177 -0
- data/proto_docs/google/cloud/cloudcontrolspartner/v1/customers.rb +134 -0
- data/proto_docs/google/cloud/cloudcontrolspartner/v1/ekm_connections.rb +96 -0
- data/proto_docs/google/cloud/cloudcontrolspartner/v1/partner_permissions.rb +66 -0
- data/proto_docs/google/cloud/cloudcontrolspartner/v1/partners.rb +117 -0
- data/proto_docs/google/cloud/cloudcontrolspartner/v1/violations.rb +229 -0
- data/proto_docs/google/protobuf/duration.rb +98 -0
- data/proto_docs/google/protobuf/timestamp.rb +127 -0
- data/proto_docs/google/type/interval.rb +45 -0
- metadata +93 -10
@@ -0,0 +1,187 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright 2024 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 "google/cloud/cloudcontrolspartner/v1/monitoring_pb"
|
20
|
+
|
21
|
+
module Google
|
22
|
+
module Cloud
|
23
|
+
module CloudControlsPartner
|
24
|
+
module V1
|
25
|
+
module CloudControlsPartnerMonitoring
|
26
|
+
module Rest
|
27
|
+
##
|
28
|
+
# REST service stub for the CloudControlsPartnerMonitoring service.
|
29
|
+
# Service stub contains baseline method implementations
|
30
|
+
# including transcoding, making the REST call, and deserialing the response.
|
31
|
+
#
|
32
|
+
class ServiceStub
|
33
|
+
def initialize endpoint:, endpoint_template:, universe_domain:, credentials:
|
34
|
+
# These require statements are intentionally placed here to initialize
|
35
|
+
# the REST modules only when it's required.
|
36
|
+
require "gapic/rest"
|
37
|
+
|
38
|
+
@client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint,
|
39
|
+
endpoint_template: endpoint_template,
|
40
|
+
universe_domain: universe_domain,
|
41
|
+
credentials: credentials,
|
42
|
+
numeric_enums: true,
|
43
|
+
raise_faraday_errors: false
|
44
|
+
end
|
45
|
+
|
46
|
+
##
|
47
|
+
# The effective universe domain
|
48
|
+
#
|
49
|
+
# @return [String]
|
50
|
+
#
|
51
|
+
def universe_domain
|
52
|
+
@client_stub.universe_domain
|
53
|
+
end
|
54
|
+
|
55
|
+
##
|
56
|
+
# The effective endpoint
|
57
|
+
#
|
58
|
+
# @return [String]
|
59
|
+
#
|
60
|
+
def endpoint
|
61
|
+
@client_stub.endpoint
|
62
|
+
end
|
63
|
+
|
64
|
+
##
|
65
|
+
# Baseline implementation for the list_violations REST call
|
66
|
+
#
|
67
|
+
# @param request_pb [::Google::Cloud::CloudControlsPartner::V1::ListViolationsRequest]
|
68
|
+
# A request object representing the call parameters. Required.
|
69
|
+
# @param options [::Gapic::CallOptions]
|
70
|
+
# Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
|
71
|
+
#
|
72
|
+
# @yield [result, operation] Access the result along with the TransportOperation object
|
73
|
+
# @yieldparam result [::Google::Cloud::CloudControlsPartner::V1::ListViolationsResponse]
|
74
|
+
# @yieldparam operation [::Gapic::Rest::TransportOperation]
|
75
|
+
#
|
76
|
+
# @return [::Google::Cloud::CloudControlsPartner::V1::ListViolationsResponse]
|
77
|
+
# A result object deserialized from the server's reply
|
78
|
+
def list_violations request_pb, options = nil
|
79
|
+
raise ::ArgumentError, "request must be provided" if request_pb.nil?
|
80
|
+
|
81
|
+
verb, uri, query_string_params, body = ServiceStub.transcode_list_violations_request request_pb
|
82
|
+
query_string_params = if query_string_params.any?
|
83
|
+
query_string_params.to_h { |p| p.split "=", 2 }
|
84
|
+
else
|
85
|
+
{}
|
86
|
+
end
|
87
|
+
|
88
|
+
response = @client_stub.make_http_request(
|
89
|
+
verb,
|
90
|
+
uri: uri,
|
91
|
+
body: body || "",
|
92
|
+
params: query_string_params,
|
93
|
+
options: options
|
94
|
+
)
|
95
|
+
operation = ::Gapic::Rest::TransportOperation.new response
|
96
|
+
result = ::Google::Cloud::CloudControlsPartner::V1::ListViolationsResponse.decode_json response.body, ignore_unknown_fields: true
|
97
|
+
|
98
|
+
yield result, operation if block_given?
|
99
|
+
result
|
100
|
+
end
|
101
|
+
|
102
|
+
##
|
103
|
+
# Baseline implementation for the get_violation REST call
|
104
|
+
#
|
105
|
+
# @param request_pb [::Google::Cloud::CloudControlsPartner::V1::GetViolationRequest]
|
106
|
+
# A request object representing the call parameters. Required.
|
107
|
+
# @param options [::Gapic::CallOptions]
|
108
|
+
# Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
|
109
|
+
#
|
110
|
+
# @yield [result, operation] Access the result along with the TransportOperation object
|
111
|
+
# @yieldparam result [::Google::Cloud::CloudControlsPartner::V1::Violation]
|
112
|
+
# @yieldparam operation [::Gapic::Rest::TransportOperation]
|
113
|
+
#
|
114
|
+
# @return [::Google::Cloud::CloudControlsPartner::V1::Violation]
|
115
|
+
# A result object deserialized from the server's reply
|
116
|
+
def get_violation request_pb, options = nil
|
117
|
+
raise ::ArgumentError, "request must be provided" if request_pb.nil?
|
118
|
+
|
119
|
+
verb, uri, query_string_params, body = ServiceStub.transcode_get_violation_request request_pb
|
120
|
+
query_string_params = if query_string_params.any?
|
121
|
+
query_string_params.to_h { |p| p.split "=", 2 }
|
122
|
+
else
|
123
|
+
{}
|
124
|
+
end
|
125
|
+
|
126
|
+
response = @client_stub.make_http_request(
|
127
|
+
verb,
|
128
|
+
uri: uri,
|
129
|
+
body: body || "",
|
130
|
+
params: query_string_params,
|
131
|
+
options: options
|
132
|
+
)
|
133
|
+
operation = ::Gapic::Rest::TransportOperation.new response
|
134
|
+
result = ::Google::Cloud::CloudControlsPartner::V1::Violation.decode_json response.body, ignore_unknown_fields: true
|
135
|
+
|
136
|
+
yield result, operation if block_given?
|
137
|
+
result
|
138
|
+
end
|
139
|
+
|
140
|
+
##
|
141
|
+
# @private
|
142
|
+
#
|
143
|
+
# GRPC transcoding helper method for the list_violations REST call
|
144
|
+
#
|
145
|
+
# @param request_pb [::Google::Cloud::CloudControlsPartner::V1::ListViolationsRequest]
|
146
|
+
# A request object representing the call parameters. Required.
|
147
|
+
# @return [Array(String, [String, nil], Hash{String => String})]
|
148
|
+
# Uri, Body, Query string parameters
|
149
|
+
def self.transcode_list_violations_request request_pb
|
150
|
+
transcoder = Gapic::Rest::GrpcTranscoder.new
|
151
|
+
.with_bindings(
|
152
|
+
uri_method: :get,
|
153
|
+
uri_template: "/v1/{parent}/violations",
|
154
|
+
matches: [
|
155
|
+
["parent", %r{^organizations/[^/]+/locations/[^/]+/customers/[^/]+/workloads/[^/]+/?$}, false]
|
156
|
+
]
|
157
|
+
)
|
158
|
+
transcoder.transcode request_pb
|
159
|
+
end
|
160
|
+
|
161
|
+
##
|
162
|
+
# @private
|
163
|
+
#
|
164
|
+
# GRPC transcoding helper method for the get_violation REST call
|
165
|
+
#
|
166
|
+
# @param request_pb [::Google::Cloud::CloudControlsPartner::V1::GetViolationRequest]
|
167
|
+
# A request object representing the call parameters. Required.
|
168
|
+
# @return [Array(String, [String, nil], Hash{String => String})]
|
169
|
+
# Uri, Body, Query string parameters
|
170
|
+
def self.transcode_get_violation_request request_pb
|
171
|
+
transcoder = Gapic::Rest::GrpcTranscoder.new
|
172
|
+
.with_bindings(
|
173
|
+
uri_method: :get,
|
174
|
+
uri_template: "/v1/{name}",
|
175
|
+
matches: [
|
176
|
+
["name", %r{^organizations/[^/]+/locations/[^/]+/customers/[^/]+/workloads/[^/]+/violations/[^/]+/?$}, false]
|
177
|
+
]
|
178
|
+
)
|
179
|
+
transcoder.transcode request_pb
|
180
|
+
end
|
181
|
+
end
|
182
|
+
end
|
183
|
+
end
|
184
|
+
end
|
185
|
+
end
|
186
|
+
end
|
187
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright 2024 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/rest"
|
20
|
+
require "gapic/config"
|
21
|
+
require "gapic/config/method"
|
22
|
+
|
23
|
+
require "google/cloud/cloud_controls_partner/v1/version"
|
24
|
+
|
25
|
+
require "google/cloud/cloud_controls_partner/v1/cloud_controls_partner_monitoring/credentials"
|
26
|
+
require "google/cloud/cloud_controls_partner/v1/cloud_controls_partner_monitoring/paths"
|
27
|
+
require "google/cloud/cloud_controls_partner/v1/cloud_controls_partner_monitoring/rest/client"
|
28
|
+
|
29
|
+
module Google
|
30
|
+
module Cloud
|
31
|
+
module CloudControlsPartner
|
32
|
+
module V1
|
33
|
+
##
|
34
|
+
# Service describing handlers for resources
|
35
|
+
#
|
36
|
+
# To load this service and instantiate a REST client:
|
37
|
+
#
|
38
|
+
# require "google/cloud/cloud_controls_partner/v1/cloud_controls_partner_monitoring/rest"
|
39
|
+
# client = ::Google::Cloud::CloudControlsPartner::V1::CloudControlsPartnerMonitoring::Rest::Client.new
|
40
|
+
#
|
41
|
+
module CloudControlsPartnerMonitoring
|
42
|
+
# Client for the REST transport
|
43
|
+
module Rest
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
helper_path = ::File.join __dir__, "rest", "helpers.rb"
|
52
|
+
require "google/cloud/cloud_controls_partner/v1/cloud_controls_partner_monitoring/rest/helpers" if ::File.file? helper_path
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright 2024 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/cloud_controls_partner/v1/version"
|
24
|
+
|
25
|
+
require "google/cloud/cloud_controls_partner/v1/cloud_controls_partner_monitoring/credentials"
|
26
|
+
require "google/cloud/cloud_controls_partner/v1/cloud_controls_partner_monitoring/paths"
|
27
|
+
require "google/cloud/cloud_controls_partner/v1/cloud_controls_partner_monitoring/client"
|
28
|
+
require "google/cloud/cloud_controls_partner/v1/cloud_controls_partner_monitoring/rest"
|
29
|
+
|
30
|
+
module Google
|
31
|
+
module Cloud
|
32
|
+
module CloudControlsPartner
|
33
|
+
module V1
|
34
|
+
##
|
35
|
+
# Service describing handlers for resources
|
36
|
+
#
|
37
|
+
# @example Load this service and instantiate a gRPC client
|
38
|
+
#
|
39
|
+
# require "google/cloud/cloud_controls_partner/v1/cloud_controls_partner_monitoring"
|
40
|
+
# client = ::Google::Cloud::CloudControlsPartner::V1::CloudControlsPartnerMonitoring::Client.new
|
41
|
+
#
|
42
|
+
# @example Load this service and instantiate a REST client
|
43
|
+
#
|
44
|
+
# require "google/cloud/cloud_controls_partner/v1/cloud_controls_partner_monitoring/rest"
|
45
|
+
# client = ::Google::Cloud::CloudControlsPartner::V1::CloudControlsPartnerMonitoring::Rest::Client.new
|
46
|
+
#
|
47
|
+
module CloudControlsPartnerMonitoring
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
helper_path = ::File.join __dir__, "cloud_controls_partner_monitoring", "helpers.rb"
|
55
|
+
require "google/cloud/cloud_controls_partner/v1/cloud_controls_partner_monitoring/helpers" if ::File.file? helper_path
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright 2024 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 "google/cloud/cloud_controls_partner/v1/cloud_controls_partner_core/rest"
|
20
|
+
require "google/cloud/cloud_controls_partner/v1/cloud_controls_partner_monitoring/rest"
|
21
|
+
require "google/cloud/cloud_controls_partner/v1/version"
|
22
|
+
|
23
|
+
module Google
|
24
|
+
module Cloud
|
25
|
+
module CloudControlsPartner
|
26
|
+
##
|
27
|
+
# To load just the REST part of this package, including all its services, and instantiate a REST client:
|
28
|
+
#
|
29
|
+
# @example
|
30
|
+
#
|
31
|
+
# require "google/cloud/cloud_controls_partner/v1/rest"
|
32
|
+
# client = ::Google::Cloud::CloudControlsPartner::V1::CloudControlsPartnerCore::Rest::Client.new
|
33
|
+
#
|
34
|
+
module V1
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -1,10 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# Copyright 2024 Google LLC
|
2
4
|
#
|
3
5
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
6
|
# you may not use this file except in compliance with the License.
|
5
7
|
# You may obtain a copy of the License at
|
6
8
|
#
|
7
|
-
#
|
9
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
8
10
|
#
|
9
11
|
# Unless required by applicable law or agreed to in writing, software
|
10
12
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
@@ -12,11 +14,14 @@
|
|
12
14
|
# See the License for the specific language governing permissions and
|
13
15
|
# limitations under the License.
|
14
16
|
|
17
|
+
# Auto-generated by gapic-generator-ruby. DO NOT EDIT!
|
18
|
+
|
19
|
+
|
15
20
|
module Google
|
16
21
|
module Cloud
|
17
22
|
module CloudControlsPartner
|
18
23
|
module V1
|
19
|
-
VERSION = "0.
|
24
|
+
VERSION = "0.1.1"
|
20
25
|
end
|
21
26
|
end
|
22
27
|
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright 2024 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 "google/cloud/cloud_controls_partner/v1/cloud_controls_partner_core"
|
20
|
+
require "google/cloud/cloud_controls_partner/v1/cloud_controls_partner_monitoring"
|
21
|
+
require "google/cloud/cloud_controls_partner/v1/version"
|
22
|
+
|
23
|
+
module Google
|
24
|
+
module Cloud
|
25
|
+
module CloudControlsPartner
|
26
|
+
##
|
27
|
+
# API client module.
|
28
|
+
#
|
29
|
+
# @example Load this package, including all its services, and instantiate a gRPC client
|
30
|
+
#
|
31
|
+
# require "google/cloud/cloud_controls_partner/v1"
|
32
|
+
# client = ::Google::Cloud::CloudControlsPartner::V1::CloudControlsPartnerCore::Client.new
|
33
|
+
#
|
34
|
+
# @example Load this package, including all its services, and instantiate a REST client
|
35
|
+
#
|
36
|
+
# require "google/cloud/cloud_controls_partner/v1"
|
37
|
+
# client = ::Google::Cloud::CloudControlsPartner::V1::CloudControlsPartnerCore::Rest::Client.new
|
38
|
+
#
|
39
|
+
module V1
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
helper_path = ::File.join __dir__, "v1", "_helpers.rb"
|
46
|
+
require "google/cloud/cloud_controls_partner/v1/_helpers" if ::File.file? helper_path
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
3
|
+
# source: google/cloud/cloudcontrolspartner/v1/access_approval_requests.proto
|
4
|
+
|
5
|
+
require 'google/protobuf'
|
6
|
+
|
7
|
+
require 'google/api/field_behavior_pb'
|
8
|
+
require 'google/api/resource_pb'
|
9
|
+
require 'google/protobuf/timestamp_pb'
|
10
|
+
|
11
|
+
|
12
|
+
descriptor_data = "\nCgoogle/cloud/cloudcontrolspartner/v1/access_approval_requests.proto\x12$google.cloud.cloudcontrolspartner.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xe9\x03\n\x15\x41\x63\x63\x65ssApprovalRequest\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x30\n\x0crequest_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12L\n\x10requested_reason\x18\x03 \x01(\x0b\x32\x32.google.cloud.cloudcontrolspartner.v1.AccessReason\x12=\n\x19requested_expiration_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp:\xfd\x01\xea\x41\xf9\x01\n9cloudcontrolspartner.googleapis.com/AccessApprovalRequest\x12\x8c\x01organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/accessApprovalRequests/{access_approval_request}*\x16\x61\x63\x63\x65ssApprovalRequests2\x15\x61\x63\x63\x65ssApprovalRequest\"\xd3\x01\n!ListAccessApprovalRequestsRequest\x12Q\n\x06parent\x18\x01 \x01(\tBA\xe0\x41\x02\xfa\x41;\x12\x39\x63loudcontrolspartner.googleapis.com/AccessApprovalRequest\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\xb1\x01\n\"ListAccessApprovalRequestsResponse\x12]\n\x18\x61\x63\x63\x65ss_approval_requests\x18\x01 \x03(\x0b\x32;.google.cloud.cloudcontrolspartner.v1.AccessApprovalRequest\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"\xc2\x02\n\x0c\x41\x63\x63\x65ssReason\x12\x45\n\x04type\x18\x01 \x01(\x0e\x32\x37.google.cloud.cloudcontrolspartner.v1.AccessReason.Type\x12\x0e\n\x06\x64\x65tail\x18\x02 \x01(\t\"\xda\x01\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1a\x43USTOMER_INITIATED_SUPPORT\x10\x01\x12\x1c\n\x18GOOGLE_INITIATED_SERVICE\x10\x02\x12\x1b\n\x17GOOGLE_INITIATED_REVIEW\x10\x03\x12\x1c\n\x18THIRD_PARTY_DATA_REQUEST\x10\x04\x12\'\n#GOOGLE_RESPONSE_TO_PRODUCTION_ALERT\x10\x05\x12\x1a\n\x16\x43LOUD_INITIATED_ACCESS\x10\x06\x42\x9f\x02\n(com.google.cloud.cloudcontrolspartner.v1B\x1b\x41\x63\x63\x65ssApprovalRequestsProtoP\x01Z\\cloud.google.com/go/cloudcontrolspartner/apiv1/cloudcontrolspartnerpb;cloudcontrolspartnerpb\xaa\x02$Google.Cloud.CloudControlsPartner.V1\xca\x02$Google\\Cloud\\CloudControlsPartner\\V1\xea\x02\'Google::Cloud::CloudControlsPartner::V1b\x06proto3"
|
13
|
+
|
14
|
+
pool = Google::Protobuf::DescriptorPool.generated_pool
|
15
|
+
|
16
|
+
begin
|
17
|
+
pool.add_serialized_file(descriptor_data)
|
18
|
+
rescue TypeError
|
19
|
+
# Compatibility code: will be removed in the next major version.
|
20
|
+
require 'google/protobuf/descriptor_pb'
|
21
|
+
parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
|
22
|
+
parsed.clear_dependency
|
23
|
+
serialized = parsed.class.encode(parsed)
|
24
|
+
file = pool.add_serialized_file(serialized)
|
25
|
+
warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
|
26
|
+
imports = [
|
27
|
+
["google.protobuf.Timestamp", "google/protobuf/timestamp.proto"],
|
28
|
+
]
|
29
|
+
imports.each do |type_name, expected_filename|
|
30
|
+
import_file = pool.lookup(type_name).file_descriptor
|
31
|
+
if import_file.name != expected_filename
|
32
|
+
warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
warn "Each proto file must use a consistent fully-qualified name."
|
36
|
+
warn "This will become an error in the next major version."
|
37
|
+
end
|
38
|
+
|
39
|
+
module Google
|
40
|
+
module Cloud
|
41
|
+
module CloudControlsPartner
|
42
|
+
module V1
|
43
|
+
AccessApprovalRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.cloudcontrolspartner.v1.AccessApprovalRequest").msgclass
|
44
|
+
ListAccessApprovalRequestsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.cloudcontrolspartner.v1.ListAccessApprovalRequestsRequest").msgclass
|
45
|
+
ListAccessApprovalRequestsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.cloudcontrolspartner.v1.ListAccessApprovalRequestsResponse").msgclass
|
46
|
+
AccessReason = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.cloudcontrolspartner.v1.AccessReason").msgclass
|
47
|
+
AccessReason::Type = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.cloudcontrolspartner.v1.AccessReason.Type").enummodule
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
3
|
+
# source: google/cloud/cloudcontrolspartner/v1/completion_state.proto
|
4
|
+
|
5
|
+
require 'google/protobuf'
|
6
|
+
|
7
|
+
|
8
|
+
descriptor_data = "\n;google/cloud/cloudcontrolspartner/v1/completion_state.proto\x12$google.cloud.cloudcontrolspartner.v1*o\n\x0f\x43ompletionState\x12 \n\x1c\x43OMPLETION_STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\r\n\tSUCCEEDED\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03\x12\x12\n\x0eNOT_APPLICABLE\x10\x04\x42\x98\x02\n(com.google.cloud.cloudcontrolspartner.v1B\x14\x43ompletionStateProtoP\x01Z\\cloud.google.com/go/cloudcontrolspartner/apiv1/cloudcontrolspartnerpb;cloudcontrolspartnerpb\xaa\x02$Google.Cloud.CloudControlsPartner.V1\xca\x02$Google\\Cloud\\CloudControlsPartner\\V1\xea\x02\'Google::Cloud::CloudControlsPartner::V1b\x06proto3"
|
9
|
+
|
10
|
+
pool = Google::Protobuf::DescriptorPool.generated_pool
|
11
|
+
|
12
|
+
begin
|
13
|
+
pool.add_serialized_file(descriptor_data)
|
14
|
+
rescue TypeError
|
15
|
+
# Compatibility code: will be removed in the next major version.
|
16
|
+
require 'google/protobuf/descriptor_pb'
|
17
|
+
parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
|
18
|
+
parsed.clear_dependency
|
19
|
+
serialized = parsed.class.encode(parsed)
|
20
|
+
file = pool.add_serialized_file(serialized)
|
21
|
+
warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
|
22
|
+
imports = [
|
23
|
+
]
|
24
|
+
imports.each do |type_name, expected_filename|
|
25
|
+
import_file = pool.lookup(type_name).file_descriptor
|
26
|
+
if import_file.name != expected_filename
|
27
|
+
warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
warn "Each proto file must use a consistent fully-qualified name."
|
31
|
+
warn "This will become an error in the next major version."
|
32
|
+
end
|
33
|
+
|
34
|
+
module Google
|
35
|
+
module Cloud
|
36
|
+
module CloudControlsPartner
|
37
|
+
module V1
|
38
|
+
CompletionState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.cloudcontrolspartner.v1.CompletionState").enummodule
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
3
|
+
# source: google/cloud/cloudcontrolspartner/v1/core.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/cloudcontrolspartner/v1/access_approval_requests_pb'
|
12
|
+
require 'google/cloud/cloudcontrolspartner/v1/customer_workloads_pb'
|
13
|
+
require 'google/cloud/cloudcontrolspartner/v1/customers_pb'
|
14
|
+
require 'google/cloud/cloudcontrolspartner/v1/ekm_connections_pb'
|
15
|
+
require 'google/cloud/cloudcontrolspartner/v1/partner_permissions_pb'
|
16
|
+
require 'google/cloud/cloudcontrolspartner/v1/partners_pb'
|
17
|
+
require 'google/protobuf/timestamp_pb'
|
18
|
+
|
19
|
+
|
20
|
+
descriptor_data = "\n/google/cloud/cloudcontrolspartner/v1/core.proto\x12$google.cloud.cloudcontrolspartner.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x43google/cloud/cloudcontrolspartner/v1/access_approval_requests.proto\x1a=google/cloud/cloudcontrolspartner/v1/customer_workloads.proto\x1a\x34google/cloud/cloudcontrolspartner/v1/customers.proto\x1a:google/cloud/cloudcontrolspartner/v1/ekm_connections.proto\x1a>google/cloud/cloudcontrolspartner/v1/partner_permissions.proto\x1a\x33google/cloud/cloudcontrolspartner/v1/partners.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x80\x02\n\x11OperationMetadata\x12\x34\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x31\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x13\n\x06target\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04verb\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12\x1b\n\x0estatus_message\x18\x05 \x01(\tB\x03\xe0\x41\x03\x12#\n\x16requested_cancellation\x18\x06 \x01(\x08\x42\x03\xe0\x41\x03\x12\x18\n\x0b\x61pi_version\x18\x07 \x01(\tB\x03\xe0\x41\x03\x32\xde\x0e\n\x18\x43loudControlsPartnerCore\x12\xc6\x01\n\x0bGetWorkload\x12\x38.google.cloud.cloudcontrolspartner.v1.GetWorkloadRequest\x1a..google.cloud.cloudcontrolspartner.v1.Workload\"M\xda\x41\x04name\x82\xd3\xe4\x93\x02@\x12>/v1/{name=organizations/*/locations/*/customers/*/workloads/*}\x12\xd9\x01\n\rListWorkloads\x12:.google.cloud.cloudcontrolspartner.v1.ListWorkloadsRequest\x1a;.google.cloud.cloudcontrolspartner.v1.ListWorkloadsResponse\"O\xda\x41\x06parent\x82\xd3\xe4\x93\x02@\x12>/v1/{parent=organizations/*/locations/*/customers/*}/workloads\x12\xba\x01\n\x0bGetCustomer\x12\x38.google.cloud.cloudcontrolspartner.v1.GetCustomerRequest\x1a..google.cloud.cloudcontrolspartner.v1.Customer\"A\xda\x41\x04name\x82\xd3\xe4\x93\x02\x34\x12\x32/v1/{name=organizations/*/locations/*/customers/*}\x12\xcd\x01\n\rListCustomers\x12:.google.cloud.cloudcontrolspartner.v1.ListCustomersRequest\x1a;.google.cloud.cloudcontrolspartner.v1.ListCustomersResponse\"C\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x34\x12\x32/v1/{parent=organizations/*/locations/*}/customers\x12\xe7\x01\n\x11GetEkmConnections\x12>.google.cloud.cloudcontrolspartner.v1.GetEkmConnectionsRequest\x1a\x34.google.cloud.cloudcontrolspartner.v1.EkmConnections\"\\\xda\x41\x04name\x82\xd3\xe4\x93\x02O\x12M/v1/{name=organizations/*/locations/*/customers/*/workloads/*/ekmConnections}\x12\xf7\x01\n\x15GetPartnerPermissions\x12\x42.google.cloud.cloudcontrolspartner.v1.GetPartnerPermissionsRequest\x1a\x38.google.cloud.cloudcontrolspartner.v1.PartnerPermissions\"`\xda\x41\x04name\x82\xd3\xe4\x93\x02S\x12Q/v1/{name=organizations/*/locations/*/customers/*/workloads/*/partnerPermissions}\x12\x9c\x02\n\x1aListAccessApprovalRequests\x12G.google.cloud.cloudcontrolspartner.v1.ListAccessApprovalRequestsRequest\x1aH.google.cloud.cloudcontrolspartner.v1.ListAccessApprovalRequestsResponse\"k\x88\x02\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02Y\x12W/v1/{parent=organizations/*/locations/*/customers/*/workloads/*}/accessApprovalRequests\x12\xb3\x01\n\nGetPartner\x12\x37.google.cloud.cloudcontrolspartner.v1.GetPartnerRequest\x1a-.google.cloud.cloudcontrolspartner.v1.Partner\"=\xda\x41\x04name\x82\xd3\xe4\x93\x02\x30\x12./v1/{name=organizations/*/locations/*/partner}\x1aW\xca\x41#cloudcontrolspartner.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xfd\x02\n(com.google.cloud.cloudcontrolspartner.v1B\tCoreProtoP\x01Z\\cloud.google.com/go/cloudcontrolspartner/apiv1/cloudcontrolspartnerpb;cloudcontrolspartnerpb\xaa\x02$Google.Cloud.CloudControlsPartner.V1\xca\x02$Google\\Cloud\\CloudControlsPartner\\V1\xea\x02\'Google::Cloud::CloudControlsPartner::V1\xea\x41m\n8cloudcontrolspartner.googleapis.com/OrganizationLocation\x12\x31organizations/{organization}/locations/{location}b\x06proto3"
|
21
|
+
|
22
|
+
pool = Google::Protobuf::DescriptorPool.generated_pool
|
23
|
+
|
24
|
+
begin
|
25
|
+
pool.add_serialized_file(descriptor_data)
|
26
|
+
rescue TypeError
|
27
|
+
# Compatibility code: will be removed in the next major version.
|
28
|
+
require 'google/protobuf/descriptor_pb'
|
29
|
+
parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
|
30
|
+
parsed.clear_dependency
|
31
|
+
serialized = parsed.class.encode(parsed)
|
32
|
+
file = pool.add_serialized_file(serialized)
|
33
|
+
warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
|
34
|
+
imports = [
|
35
|
+
["google.protobuf.Timestamp", "google/protobuf/timestamp.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}"
|
41
|
+
end
|
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."
|
45
|
+
end
|
46
|
+
|
47
|
+
module Google
|
48
|
+
module Cloud
|
49
|
+
module CloudControlsPartner
|
50
|
+
module V1
|
51
|
+
OperationMetadata = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.cloudcontrolspartner.v1.OperationMetadata").msgclass
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
+
# Source: google/cloud/cloudcontrolspartner/v1/core.proto for package 'Google.Cloud.CloudControlsPartner.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/cloudcontrolspartner/v1/core_pb'
|
21
|
+
|
22
|
+
module Google
|
23
|
+
module Cloud
|
24
|
+
module CloudControlsPartner
|
25
|
+
module V1
|
26
|
+
module CloudControlsPartnerCore
|
27
|
+
# Service describing handlers for resources
|
28
|
+
class Service
|
29
|
+
|
30
|
+
include ::GRPC::GenericService
|
31
|
+
|
32
|
+
self.marshal_class_method = :encode
|
33
|
+
self.unmarshal_class_method = :decode
|
34
|
+
self.service_name = 'google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerCore'
|
35
|
+
|
36
|
+
# Gets details of a single workload
|
37
|
+
rpc :GetWorkload, ::Google::Cloud::CloudControlsPartner::V1::GetWorkloadRequest, ::Google::Cloud::CloudControlsPartner::V1::Workload
|
38
|
+
# Lists customer workloads for a given customer org id
|
39
|
+
rpc :ListWorkloads, ::Google::Cloud::CloudControlsPartner::V1::ListWorkloadsRequest, ::Google::Cloud::CloudControlsPartner::V1::ListWorkloadsResponse
|
40
|
+
# Gets details of a single customer
|
41
|
+
rpc :GetCustomer, ::Google::Cloud::CloudControlsPartner::V1::GetCustomerRequest, ::Google::Cloud::CloudControlsPartner::V1::Customer
|
42
|
+
# Lists customers of a partner identified by its Google Cloud organization ID
|
43
|
+
rpc :ListCustomers, ::Google::Cloud::CloudControlsPartner::V1::ListCustomersRequest, ::Google::Cloud::CloudControlsPartner::V1::ListCustomersResponse
|
44
|
+
# Gets the EKM connections associated with a workload
|
45
|
+
rpc :GetEkmConnections, ::Google::Cloud::CloudControlsPartner::V1::GetEkmConnectionsRequest, ::Google::Cloud::CloudControlsPartner::V1::EkmConnections
|
46
|
+
# Gets the partner permissions granted for a workload
|
47
|
+
rpc :GetPartnerPermissions, ::Google::Cloud::CloudControlsPartner::V1::GetPartnerPermissionsRequest, ::Google::Cloud::CloudControlsPartner::V1::PartnerPermissions
|
48
|
+
# Deprecated: Only returns access approval requests directly associated with
|
49
|
+
# an assured workload folder.
|
50
|
+
rpc :ListAccessApprovalRequests, ::Google::Cloud::CloudControlsPartner::V1::ListAccessApprovalRequestsRequest, ::Google::Cloud::CloudControlsPartner::V1::ListAccessApprovalRequestsResponse
|
51
|
+
# Get details of a Partner.
|
52
|
+
rpc :GetPartner, ::Google::Cloud::CloudControlsPartner::V1::GetPartnerRequest, ::Google::Cloud::CloudControlsPartner::V1::Partner
|
53
|
+
end
|
54
|
+
|
55
|
+
Stub = Service.rpc_stub_class
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|