vagrant-unbundled 2.3.2.0 → 2.3.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (128) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -0
  3. data/CHANGELOG.md +57 -0
  4. data/Gemfile.lock +40 -40
  5. data/LICENSE +1 -3
  6. data/Makefile +53 -9
  7. data/contrib/bash/completion.sh +15 -0
  8. data/go.mod +1 -1
  9. data/go.sum +2 -10
  10. data/lib/vagrant/action/builtin/box_add.rb +16 -6
  11. data/lib/vagrant/environment.rb +1 -1
  12. data/lib/vagrant/errors.rb +12 -0
  13. data/lib/vagrant/plugin/v2/config.rb +0 -5
  14. data/lib/vagrant/shared_helpers.rb +21 -0
  15. data/lib/vagrant/util/file_mutex.rb +47 -0
  16. data/lib/vagrant/util/install_cli_autocomplete.rb +3 -3
  17. data/lib/vagrant/util/platform.rb +8 -2
  18. data/lib/vagrant/util.rb +1 -0
  19. data/lib/vagrant.rb +1 -3
  20. data/pkg/vagrant-unbundled-2.3.2.0.gem +0 -0
  21. data/pkg/vagrant-unbundled-2.3.3.0.gem +0 -0
  22. data/plugins/commands/box/command/outdated.rb +1 -1
  23. data/plugins/commands/serve/command.rb +22 -24
  24. data/plugins/commands/serve/constants.rb +8 -0
  25. data/plugins/communicators/ssh/communicator.rb +11 -20
  26. data/plugins/guests/solaris/cap/remove_public_key.rb +2 -2
  27. data/plugins/hosts/arch/host.rb +1 -1
  28. data/plugins/hosts/gentoo/host.rb +1 -1
  29. data/plugins/hosts/slackware/host.rb +1 -1
  30. data/plugins/kernel_v2/config/vm.rb +0 -9
  31. data/plugins/providers/docker/action.rb +1 -2
  32. data/plugins/providers/docker/driver.rb +17 -1
  33. data/plugins/providers/hyperv/driver.rb +6 -1
  34. data/plugins/providers/hyperv/scripts/set_enhanced_session_transport_type.ps1 +11 -2
  35. data/plugins/providers/hyperv/scripts/utils/VagrantVM/VagrantVM.psm1 +15 -0
  36. data/plugins/providers/virtualbox/action/check_virtualbox.rb +0 -6
  37. data/plugins/providers/virtualbox/action/network.rb +23 -5
  38. data/plugins/providers/virtualbox/driver/base.rb +49 -1
  39. data/plugins/providers/virtualbox/driver/version_5_0.rb +40 -36
  40. data/plugins/providers/virtualbox/driver/version_7_0.rb +241 -6
  41. data/plugins/provisioners/ansible/cap/guest/debian/ansible_install.rb +5 -1
  42. data/plugins/provisioners/ansible/cap/guest/posix/ansible_installed.rb +2 -2
  43. data/plugins/provisioners/ansible/provisioner/guest.rb +1 -1
  44. data/plugins/provisioners/ansible/provisioner/host.rb +4 -3
  45. data/plugins/provisioners/chef/config/chef_zero.rb +1 -1
  46. data/plugins/synced_folders/rsync/helper.rb +4 -6
  47. data/templates/commands/init/Vagrantfile.erb +7 -0
  48. data/templates/locales/en.yml +16 -0
  49. data/thirdparty/proto/api-common-protos/.bazelrc +2 -0
  50. data/thirdparty/proto/api-common-protos/.git +1 -0
  51. data/thirdparty/proto/api-common-protos/.gitignore +11 -0
  52. data/thirdparty/proto/api-common-protos/BUILD.bazel +129 -0
  53. data/thirdparty/proto/api-common-protos/CODE_OF_CONDUCT.md +43 -0
  54. data/thirdparty/proto/api-common-protos/CONTRIBUTING.md +42 -0
  55. data/thirdparty/proto/api-common-protos/Dockerfile +18 -0
  56. data/thirdparty/proto/api-common-protos/LICENSE +201 -0
  57. data/thirdparty/proto/api-common-protos/README.md +113 -0
  58. data/thirdparty/proto/api-common-protos/SECURITY.md +7 -0
  59. data/thirdparty/proto/api-common-protos/WORKSPACE +154 -0
  60. data/thirdparty/proto/api-common-protos/google/api/BUILD.bazel +246 -0
  61. data/thirdparty/proto/api-common-protos/google/api/README.md +46 -0
  62. data/thirdparty/proto/api-common-protos/google/api/annotations.proto +31 -0
  63. data/thirdparty/proto/api-common-protos/google/api/auth.proto +181 -0
  64. data/thirdparty/proto/api-common-protos/google/api/backend.proto +51 -0
  65. data/thirdparty/proto/api-common-protos/google/api/billing.proto +67 -0
  66. data/thirdparty/proto/api-common-protos/google/api/client.proto +99 -0
  67. data/thirdparty/proto/api-common-protos/google/api/config_change.proto +85 -0
  68. data/thirdparty/proto/api-common-protos/google/api/consumer.proto +83 -0
  69. data/thirdparty/proto/api-common-protos/google/api/context.proto +63 -0
  70. data/thirdparty/proto/api-common-protos/google/api/control.proto +33 -0
  71. data/thirdparty/proto/api-common-protos/google/api/distribution.proto +213 -0
  72. data/thirdparty/proto/api-common-protos/google/api/documentation.proto +157 -0
  73. data/thirdparty/proto/api-common-protos/google/api/endpoint.proto +71 -0
  74. data/thirdparty/proto/api-common-protos/google/api/field_behavior.proto +84 -0
  75. data/thirdparty/proto/api-common-protos/google/api/http.proto +318 -0
  76. data/thirdparty/proto/api-common-protos/google/api/httpbody.proto +76 -0
  77. data/thirdparty/proto/api-common-protos/google/api/label.proto +49 -0
  78. data/thirdparty/proto/api-common-protos/google/api/launch_stage.proto +67 -0
  79. data/thirdparty/proto/api-common-protos/google/api/log.proto +55 -0
  80. data/thirdparty/proto/api-common-protos/google/api/logging.proto +83 -0
  81. data/thirdparty/proto/api-common-protos/google/api/metric.proto +192 -0
  82. data/thirdparty/proto/api-common-protos/google/api/monitored_resource.proto +116 -0
  83. data/thirdparty/proto/api-common-protos/google/api/monitoring.proto +89 -0
  84. data/thirdparty/proto/api-common-protos/google/api/quota.proto +259 -0
  85. data/thirdparty/proto/api-common-protos/google/api/resource.proto +299 -0
  86. data/thirdparty/proto/api-common-protos/google/api/routing.proto +461 -0
  87. data/thirdparty/proto/api-common-protos/google/api/service.proto +175 -0
  88. data/thirdparty/proto/api-common-protos/google/api/source_info.proto +32 -0
  89. data/thirdparty/proto/api-common-protos/google/api/system_parameter.proto +96 -0
  90. data/thirdparty/proto/api-common-protos/google/api/usage.proto +92 -0
  91. data/thirdparty/proto/api-common-protos/google/cloud/extended_operations.proto +150 -0
  92. data/thirdparty/proto/api-common-protos/google/iam/README.md +14 -0
  93. data/thirdparty/proto/api-common-protos/google/iam/admin/v1/iam.proto +1087 -0
  94. data/thirdparty/proto/api-common-protos/google/iam/v1/iam_policy.proto +145 -0
  95. data/thirdparty/proto/api-common-protos/google/iam/v1/logging/audit_data.proto +34 -0
  96. data/thirdparty/proto/api-common-protos/google/iam/v1/options.proto +41 -0
  97. data/thirdparty/proto/api-common-protos/google/iam/v1/policy.proto +240 -0
  98. data/thirdparty/proto/api-common-protos/google/logging/type/README.md +12 -0
  99. data/thirdparty/proto/api-common-protos/google/logging/type/http_request.proto +92 -0
  100. data/thirdparty/proto/api-common-protos/google/logging/type/log_severity.proto +72 -0
  101. data/thirdparty/proto/api-common-protos/google/longrunning/README.md +31 -0
  102. data/thirdparty/proto/api-common-protos/google/longrunning/operations.proto +247 -0
  103. data/thirdparty/proto/api-common-protos/google/rpc/README.md +18 -0
  104. data/thirdparty/proto/api-common-protos/google/rpc/code.proto +186 -0
  105. data/thirdparty/proto/api-common-protos/google/rpc/context/attribute_context.proto +287 -0
  106. data/thirdparty/proto/api-common-protos/google/rpc/error_details.proto +246 -0
  107. data/thirdparty/proto/api-common-protos/google/rpc/status.proto +47 -0
  108. data/thirdparty/proto/api-common-protos/google/type/README.md +7 -0
  109. data/thirdparty/proto/api-common-protos/google/type/calendar_period.proto +57 -0
  110. data/thirdparty/proto/api-common-protos/google/type/color.proto +170 -0
  111. data/thirdparty/proto/api-common-protos/google/type/date.proto +50 -0
  112. data/thirdparty/proto/api-common-protos/google/type/datetime.proto +97 -0
  113. data/thirdparty/proto/api-common-protos/google/type/dayofweek.proto +51 -0
  114. data/thirdparty/proto/api-common-protos/google/type/expr.proto +51 -0
  115. data/thirdparty/proto/api-common-protos/google/type/fraction.proto +34 -0
  116. data/thirdparty/proto/api-common-protos/google/type/latlng.proto +37 -0
  117. data/thirdparty/proto/api-common-protos/google/type/money.proto +43 -0
  118. data/thirdparty/proto/api-common-protos/google/type/month.proto +66 -0
  119. data/thirdparty/proto/api-common-protos/google/type/postal_address.proto +135 -0
  120. data/thirdparty/proto/api-common-protos/google/type/quaternion.proto +95 -0
  121. data/thirdparty/proto/api-common-protos/google/type/timeofday.proto +44 -0
  122. data/thirdparty/proto/api-common-protos/renovate.json +5 -0
  123. data/thirdparty/proto/api-common-protos/repository_rules.bzl +222 -0
  124. data/tools.go +10 -0
  125. data/vagrant.gemspec +13 -13
  126. data/version.txt +1 -1
  127. metadata +111 -38
  128. data/lib/vagrant/patches/net-ssh.rb +0 -286
@@ -0,0 +1,76 @@
1
+ // Copyright 2018 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
+ // http://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
+ syntax = "proto3";
16
+
17
+ package google.api;
18
+
19
+ import "google/protobuf/any.proto";
20
+
21
+ option go_package = "google.golang.org/genproto/googleapis/api/httpbody;httpbody";
22
+ option java_multiple_files = true;
23
+ option java_outer_classname = "HttpBodyProto";
24
+ option java_package = "com.google.api";
25
+ option objc_class_prefix = "GAPI";
26
+
27
+
28
+ // Message that represents an arbitrary HTTP body. It should only be used for
29
+ // payload formats that can't be represented as JSON, such as raw binary or
30
+ // an HTML page.
31
+ //
32
+ //
33
+ // This message can be used both in streaming and non-streaming API methods in
34
+ // the request as well as the response.
35
+ //
36
+ // It can be used as a top-level request field, which is convenient if one
37
+ // wants to extract parameters from either the URL or HTTP template into the
38
+ // request fields and also want access to the raw HTTP body.
39
+ //
40
+ // Example:
41
+ //
42
+ // message GetResourceRequest {
43
+ // // A unique request id.
44
+ // string request_id = 1;
45
+ //
46
+ // // The raw HTTP body is bound to this field.
47
+ // google.api.HttpBody http_body = 2;
48
+ // }
49
+ //
50
+ // service ResourceService {
51
+ // rpc GetResource(GetResourceRequest) returns (google.api.HttpBody);
52
+ // rpc UpdateResource(google.api.HttpBody) returns (google.protobuf.Empty);
53
+ // }
54
+ //
55
+ // Example with streaming methods:
56
+ //
57
+ // service CaldavService {
58
+ // rpc GetCalendar(stream google.api.HttpBody)
59
+ // returns (stream google.api.HttpBody);
60
+ // rpc UpdateCalendar(stream google.api.HttpBody)
61
+ // returns (stream google.api.HttpBody);
62
+ // }
63
+ //
64
+ // Use of this type only changes how the request and response bodies are
65
+ // handled, all other features will continue to work unchanged.
66
+ message HttpBody {
67
+ // The HTTP Content-Type string representing the content type of the body.
68
+ string content_type = 1;
69
+
70
+ // HTTP body binary data.
71
+ bytes data = 2;
72
+
73
+ // Application specific response metadata. Must be set in the first response
74
+ // for streaming APIs.
75
+ repeated google.protobuf.Any extensions = 3;
76
+ }
@@ -0,0 +1,49 @@
1
+ // Copyright 2018 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
+ // http://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
+ syntax = "proto3";
16
+
17
+ package google.api;
18
+
19
+ option cc_enable_arenas = true;
20
+ option go_package = "google.golang.org/genproto/googleapis/api/label;label";
21
+ option java_multiple_files = true;
22
+ option java_outer_classname = "LabelProto";
23
+ option java_package = "com.google.api";
24
+ option objc_class_prefix = "GAPI";
25
+
26
+
27
+ // A description of a label.
28
+ message LabelDescriptor {
29
+ // Value types that can be used as label values.
30
+ enum ValueType {
31
+ // A variable-length string. This is the default.
32
+ STRING = 0;
33
+
34
+ // Boolean; true or false.
35
+ BOOL = 1;
36
+
37
+ // A 64-bit signed integer.
38
+ INT64 = 2;
39
+ }
40
+
41
+ // The label key.
42
+ string key = 1;
43
+
44
+ // The type of data that can be assigned to the label.
45
+ ValueType value_type = 2;
46
+
47
+ // A human-readable description for the label.
48
+ string description = 3;
49
+ }
@@ -0,0 +1,67 @@
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
+ // http://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
+ syntax = "proto3";
17
+
18
+ package google.api;
19
+
20
+ option go_package = "google.golang.org/genproto/googleapis/api;api";
21
+ option java_multiple_files = true;
22
+ option java_outer_classname = "LaunchStageProto";
23
+ option java_package = "com.google.api";
24
+ option objc_class_prefix = "GAPI";
25
+
26
+ // The launch stage as defined by [Google Cloud Platform
27
+ // Launch Stages](http://cloud.google.com/terms/launch-stages).
28
+ enum LaunchStage {
29
+ // Do not use this default value.
30
+ LAUNCH_STAGE_UNSPECIFIED = 0;
31
+
32
+ // Early Access features are limited to a closed group of testers. To use
33
+ // these features, you must sign up in advance and sign a Trusted Tester
34
+ // agreement (which includes confidentiality provisions). These features may
35
+ // be unstable, changed in backward-incompatible ways, and are not
36
+ // guaranteed to be released.
37
+ EARLY_ACCESS = 1;
38
+
39
+ // Alpha is a limited availability test for releases before they are cleared
40
+ // for widespread use. By Alpha, all significant design issues are resolved
41
+ // and we are in the process of verifying functionality. Alpha customers
42
+ // need to apply for access, agree to applicable terms, and have their
43
+ // projects whitelisted. Alpha releases don’t have to be feature complete,
44
+ // no SLAs are provided, and there are no technical support obligations, but
45
+ // they will be far enough along that customers can actually use them in
46
+ // test environments or for limited-use tests -- just like they would in
47
+ // normal production cases.
48
+ ALPHA = 2;
49
+
50
+ // Beta is the point at which we are ready to open a release for any
51
+ // customer to use. There are no SLA or technical support obligations in a
52
+ // Beta release. Products will be complete from a feature perspective, but
53
+ // may have some open outstanding issues. Beta releases are suitable for
54
+ // limited production use cases.
55
+ BETA = 3;
56
+
57
+ // GA features are open to all developers and are considered stable and
58
+ // fully qualified for production use.
59
+ GA = 4;
60
+
61
+ // Deprecated features are scheduled to be shut down and removed. For more
62
+ // information, see the “Deprecation Policy” section of our [Terms of
63
+ // Service](https://cloud.google.com/terms/)
64
+ // and the [Google Cloud Platform Subject to the Deprecation
65
+ // Policy](https://cloud.google.com/terms/deprecation) documentation.
66
+ DEPRECATED = 5;
67
+ }
@@ -0,0 +1,55 @@
1
+ // Copyright 2018 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
+ // http://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
+ syntax = "proto3";
16
+
17
+ package google.api;
18
+
19
+ import "google/api/label.proto";
20
+
21
+ option go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig";
22
+ option java_multiple_files = true;
23
+ option java_outer_classname = "LogProto";
24
+ option java_package = "com.google.api";
25
+ option objc_class_prefix = "GAPI";
26
+
27
+
28
+ // A description of a log type. Example in YAML format:
29
+ //
30
+ // - name: library.googleapis.com/activity_history
31
+ // description: The history of borrowing and returning library items.
32
+ // display_name: Activity
33
+ // labels:
34
+ // - key: /customer_id
35
+ // description: Identifier of a library customer
36
+ message LogDescriptor {
37
+ // The name of the log. It must be less than 512 characters long and can
38
+ // include the following characters: upper- and lower-case alphanumeric
39
+ // characters [A-Za-z0-9], and punctuation characters including
40
+ // slash, underscore, hyphen, period [/_-.].
41
+ string name = 1;
42
+
43
+ // The set of labels that are available to describe a specific log entry.
44
+ // Runtime requests that contain labels not specified here are
45
+ // considered invalid.
46
+ repeated LabelDescriptor labels = 2;
47
+
48
+ // A human-readable description of this log. This information appears in
49
+ // the documentation and can contain details.
50
+ string description = 3;
51
+
52
+ // The human-readable name for this log. This information appears on
53
+ // the user interface and should be concise.
54
+ string display_name = 4;
55
+ }
@@ -0,0 +1,83 @@
1
+ // Copyright 2018 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
+ // http://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
+ syntax = "proto3";
16
+
17
+ package google.api;
18
+
19
+ import "google/api/annotations.proto";
20
+
21
+ option go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig";
22
+ option java_multiple_files = true;
23
+ option java_outer_classname = "LoggingProto";
24
+ option java_package = "com.google.api";
25
+ option objc_class_prefix = "GAPI";
26
+
27
+
28
+ // Logging configuration of the service.
29
+ //
30
+ // The following example shows how to configure logs to be sent to the
31
+ // producer and consumer projects. In the example, the `activity_history`
32
+ // log is sent to both the producer and consumer projects, whereas the
33
+ // `purchase_history` log is only sent to the producer project.
34
+ //
35
+ // monitored_resources:
36
+ // - type: library.googleapis.com/branch
37
+ // labels:
38
+ // - key: /city
39
+ // description: The city where the library branch is located in.
40
+ // - key: /name
41
+ // description: The name of the branch.
42
+ // logs:
43
+ // - name: activity_history
44
+ // labels:
45
+ // - key: /customer_id
46
+ // - name: purchase_history
47
+ // logging:
48
+ // producer_destinations:
49
+ // - monitored_resource: library.googleapis.com/branch
50
+ // logs:
51
+ // - activity_history
52
+ // - purchase_history
53
+ // consumer_destinations:
54
+ // - monitored_resource: library.googleapis.com/branch
55
+ // logs:
56
+ // - activity_history
57
+ message Logging {
58
+ // Configuration of a specific logging destination (the producer project
59
+ // or the consumer project).
60
+ message LoggingDestination {
61
+ // The monitored resource type. The type must be defined in the
62
+ // [Service.monitored_resources][google.api.Service.monitored_resources] section.
63
+ string monitored_resource = 3;
64
+
65
+ // Names of the logs to be sent to this destination. Each name must
66
+ // be defined in the [Service.logs][google.api.Service.logs] section. If the log name is
67
+ // not a domain scoped name, it will be automatically prefixed with
68
+ // the service name followed by "/".
69
+ repeated string logs = 1;
70
+ }
71
+
72
+ // Logging configurations for sending logs to the producer project.
73
+ // There can be multiple producer destinations, each one must have a
74
+ // different monitored resource type. A log can be used in at most
75
+ // one producer destination.
76
+ repeated LoggingDestination producer_destinations = 1;
77
+
78
+ // Logging configurations for sending logs to the consumer project.
79
+ // There can be multiple consumer destinations, each one must have a
80
+ // different monitored resource type. A log can be used in at most
81
+ // one consumer destination.
82
+ repeated LoggingDestination consumer_destinations = 2;
83
+ }
@@ -0,0 +1,192 @@
1
+ // Copyright 2018 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
+ // http://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
+ syntax = "proto3";
16
+
17
+ package google.api;
18
+
19
+ import "google/api/label.proto";
20
+
21
+ option go_package = "google.golang.org/genproto/googleapis/api/metric;metric";
22
+ option java_multiple_files = true;
23
+ option java_outer_classname = "MetricProto";
24
+ option java_package = "com.google.api";
25
+ option objc_class_prefix = "GAPI";
26
+
27
+
28
+ // Defines a metric type and its schema. Once a metric descriptor is created,
29
+ // deleting or altering it stops data collection and makes the metric type's
30
+ // existing data unusable.
31
+ message MetricDescriptor {
32
+ // The kind of measurement. It describes how the data is reported.
33
+ enum MetricKind {
34
+ // Do not use this default value.
35
+ METRIC_KIND_UNSPECIFIED = 0;
36
+
37
+ // An instantaneous measurement of a value.
38
+ GAUGE = 1;
39
+
40
+ // The change in a value during a time interval.
41
+ DELTA = 2;
42
+
43
+ // A value accumulated over a time interval. Cumulative
44
+ // measurements in a time series should have the same start time
45
+ // and increasing end times, until an event resets the cumulative
46
+ // value to zero and sets a new start time for the following
47
+ // points.
48
+ CUMULATIVE = 3;
49
+ }
50
+
51
+ // The value type of a metric.
52
+ enum ValueType {
53
+ // Do not use this default value.
54
+ VALUE_TYPE_UNSPECIFIED = 0;
55
+
56
+ // The value is a boolean.
57
+ // This value type can be used only if the metric kind is `GAUGE`.
58
+ BOOL = 1;
59
+
60
+ // The value is a signed 64-bit integer.
61
+ INT64 = 2;
62
+
63
+ // The value is a double precision floating point number.
64
+ DOUBLE = 3;
65
+
66
+ // The value is a text string.
67
+ // This value type can be used only if the metric kind is `GAUGE`.
68
+ STRING = 4;
69
+
70
+ // The value is a [`Distribution`][google.api.Distribution].
71
+ DISTRIBUTION = 5;
72
+
73
+ // The value is money.
74
+ MONEY = 6;
75
+ }
76
+
77
+ // The resource name of the metric descriptor.
78
+ string name = 1;
79
+
80
+ // The metric type, including its DNS name prefix. The type is not
81
+ // URL-encoded. All user-defined custom metric types have the DNS name
82
+ // `custom.googleapis.com`. Metric types should use a natural hierarchical
83
+ // grouping. For example:
84
+ //
85
+ // "custom.googleapis.com/invoice/paid/amount"
86
+ // "appengine.googleapis.com/http/server/response_latencies"
87
+ string type = 8;
88
+
89
+ // The set of labels that can be used to describe a specific
90
+ // instance of this metric type. For example, the
91
+ // `appengine.googleapis.com/http/server/response_latencies` metric
92
+ // type has a label for the HTTP response code, `response_code`, so
93
+ // you can look at latencies for successful responses or just
94
+ // for responses that failed.
95
+ repeated LabelDescriptor labels = 2;
96
+
97
+ // Whether the metric records instantaneous values, changes to a value, etc.
98
+ // Some combinations of `metric_kind` and `value_type` might not be supported.
99
+ MetricKind metric_kind = 3;
100
+
101
+ // Whether the measurement is an integer, a floating-point number, etc.
102
+ // Some combinations of `metric_kind` and `value_type` might not be supported.
103
+ ValueType value_type = 4;
104
+
105
+ // The unit in which the metric value is reported. It is only applicable
106
+ // if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The
107
+ // supported units are a subset of [The Unified Code for Units of
108
+ // Measure](http://unitsofmeasure.org/ucum.html) standard:
109
+ //
110
+ // **Basic units (UNIT)**
111
+ //
112
+ // * `bit` bit
113
+ // * `By` byte
114
+ // * `s` second
115
+ // * `min` minute
116
+ // * `h` hour
117
+ // * `d` day
118
+ //
119
+ // **Prefixes (PREFIX)**
120
+ //
121
+ // * `k` kilo (10**3)
122
+ // * `M` mega (10**6)
123
+ // * `G` giga (10**9)
124
+ // * `T` tera (10**12)
125
+ // * `P` peta (10**15)
126
+ // * `E` exa (10**18)
127
+ // * `Z` zetta (10**21)
128
+ // * `Y` yotta (10**24)
129
+ // * `m` milli (10**-3)
130
+ // * `u` micro (10**-6)
131
+ // * `n` nano (10**-9)
132
+ // * `p` pico (10**-12)
133
+ // * `f` femto (10**-15)
134
+ // * `a` atto (10**-18)
135
+ // * `z` zepto (10**-21)
136
+ // * `y` yocto (10**-24)
137
+ // * `Ki` kibi (2**10)
138
+ // * `Mi` mebi (2**20)
139
+ // * `Gi` gibi (2**30)
140
+ // * `Ti` tebi (2**40)
141
+ //
142
+ // **Grammar**
143
+ //
144
+ // The grammar also includes these connectors:
145
+ //
146
+ // * `/` division (as an infix operator, e.g. `1/s`).
147
+ // * `.` multiplication (as an infix operator, e.g. `GBy.d`)
148
+ //
149
+ // The grammar for a unit is as follows:
150
+ //
151
+ // Expression = Component { "." Component } { "/" Component } ;
152
+ //
153
+ // Component = ( [ PREFIX ] UNIT | "%" ) [ Annotation ]
154
+ // | Annotation
155
+ // | "1"
156
+ // ;
157
+ //
158
+ // Annotation = "{" NAME "}" ;
159
+ //
160
+ // Notes:
161
+ //
162
+ // * `Annotation` is just a comment if it follows a `UNIT` and is
163
+ // equivalent to `1` if it is used alone. For examples,
164
+ // `{requests}/s == 1/s`, `By{transmitted}/s == By/s`.
165
+ // * `NAME` is a sequence of non-blank printable ASCII characters not
166
+ // containing '{' or '}'.
167
+ // * `1` represents dimensionless value 1, such as in `1/s`.
168
+ // * `%` represents dimensionless value 1/100, and annotates values giving
169
+ // a percentage.
170
+ string unit = 5;
171
+
172
+ // A detailed description of the metric, which can be used in documentation.
173
+ string description = 6;
174
+
175
+ // A concise name for the metric, which can be displayed in user interfaces.
176
+ // Use sentence case without an ending period, for example "Request count".
177
+ // This field is optional but it is recommended to be set for any metrics
178
+ // associated with user-visible concepts, such as Quota.
179
+ string display_name = 7;
180
+ }
181
+
182
+ // A specific metric, identified by specifying values for all of the
183
+ // labels of a [`MetricDescriptor`][google.api.MetricDescriptor].
184
+ message Metric {
185
+ // An existing metric type, see [google.api.MetricDescriptor][google.api.MetricDescriptor].
186
+ // For example, `custom.googleapis.com/invoice/paid/amount`.
187
+ string type = 3;
188
+
189
+ // The set of label values that uniquely identify this metric. All
190
+ // labels listed in the `MetricDescriptor` must be assigned values.
191
+ map<string, string> labels = 2;
192
+ }
@@ -0,0 +1,116 @@
1
+ // Copyright 2018 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
+ // http://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
+ syntax = "proto3";
16
+
17
+ package google.api;
18
+
19
+ import "google/api/label.proto";
20
+ import "google/protobuf/struct.proto";
21
+
22
+ option cc_enable_arenas = true;
23
+ option go_package = "google.golang.org/genproto/googleapis/api/monitoredres;monitoredres";
24
+ option java_multiple_files = true;
25
+ option java_outer_classname = "MonitoredResourceProto";
26
+ option java_package = "com.google.api";
27
+ option objc_class_prefix = "GAPI";
28
+
29
+
30
+ // An object that describes the schema of a [MonitoredResource][google.api.MonitoredResource] object using a
31
+ // type name and a set of labels. For example, the monitored resource
32
+ // descriptor for Google Compute Engine VM instances has a type of
33
+ // `"gce_instance"` and specifies the use of the labels `"instance_id"` and
34
+ // `"zone"` to identify particular VM instances.
35
+ //
36
+ // Different APIs can support different monitored resource types. APIs generally
37
+ // provide a `list` method that returns the monitored resource descriptors used
38
+ // by the API.
39
+ message MonitoredResourceDescriptor {
40
+ // Optional. The resource name of the monitored resource descriptor:
41
+ // `"projects/{project_id}/monitoredResourceDescriptors/{type}"` where
42
+ // {type} is the value of the `type` field in this object and
43
+ // {project_id} is a project ID that provides API-specific context for
44
+ // accessing the type. APIs that do not use project information can use the
45
+ // resource name format `"monitoredResourceDescriptors/{type}"`.
46
+ string name = 5;
47
+
48
+ // Required. The monitored resource type. For example, the type
49
+ // `"cloudsql_database"` represents databases in Google Cloud SQL.
50
+ // The maximum length of this value is 256 characters.
51
+ string type = 1;
52
+
53
+ // Optional. A concise name for the monitored resource type that might be
54
+ // displayed in user interfaces. It should be a Title Cased Noun Phrase,
55
+ // without any article or other determiners. For example,
56
+ // `"Google Cloud SQL Database"`.
57
+ string display_name = 2;
58
+
59
+ // Optional. A detailed description of the monitored resource type that might
60
+ // be used in documentation.
61
+ string description = 3;
62
+
63
+ // Required. A set of labels used to describe instances of this monitored
64
+ // resource type. For example, an individual Google Cloud SQL database is
65
+ // identified by values for the labels `"database_id"` and `"zone"`.
66
+ repeated LabelDescriptor labels = 4;
67
+ }
68
+
69
+ // An object representing a resource that can be used for monitoring, logging,
70
+ // billing, or other purposes. Examples include virtual machine instances,
71
+ // databases, and storage devices such as disks. The `type` field identifies a
72
+ // [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object that describes the resource's
73
+ // schema. Information in the `labels` field identifies the actual resource and
74
+ // its attributes according to the schema. For example, a particular Compute
75
+ // Engine VM instance could be represented by the following object, because the
76
+ // [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] for `"gce_instance"` has labels
77
+ // `"instance_id"` and `"zone"`:
78
+ //
79
+ // { "type": "gce_instance",
80
+ // "labels": { "instance_id": "12345678901234",
81
+ // "zone": "us-central1-a" }}
82
+ message MonitoredResource {
83
+ // Required. The monitored resource type. This field must match
84
+ // the `type` field of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object. For
85
+ // example, the type of a Compute Engine VM instance is `gce_instance`.
86
+ string type = 1;
87
+
88
+ // Required. Values for all of the labels listed in the associated monitored
89
+ // resource descriptor. For example, Compute Engine VM instances use the
90
+ // labels `"project_id"`, `"instance_id"`, and `"zone"`.
91
+ map<string, string> labels = 2;
92
+ }
93
+
94
+ // Auxiliary metadata for a [MonitoredResource][google.api.MonitoredResource] object.
95
+ // [MonitoredResource][google.api.MonitoredResource] objects contain the minimum set of information to
96
+ // uniquely identify a monitored resource instance. There is some other useful
97
+ // auxiliary metadata. Google Stackdriver Monitoring & Logging uses an ingestion
98
+ // pipeline to extract metadata for cloud resources of all types , and stores
99
+ // the metadata in this message.
100
+ message MonitoredResourceMetadata {
101
+ // Output only. Values for predefined system metadata labels.
102
+ // System labels are a kind of metadata extracted by Google Stackdriver.
103
+ // Stackdriver determines what system labels are useful and how to obtain
104
+ // their values. Some examples: "machine_image", "vpc", "subnet_id",
105
+ // "security_group", "name", etc.
106
+ // System label values can be only strings, Boolean values, or a list of
107
+ // strings. For example:
108
+ //
109
+ // { "name": "my-test-instance",
110
+ // "security_group": ["a", "b", "c"],
111
+ // "spot_instance": false }
112
+ google.protobuf.Struct system_labels = 1;
113
+
114
+ // Output only. A map of user-defined metadata labels.
115
+ map<string, string> user_labels = 2;
116
+ }