grafeas-client 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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +0 -2
  3. data/README.md +4 -4
  4. data/lib/grafeas/client/version.rb +1 -2
  5. metadata +12 -73
  6. data/AUTHENTICATION.md +0 -199
  7. data/lib/grafeas.rb +0 -154
  8. data/lib/grafeas/v1.rb +0 -155
  9. data/lib/grafeas/v1/attestation_pb.rb +0 -27
  10. data/lib/grafeas/v1/build_pb.rb +0 -23
  11. data/lib/grafeas/v1/common_pb.rb +0 -34
  12. data/lib/grafeas/v1/credentials.rb +0 -37
  13. data/lib/grafeas/v1/cvss_pb.rb +0 -67
  14. data/lib/grafeas/v1/deployment_pb.rb +0 -35
  15. data/lib/grafeas/v1/discovery_pb.rb +0 -40
  16. data/lib/grafeas/v1/doc/google/protobuf/any.rb +0 -131
  17. data/lib/grafeas/v1/doc/google/protobuf/empty.rb +0 -29
  18. data/lib/grafeas/v1/doc/google/protobuf/field_mask.rb +0 -222
  19. data/lib/grafeas/v1/doc/google/protobuf/timestamp.rb +0 -113
  20. data/lib/grafeas/v1/doc/google/rpc/status.rb +0 -87
  21. data/lib/grafeas/v1/doc/grafeas/v1/attestation.rb +0 -64
  22. data/lib/grafeas/v1/doc/grafeas/v1/build.rb +0 -44
  23. data/lib/grafeas/v1/doc/grafeas/v1/common.rb +0 -105
  24. data/lib/grafeas/v1/doc/grafeas/v1/cvss.rb +0 -104
  25. data/lib/grafeas/v1/doc/grafeas/v1/deployment.rb +0 -64
  26. data/lib/grafeas/v1/doc/grafeas/v1/discovery.rb +0 -76
  27. data/lib/grafeas/v1/doc/grafeas/v1/grafeas.rb +0 -322
  28. data/lib/grafeas/v1/doc/grafeas/v1/image.rb +0 -79
  29. data/lib/grafeas/v1/doc/grafeas/v1/package.rb +0 -125
  30. data/lib/grafeas/v1/doc/grafeas/v1/provenance.rb +0 -248
  31. data/lib/grafeas/v1/doc/grafeas/v1/vulnerability.rb +0 -214
  32. data/lib/grafeas/v1/grafeas_client.rb +0 -961
  33. data/lib/grafeas/v1/grafeas_client_config.json +0 -96
  34. data/lib/grafeas/v1/grafeas_pb.rb +0 -163
  35. data/lib/grafeas/v1/grafeas_services_pb.rb +0 -86
  36. data/lib/grafeas/v1/image_pb.rb +0 -36
  37. data/lib/grafeas/v1/package_pb.rb +0 -59
  38. data/lib/grafeas/v1/provenance_pb.rb +0 -116
  39. data/lib/grafeas/v1/vulnerability_pb.rb +0 -81
@@ -1,155 +0,0 @@
1
- # Copyright 2019 Google LLC
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # https://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
-
16
- require "grafeas/v1/grafeas_client"
17
-
18
- module Grafeas
19
- # rubocop:disable LineLength
20
-
21
- ##
22
- # # Ruby Client for Container Analysis API ([Alpha](https://github.com/googleapis/google-cloud-ruby#versioning))
23
- #
24
- # [Container Analysis API][Product Documentation]:
25
- # An implementation of the Grafeas API, which stores, and enables querying and
26
- # retrieval of critical metadata about all of your software artifacts.
27
- # - [Product Documentation][]
28
- #
29
- # ## Quick Start
30
- # In order to use this library, you first need to go through the following
31
- # steps:
32
- #
33
- # 1. [Select or create a Cloud Platform project.](https://console.cloud.google.com/project)
34
- # 2. [Enable billing for your project.](https://cloud.google.com/billing/docs/how-to/modify-project#enable_billing_for_a_project)
35
- # 3. [Enable the Container Analysis API.](https://console.cloud.google.com/apis/library/grafeas.googleapis.com)
36
- # 4. [Setup Authentication.](https://googleapis.dev/ruby/grafeas-client/latest/file.AUTHENTICATION.html)
37
- #
38
- # ### Installation
39
- # ```
40
- # $ gem install grafeas-client
41
- # ```
42
- #
43
- # ### Next Steps
44
- # - Read the [Container Analysis API Product documentation][Product Documentation]
45
- # to learn more about the product and see How-to Guides.
46
- # - View this [repository's main README](https://github.com/googleapis/google-cloud-ruby/blob/master/README.md)
47
- # to see the full list of Cloud APIs that we cover.
48
- #
49
- # [Product Documentation]: https://grafeas.io/
50
- #
51
- # ## Enabling Logging
52
- #
53
- # To enable logging for this library, set the logger for the underlying [gRPC](https://github.com/grpc/grpc/tree/master/src/ruby) library.
54
- # The logger that you set may be a Ruby stdlib [`Logger`](https://ruby-doc.org/stdlib-2.5.0/libdoc/logger/rdoc/Logger.html) as shown below,
55
- # or a [`Google::Cloud::Logging::Logger`](https://googleapis.dev/ruby/google-cloud-logging/latest)
56
- # that will write logs to [Stackdriver Logging](https://cloud.google.com/logging/). See [grpc/logconfig.rb](https://github.com/grpc/grpc/blob/master/src/ruby/lib/grpc/logconfig.rb)
57
- # and the gRPC [spec_helper.rb](https://github.com/grpc/grpc/blob/master/src/ruby/spec/spec_helper.rb) for additional information.
58
- #
59
- # Configuring a Ruby stdlib logger:
60
- #
61
- # ```ruby
62
- # require "logger"
63
- #
64
- # module MyLogger
65
- # LOGGER = Logger.new $stderr, level: Logger::WARN
66
- # def logger
67
- # LOGGER
68
- # end
69
- # end
70
- #
71
- # # Define a gRPC module-level logger method before grpc/logconfig.rb loads.
72
- # module GRPC
73
- # extend MyLogger
74
- # end
75
- # ```
76
- #
77
- module V1
78
- # rubocop:enable LineLength
79
-
80
- ##
81
- # [Grafeas](https://grafeas.io) API.
82
- #
83
- # Retrieves analysis results of Cloud components such as Docker container
84
- # images.
85
- #
86
- # Analysis results are stored as a series of occurrences. An `Occurrence`
87
- # contains information about a specific analysis instance on a resource. An
88
- # occurrence refers to a `Note`. A note contains details describing the
89
- # analysis and is generally stored in a separate project, called a `Provider`.
90
- # Multiple occurrences can refer to the same note.
91
- #
92
- # For example, an SSL vulnerability could affect multiple images. In this case,
93
- # there would be one note for the vulnerability and an occurrence for each
94
- # image with the vulnerability referring to that note.
95
- #
96
- # @param credentials [Google::Auth::Credentials, String, Hash, GRPC::Core::Channel, GRPC::Core::ChannelCredentials, Proc]
97
- # Provides the means for authenticating requests made by the client. This parameter can
98
- # be many types.
99
- # A `Google::Auth::Credentials` uses a the properties of its represented keyfile for
100
- # authenticating requests made by this client.
101
- # A `String` will be treated as the path to the keyfile to be used for the construction of
102
- # credentials for this client.
103
- # A `Hash` will be treated as the contents of a keyfile to be used for the construction of
104
- # credentials for this client.
105
- # A `GRPC::Core::Channel` will be used to make calls through.
106
- # A `GRPC::Core::ChannelCredentials` for the setting up the RPC client. The channel credentials
107
- # should already be composed with a `GRPC::Core::CallCredentials` object.
108
- # A `Proc` will be used as an updater_proc for the Grpc channel. The proc transforms the
109
- # metadata for requests, generally, to give OAuth credentials.
110
- # @param scopes [Array<String>]
111
- # The OAuth scopes for this service. This parameter is ignored if
112
- # an updater_proc is supplied.
113
- # @param client_config [Hash]
114
- # A Hash for call options for each method. See
115
- # Google::Gax#construct_settings for the structure of
116
- # this data. Falls back to the default config if not specified
117
- # or the specified config is missing data points.
118
- # @param timeout [Numeric]
119
- # The default timeout, in seconds, for calls made through this client.
120
- # @param metadata [Hash]
121
- # Default metadata to be sent with each request. This can be overridden on a per call basis.
122
- # @param service_address [String]
123
- # Override for the service hostname, or `nil` to leave as the default.
124
- # @param service_port [Integer]
125
- # Override for the service port, or `nil` to leave as the default.
126
- # @param exception_transformer [Proc]
127
- # An optional proc that intercepts any exceptions raised during an API call to inject
128
- # custom error handling.
129
- def self.new \
130
- credentials: nil,
131
- scopes: nil,
132
- client_config: nil,
133
- timeout: nil,
134
- metadata: nil,
135
- service_address: nil,
136
- service_port: nil,
137
- exception_transformer: nil,
138
- lib_name: nil,
139
- lib_version: nil
140
- kwargs = {
141
- credentials: credentials,
142
- scopes: scopes,
143
- client_config: client_config,
144
- timeout: timeout,
145
- metadata: metadata,
146
- exception_transformer: exception_transformer,
147
- lib_name: lib_name,
148
- service_address: service_address,
149
- service_port: service_port,
150
- lib_version: lib_version
151
- }.select { |_, v| v != nil }
152
- Grafeas::V1::GrafeasClient.new(**kwargs)
153
- end
154
- end
155
- end
@@ -1,27 +0,0 @@
1
- # Generated by the protocol buffer compiler. DO NOT EDIT!
2
- # source: grafeas/v1/attestation.proto
3
-
4
-
5
- require 'google/protobuf'
6
-
7
- require 'grafeas/v1/common_pb'
8
- Google::Protobuf::DescriptorPool.generated_pool.build do
9
- add_message "grafeas.v1.AttestationNote" do
10
- optional :hint, :message, 1, "grafeas.v1.AttestationNote.Hint"
11
- end
12
- add_message "grafeas.v1.AttestationNote.Hint" do
13
- optional :human_readable_name, :string, 1
14
- end
15
- add_message "grafeas.v1.AttestationOccurrence" do
16
- optional :serialized_payload, :bytes, 1
17
- repeated :signatures, :message, 2, "grafeas.v1.Signature"
18
- end
19
- end
20
-
21
- module Grafeas
22
- module V1
23
- AttestationNote = Google::Protobuf::DescriptorPool.generated_pool.lookup("grafeas.v1.AttestationNote").msgclass
24
- AttestationNote::Hint = Google::Protobuf::DescriptorPool.generated_pool.lookup("grafeas.v1.AttestationNote.Hint").msgclass
25
- AttestationOccurrence = Google::Protobuf::DescriptorPool.generated_pool.lookup("grafeas.v1.AttestationOccurrence").msgclass
26
- end
27
- end
@@ -1,23 +0,0 @@
1
- # Generated by the protocol buffer compiler. DO NOT EDIT!
2
- # source: grafeas/v1/build.proto
3
-
4
-
5
- require 'google/protobuf'
6
-
7
- require 'grafeas/v1/provenance_pb'
8
- Google::Protobuf::DescriptorPool.generated_pool.build do
9
- add_message "grafeas.v1.BuildNote" do
10
- optional :builder_version, :string, 1
11
- end
12
- add_message "grafeas.v1.BuildOccurrence" do
13
- optional :provenance, :message, 1, "grafeas.v1.BuildProvenance"
14
- optional :provenance_bytes, :string, 2
15
- end
16
- end
17
-
18
- module Grafeas
19
- module V1
20
- BuildNote = Google::Protobuf::DescriptorPool.generated_pool.lookup("grafeas.v1.BuildNote").msgclass
21
- BuildOccurrence = Google::Protobuf::DescriptorPool.generated_pool.lookup("grafeas.v1.BuildOccurrence").msgclass
22
- end
23
- end
@@ -1,34 +0,0 @@
1
- # Generated by the protocol buffer compiler. DO NOT EDIT!
2
- # source: grafeas/v1/common.proto
3
-
4
-
5
- require 'google/protobuf'
6
-
7
- Google::Protobuf::DescriptorPool.generated_pool.build do
8
- add_message "grafeas.v1.RelatedUrl" do
9
- optional :url, :string, 1
10
- optional :label, :string, 2
11
- end
12
- add_message "grafeas.v1.Signature" do
13
- optional :signature, :bytes, 1
14
- optional :public_key_id, :string, 2
15
- end
16
- add_enum "grafeas.v1.NoteKind" do
17
- value :NOTE_KIND_UNSPECIFIED, 0
18
- value :VULNERABILITY, 1
19
- value :BUILD, 2
20
- value :IMAGE, 3
21
- value :PACKAGE, 4
22
- value :DEPLOYMENT, 5
23
- value :DISCOVERY, 6
24
- value :ATTESTATION, 7
25
- end
26
- end
27
-
28
- module Grafeas
29
- module V1
30
- RelatedUrl = Google::Protobuf::DescriptorPool.generated_pool.lookup("grafeas.v1.RelatedUrl").msgclass
31
- Signature = Google::Protobuf::DescriptorPool.generated_pool.lookup("grafeas.v1.Signature").msgclass
32
- NoteKind = Google::Protobuf::DescriptorPool.generated_pool.lookup("grafeas.v1.NoteKind").enummodule
33
- end
34
- end
@@ -1,37 +0,0 @@
1
- # Copyright 2019 Google LLC
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # https://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
-
16
- require "googleauth"
17
-
18
- module Grafeas
19
- module V1
20
- class Credentials < Google::Auth::Credentials
21
- SCOPE = [
22
- "https://www.googleapis.com/auth/cloud-platform"
23
- ].freeze
24
- PATH_ENV_VARS = %w(GRAFEAS_CREDENTIALS
25
- GRAFEAS_KEYFILE
26
- GOOGLE_CLOUD_CREDENTIALS
27
- GOOGLE_CLOUD_KEYFILE
28
- GCLOUD_KEYFILE)
29
- JSON_ENV_VARS = %w(GRAFEAS_CREDENTIALS_JSON
30
- GRAFEAS_KEYFILE_JSON
31
- GOOGLE_CLOUD_CREDENTIALS_JSON
32
- GOOGLE_CLOUD_KEYFILE_JSON
33
- GCLOUD_KEYFILE_JSON)
34
- DEFAULT_PATHS = ["~/.config/gcloud/application_default_credentials.json"]
35
- end
36
- end
37
- end
@@ -1,67 +0,0 @@
1
- # Generated by the protocol buffer compiler. DO NOT EDIT!
2
- # source: grafeas/v1/cvss.proto
3
-
4
-
5
- require 'google/protobuf'
6
-
7
- Google::Protobuf::DescriptorPool.generated_pool.build do
8
- add_message "grafeas.v1.CVSSv3" do
9
- optional :base_score, :float, 1
10
- optional :exploitability_score, :float, 2
11
- optional :impact_score, :float, 3
12
- optional :attack_vector, :enum, 5, "grafeas.v1.CVSSv3.AttackVector"
13
- optional :attack_complexity, :enum, 6, "grafeas.v1.CVSSv3.AttackComplexity"
14
- optional :privileges_required, :enum, 7, "grafeas.v1.CVSSv3.PrivilegesRequired"
15
- optional :user_interaction, :enum, 8, "grafeas.v1.CVSSv3.UserInteraction"
16
- optional :scope, :enum, 9, "grafeas.v1.CVSSv3.Scope"
17
- optional :confidentiality_impact, :enum, 10, "grafeas.v1.CVSSv3.Impact"
18
- optional :integrity_impact, :enum, 11, "grafeas.v1.CVSSv3.Impact"
19
- optional :availability_impact, :enum, 12, "grafeas.v1.CVSSv3.Impact"
20
- end
21
- add_enum "grafeas.v1.CVSSv3.AttackVector" do
22
- value :ATTACK_VECTOR_UNSPECIFIED, 0
23
- value :ATTACK_VECTOR_NETWORK, 1
24
- value :ATTACK_VECTOR_ADJACENT, 2
25
- value :ATTACK_VECTOR_LOCAL, 3
26
- value :ATTACK_VECTOR_PHYSICAL, 4
27
- end
28
- add_enum "grafeas.v1.CVSSv3.AttackComplexity" do
29
- value :ATTACK_COMPLEXITY_UNSPECIFIED, 0
30
- value :ATTACK_COMPLEXITY_LOW, 1
31
- value :ATTACK_COMPLEXITY_HIGH, 2
32
- end
33
- add_enum "grafeas.v1.CVSSv3.PrivilegesRequired" do
34
- value :PRIVILEGES_REQUIRED_UNSPECIFIED, 0
35
- value :PRIVILEGES_REQUIRED_NONE, 1
36
- value :PRIVILEGES_REQUIRED_LOW, 2
37
- value :PRIVILEGES_REQUIRED_HIGH, 3
38
- end
39
- add_enum "grafeas.v1.CVSSv3.UserInteraction" do
40
- value :USER_INTERACTION_UNSPECIFIED, 0
41
- value :USER_INTERACTION_NONE, 1
42
- value :USER_INTERACTION_REQUIRED, 2
43
- end
44
- add_enum "grafeas.v1.CVSSv3.Scope" do
45
- value :SCOPE_UNSPECIFIED, 0
46
- value :SCOPE_UNCHANGED, 1
47
- value :SCOPE_CHANGED, 2
48
- end
49
- add_enum "grafeas.v1.CVSSv3.Impact" do
50
- value :IMPACT_UNSPECIFIED, 0
51
- value :IMPACT_HIGH, 1
52
- value :IMPACT_LOW, 2
53
- value :IMPACT_NONE, 3
54
- end
55
- end
56
-
57
- module Grafeas
58
- module V1
59
- CVSSv3 = Google::Protobuf::DescriptorPool.generated_pool.lookup("grafeas.v1.CVSSv3").msgclass
60
- CVSSv3::AttackVector = Google::Protobuf::DescriptorPool.generated_pool.lookup("grafeas.v1.CVSSv3.AttackVector").enummodule
61
- CVSSv3::AttackComplexity = Google::Protobuf::DescriptorPool.generated_pool.lookup("grafeas.v1.CVSSv3.AttackComplexity").enummodule
62
- CVSSv3::PrivilegesRequired = Google::Protobuf::DescriptorPool.generated_pool.lookup("grafeas.v1.CVSSv3.PrivilegesRequired").enummodule
63
- CVSSv3::UserInteraction = Google::Protobuf::DescriptorPool.generated_pool.lookup("grafeas.v1.CVSSv3.UserInteraction").enummodule
64
- CVSSv3::Scope = Google::Protobuf::DescriptorPool.generated_pool.lookup("grafeas.v1.CVSSv3.Scope").enummodule
65
- CVSSv3::Impact = Google::Protobuf::DescriptorPool.generated_pool.lookup("grafeas.v1.CVSSv3.Impact").enummodule
66
- end
67
- end
@@ -1,35 +0,0 @@
1
- # Generated by the protocol buffer compiler. DO NOT EDIT!
2
- # source: grafeas/v1/deployment.proto
3
-
4
-
5
- require 'google/protobuf'
6
-
7
- require 'google/protobuf/timestamp_pb'
8
- Google::Protobuf::DescriptorPool.generated_pool.build do
9
- add_message "grafeas.v1.DeploymentNote" do
10
- repeated :resource_uri, :string, 1
11
- end
12
- add_message "grafeas.v1.DeploymentOccurrence" do
13
- optional :user_email, :string, 1
14
- optional :deploy_time, :message, 2, "google.protobuf.Timestamp"
15
- optional :undeploy_time, :message, 3, "google.protobuf.Timestamp"
16
- optional :config, :string, 4
17
- optional :address, :string, 5
18
- repeated :resource_uri, :string, 6
19
- optional :platform, :enum, 7, "grafeas.v1.DeploymentOccurrence.Platform"
20
- end
21
- add_enum "grafeas.v1.DeploymentOccurrence.Platform" do
22
- value :PLATFORM_UNSPECIFIED, 0
23
- value :GKE, 1
24
- value :FLEX, 2
25
- value :CUSTOM, 3
26
- end
27
- end
28
-
29
- module Grafeas
30
- module V1
31
- DeploymentNote = Google::Protobuf::DescriptorPool.generated_pool.lookup("grafeas.v1.DeploymentNote").msgclass
32
- DeploymentOccurrence = Google::Protobuf::DescriptorPool.generated_pool.lookup("grafeas.v1.DeploymentOccurrence").msgclass
33
- DeploymentOccurrence::Platform = Google::Protobuf::DescriptorPool.generated_pool.lookup("grafeas.v1.DeploymentOccurrence.Platform").enummodule
34
- end
35
- end
@@ -1,40 +0,0 @@
1
- # Generated by the protocol buffer compiler. DO NOT EDIT!
2
- # source: grafeas/v1/discovery.proto
3
-
4
-
5
- require 'google/protobuf'
6
-
7
- require 'google/rpc/status_pb'
8
- require 'grafeas/v1/common_pb'
9
- Google::Protobuf::DescriptorPool.generated_pool.build do
10
- add_message "grafeas.v1.DiscoveryNote" do
11
- optional :analysis_kind, :enum, 1, "grafeas.v1.NoteKind"
12
- end
13
- add_message "grafeas.v1.DiscoveryOccurrence" do
14
- optional :continuous_analysis, :enum, 1, "grafeas.v1.DiscoveryOccurrence.ContinuousAnalysis"
15
- optional :analysis_status, :enum, 2, "grafeas.v1.DiscoveryOccurrence.AnalysisStatus"
16
- optional :analysis_status_error, :message, 3, "google.rpc.Status"
17
- end
18
- add_enum "grafeas.v1.DiscoveryOccurrence.ContinuousAnalysis" do
19
- value :CONTINUOUS_ANALYSIS_UNSPECIFIED, 0
20
- value :ACTIVE, 1
21
- value :INACTIVE, 2
22
- end
23
- add_enum "grafeas.v1.DiscoveryOccurrence.AnalysisStatus" do
24
- value :ANALYSIS_STATUS_UNSPECIFIED, 0
25
- value :PENDING, 1
26
- value :SCANNING, 2
27
- value :FINISHED_SUCCESS, 3
28
- value :FINISHED_FAILED, 4
29
- value :FINISHED_UNSUPPORTED, 5
30
- end
31
- end
32
-
33
- module Grafeas
34
- module V1
35
- DiscoveryNote = Google::Protobuf::DescriptorPool.generated_pool.lookup("grafeas.v1.DiscoveryNote").msgclass
36
- DiscoveryOccurrence = Google::Protobuf::DescriptorPool.generated_pool.lookup("grafeas.v1.DiscoveryOccurrence").msgclass
37
- DiscoveryOccurrence::ContinuousAnalysis = Google::Protobuf::DescriptorPool.generated_pool.lookup("grafeas.v1.DiscoveryOccurrence.ContinuousAnalysis").enummodule
38
- DiscoveryOccurrence::AnalysisStatus = Google::Protobuf::DescriptorPool.generated_pool.lookup("grafeas.v1.DiscoveryOccurrence.AnalysisStatus").enummodule
39
- end
40
- end
@@ -1,131 +0,0 @@
1
- # Copyright 2019 Google LLC
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # https://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
-
16
- module Google
17
- module Protobuf
18
- # `Any` contains an arbitrary serialized protocol buffer message along with a
19
- # URL that describes the type of the serialized message.
20
- #
21
- # Protobuf library provides support to pack/unpack Any values in the form
22
- # of utility functions or additional generated methods of the Any type.
23
- #
24
- # Example 1: Pack and unpack a message in C++.
25
- #
26
- # Foo foo = ...;
27
- # Any any;
28
- # any.PackFrom(foo);
29
- # ...
30
- # if (any.UnpackTo(&foo)) {
31
- # ...
32
- # }
33
- #
34
- # Example 2: Pack and unpack a message in Java.
35
- #
36
- # Foo foo = ...;
37
- # Any any = Any.pack(foo);
38
- # ...
39
- # if (any.is(Foo.class)) {
40
- # foo = any.unpack(Foo.class);
41
- # }
42
- #
43
- # Example 3: Pack and unpack a message in Python.
44
- #
45
- # foo = Foo(...)
46
- # any = Any()
47
- # any.Pack(foo)
48
- # ...
49
- # if any.Is(Foo.DESCRIPTOR):
50
- # any.Unpack(foo)
51
- # ...
52
- #
53
- # Example 4: Pack and unpack a message in Go
54
- #
55
- # foo := &pb.Foo{...}
56
- # any, err := ptypes.MarshalAny(foo)
57
- # ...
58
- # foo := &pb.Foo{}
59
- # if err := ptypes.UnmarshalAny(any, foo); err != nil {
60
- # ...
61
- # }
62
- #
63
- # The pack methods provided by protobuf library will by default use
64
- # 'type.googleapis.com/full.type.name' as the type URL and the unpack
65
- # methods only use the fully qualified type name after the last '/'
66
- # in the type URL, for example "foo.bar.com/x/y.z" will yield type
67
- # name "y.z".
68
- #
69
- #
70
- # = JSON
71
- #
72
- # The JSON representation of an `Any` value uses the regular
73
- # representation of the deserialized, embedded message, with an
74
- # additional field `@type` which contains the type URL. Example:
75
- #
76
- # package google.profile;
77
- # message Person {
78
- # string first_name = 1;
79
- # string last_name = 2;
80
- # }
81
- #
82
- # {
83
- # "@type": "type.googleapis.com/google.profile.Person",
84
- # "firstName": <string>,
85
- # "lastName": <string>
86
- # }
87
- #
88
- # If the embedded message type is well-known and has a custom JSON
89
- # representation, that representation will be embedded adding a field
90
- # `value` which holds the custom JSON in addition to the `@type`
91
- # field. Example (for message {Google::Protobuf::Duration}):
92
- #
93
- # {
94
- # "@type": "type.googleapis.com/google.protobuf.Duration",
95
- # "value": "1.212s"
96
- # }
97
- # @!attribute [rw] type_url
98
- # @return [String]
99
- # A URL/resource name that uniquely identifies the type of the serialized
100
- # protocol buffer message. This string must contain at least
101
- # one "/" character. The last segment of the URL's path must represent
102
- # the fully qualified name of the type (as in
103
- # `path/google.protobuf.Duration`). The name should be in a canonical form
104
- # (e.g., leading "." is not accepted).
105
- #
106
- # In practice, teams usually precompile into the binary all types that they
107
- # expect it to use in the context of Any. However, for URLs which use the
108
- # scheme `http`, `https`, or no scheme, one can optionally set up a type
109
- # server that maps type URLs to message definitions as follows:
110
- #
111
- # * If no scheme is provided, `https` is assumed.
112
- # * An HTTP GET on the URL must yield a {Google::Protobuf::Type}
113
- # value in binary format, or produce an error.
114
- # * Applications are allowed to cache lookup results based on the
115
- # URL, or have them precompiled into a binary to avoid any
116
- # lookup. Therefore, binary compatibility needs to be preserved
117
- # on changes to types. (Use versioned type names to manage
118
- # breaking changes.)
119
- #
120
- # Note: this functionality is not currently available in the official
121
- # protobuf release, and it is not used for type URLs beginning with
122
- # type.googleapis.com.
123
- #
124
- # Schemes other than `http`, `https` (or the empty scheme) might be
125
- # used with implementation specific semantics.
126
- # @!attribute [rw] value
127
- # @return [String]
128
- # Must be a valid serialized protocol buffer of the above specified type.
129
- class Any; end
130
- end
131
- end