generated.proto 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. /*
  2. Copyright The Kubernetes Authors.
  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. http://www.apache.org/licenses/LICENSE-2.0
  7. Unless required by applicable law or agreed to in writing, software
  8. distributed under the License is distributed on an "AS IS" BASIS,
  9. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  10. See the License for the specific language governing permissions and
  11. limitations under the License.
  12. */
  13. // This file was autogenerated by go-to-protobuf. Do not edit it manually!
  14. syntax = 'proto2';
  15. package k8s.io.api.storage.v1;
  16. import "k8s.io/api/core/v1/generated.proto";
  17. import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto";
  18. import "k8s.io/apimachinery/pkg/runtime/generated.proto";
  19. import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto";
  20. // Package-wide variables from generator "generated".
  21. option go_package = "v1";
  22. // StorageClass describes the parameters for a class of storage for
  23. // which PersistentVolumes can be dynamically provisioned.
  24. //
  25. // StorageClasses are non-namespaced; the name of the storage class
  26. // according to etcd is in ObjectMeta.Name.
  27. message StorageClass {
  28. // Standard object's metadata.
  29. // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
  30. // +optional
  31. optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;
  32. // Provisioner indicates the type of the provisioner.
  33. optional string provisioner = 2;
  34. // Parameters holds the parameters for the provisioner that should
  35. // create volumes of this storage class.
  36. // +optional
  37. map<string, string> parameters = 3;
  38. // Dynamically provisioned PersistentVolumes of this storage class are
  39. // created with this reclaimPolicy. Defaults to Delete.
  40. // +optional
  41. optional string reclaimPolicy = 4;
  42. // Dynamically provisioned PersistentVolumes of this storage class are
  43. // created with these mountOptions, e.g. ["ro", "soft"]. Not validated -
  44. // mount of the PVs will simply fail if one is invalid.
  45. // +optional
  46. repeated string mountOptions = 5;
  47. // AllowVolumeExpansion shows whether the storage class allow volume expand
  48. // +optional
  49. optional bool allowVolumeExpansion = 6;
  50. // VolumeBindingMode indicates how PersistentVolumeClaims should be
  51. // provisioned and bound. When unset, VolumeBindingImmediate is used.
  52. // This field is only honored by servers that enable the VolumeScheduling feature.
  53. // +optional
  54. optional string volumeBindingMode = 7;
  55. // Restrict the node topologies where volumes can be dynamically provisioned.
  56. // Each volume plugin defines its own supported topology specifications.
  57. // An empty TopologySelectorTerm list means there is no topology restriction.
  58. // This field is only honored by servers that enable the VolumeScheduling feature.
  59. // +optional
  60. repeated k8s.io.api.core.v1.TopologySelectorTerm allowedTopologies = 8;
  61. }
  62. // StorageClassList is a collection of storage classes.
  63. message StorageClassList {
  64. // Standard list metadata
  65. // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
  66. // +optional
  67. optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;
  68. // Items is the list of StorageClasses
  69. repeated StorageClass items = 2;
  70. }
  71. // VolumeAttachment captures the intent to attach or detach the specified volume
  72. // to/from the specified node.
  73. //
  74. // VolumeAttachment objects are non-namespaced.
  75. message VolumeAttachment {
  76. // Standard object metadata.
  77. // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
  78. // +optional
  79. optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;
  80. // Specification of the desired attach/detach volume behavior.
  81. // Populated by the Kubernetes system.
  82. optional VolumeAttachmentSpec spec = 2;
  83. // Status of the VolumeAttachment request.
  84. // Populated by the entity completing the attach or detach
  85. // operation, i.e. the external-attacher.
  86. // +optional
  87. optional VolumeAttachmentStatus status = 3;
  88. }
  89. // VolumeAttachmentList is a collection of VolumeAttachment objects.
  90. message VolumeAttachmentList {
  91. // Standard list metadata
  92. // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
  93. // +optional
  94. optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;
  95. // Items is the list of VolumeAttachments
  96. repeated VolumeAttachment items = 2;
  97. }
  98. // VolumeAttachmentSource represents a volume that should be attached.
  99. // Right now only PersistenVolumes can be attached via external attacher,
  100. // in future we may allow also inline volumes in pods.
  101. // Exactly one member can be set.
  102. message VolumeAttachmentSource {
  103. // Name of the persistent volume to attach.
  104. // +optional
  105. optional string persistentVolumeName = 1;
  106. }
  107. // VolumeAttachmentSpec is the specification of a VolumeAttachment request.
  108. message VolumeAttachmentSpec {
  109. // Attacher indicates the name of the volume driver that MUST handle this
  110. // request. This is the name returned by GetPluginName().
  111. optional string attacher = 1;
  112. // Source represents the volume that should be attached.
  113. optional VolumeAttachmentSource source = 2;
  114. // The node that the volume should be attached to.
  115. optional string nodeName = 3;
  116. }
  117. // VolumeAttachmentStatus is the status of a VolumeAttachment request.
  118. message VolumeAttachmentStatus {
  119. // Indicates the volume is successfully attached.
  120. // This field must only be set by the entity completing the attach
  121. // operation, i.e. the external-attacher.
  122. optional bool attached = 1;
  123. // Upon successful attach, this field is populated with any
  124. // information returned by the attach operation that must be passed
  125. // into subsequent WaitForAttach or Mount calls.
  126. // This field must only be set by the entity completing the attach
  127. // operation, i.e. the external-attacher.
  128. // +optional
  129. map<string, string> attachmentMetadata = 2;
  130. // The last error encountered during attach operation, if any.
  131. // This field must only be set by the entity completing the attach
  132. // operation, i.e. the external-attacher.
  133. // +optional
  134. optional VolumeError attachError = 3;
  135. // The last error encountered during detach operation, if any.
  136. // This field must only be set by the entity completing the detach
  137. // operation, i.e. the external-attacher.
  138. // +optional
  139. optional VolumeError detachError = 4;
  140. }
  141. // VolumeError captures an error encountered during a volume operation.
  142. message VolumeError {
  143. // Time the error was encountered.
  144. // +optional
  145. optional k8s.io.apimachinery.pkg.apis.meta.v1.Time time = 1;
  146. // String detailing the error encountered during Attach or Detach operation.
  147. // This string may be logged, so it should not contain sensitive
  148. // information.
  149. // +optional
  150. optional string message = 2;
  151. }