Merge pull request #73212 from danielqsj/samplecontroller

fix shellcheck in sample-controller

Kubernetes-commit: 6ebe874d11dc04972d74904e0cf2b15506ea318a
This commit is contained in:
Kubernetes Publisher 2019-01-29 01:20:52 -08:00
commit eb58fda54a
11 changed files with 518 additions and 493 deletions

486
Godeps/Godeps.json generated

File diff suppressed because it is too large Load Diff

View File

@ -18,18 +18,18 @@ set -o errexit
set -o nounset
set -o pipefail
SCRIPT_ROOT=$(dirname ${BASH_SOURCE})/..
CODEGEN_PKG=${CODEGEN_PKG:-$(cd ${SCRIPT_ROOT}; ls -d -1 ./vendor/k8s.io/code-generator 2>/dev/null || echo ../code-generator)}
SCRIPT_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
CODEGEN_PKG=${CODEGEN_PKG:-$(cd "${SCRIPT_ROOT}"; ls -d -1 ./vendor/k8s.io/code-generator 2>/dev/null || echo ../code-generator)}
# generate the code with:
# --output-base because this script should also be able to run inside the vendor dir of
# k8s.io/kubernetes. The output-base is needed for the generators to output into the vendor dir
# instead of the $GOPATH directly. For normal projects this can be dropped.
${CODEGEN_PKG}/generate-groups.sh "deepcopy,client,informer,lister" \
"${CODEGEN_PKG}"/generate-groups.sh "deepcopy,client,informer,lister" \
k8s.io/sample-controller/pkg/client k8s.io/sample-controller/pkg/apis \
samplecontroller:v1alpha1 \
--output-base "$(dirname ${BASH_SOURCE})/../../.." \
--go-header-file ${SCRIPT_ROOT}/hack/boilerplate.go.txt
--output-base "$(dirname "${BASH_SOURCE[0]}")/../../.." \
--go-header-file "${SCRIPT_ROOT}"/hack/boilerplate.go.txt
# To use your own boilerplate text use:
# --go-header-file ${SCRIPT_ROOT}/hack/custom-boilerplate.go.txt
# --go-header-file "${SCRIPT_ROOT}"/hack/custom-boilerplate.go.txt

View File

@ -18,7 +18,7 @@ set -o errexit
set -o nounset
set -o pipefail
SCRIPT_ROOT=$(dirname "${BASH_SOURCE}")/..
SCRIPT_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
DIFFROOT="${SCRIPT_ROOT}/pkg"
TMP_DIFFROOT="${SCRIPT_ROOT}/_tmp/pkg"

2
vendor/k8s.io/api/core/v1/types.go generated vendored
View File

@ -467,7 +467,7 @@ type PersistentVolumeClaimSpec struct {
// In the future, we plan to support more data source types and the behavior
// of the provisioner may change.
// +optional
DataSource *TypedLocalObjectReference `json:"dataSource" protobuf:"bytes,7,opt,name=dataSource"`
DataSource *TypedLocalObjectReference `json:"dataSource,omitempty" protobuf:"bytes,7,opt,name=dataSource"`
}
// PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type

View File

@ -464,6 +464,10 @@ func (m *APIResource) MarshalTo(dAtA []byte) (int, error) {
i++
i = encodeVarintGenerated(dAtA, i, uint64(len(m.Version)))
i += copy(dAtA[i:], m.Version)
dAtA[i] = 0x52
i++
i = encodeVarintGenerated(dAtA, i, uint64(len(m.StorageVersionHash)))
i += copy(dAtA[i:], m.StorageVersionHash)
return i, nil
}
@ -1816,6 +1820,8 @@ func (m *APIResource) Size() (n int) {
n += 1 + l + sovGenerated(uint64(l))
l = len(m.Version)
n += 1 + l + sovGenerated(uint64(l))
l = len(m.StorageVersionHash)
n += 1 + l + sovGenerated(uint64(l))
return n
}
@ -2355,6 +2361,7 @@ func (this *APIResource) String() string {
`Categories:` + fmt.Sprintf("%v", this.Categories) + `,`,
`Group:` + fmt.Sprintf("%v", this.Group) + `,`,
`Version:` + fmt.Sprintf("%v", this.Version) + `,`,
`StorageVersionHash:` + fmt.Sprintf("%v", this.StorageVersionHash) + `,`,
`}`,
}, "")
return s
@ -3259,6 +3266,35 @@ func (m *APIResource) Unmarshal(dAtA []byte) error {
}
m.Version = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 10:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field StorageVersionHash", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthGenerated
}
postIndex := iNdEx + intStringLen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.StorageVersionHash = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
@ -8062,157 +8098,159 @@ func init() {
}
var fileDescriptorGenerated = []byte{
// 2423 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0x4f, 0x6c, 0x1b, 0x59,
0x19, 0xcf, 0xd8, 0xb1, 0x63, 0x7f, 0x8e, 0xf3, 0xe7, 0x6d, 0x0b, 0xde, 0x48, 0xd8, 0xd9, 0x59,
0xb4, 0xca, 0x42, 0xd7, 0x26, 0x29, 0xac, 0x4a, 0x81, 0x42, 0x1c, 0xa7, 0x55, 0xb4, 0x4d, 0x63,
0xbd, 0x6c, 0x8b, 0x28, 0x15, 0x62, 0x32, 0xf3, 0xe2, 0x0c, 0x19, 0xcf, 0x78, 0xdf, 0x1b, 0xa7,
0x35, 0x1c, 0xd8, 0x03, 0x08, 0x0e, 0x08, 0xf5, 0xc8, 0x09, 0x6d, 0x05, 0x17, 0xae, 0x9c, 0xb8,
0xc0, 0x09, 0x89, 0x1e, 0x57, 0xe2, 0xb2, 0x07, 0x64, 0x6d, 0xcd, 0x81, 0x13, 0xe2, 0x9e, 0x03,
0x42, 0xef, 0xcd, 0x9b, 0x99, 0x37, 0x76, 0xdd, 0x8c, 0xe9, 0x82, 0xf6, 0x14, 0xcf, 0xf7, 0xff,
0x7d, 0xef, 0x7b, 0xbf, 0xf7, 0x7d, 0x2f, 0xb0, 0x7f, 0x7a, 0x8d, 0xd5, 0x6d, 0xaf, 0x71, 0xda,
0x3f, 0x22, 0xd4, 0x25, 0x3e, 0x61, 0x8d, 0x33, 0xe2, 0x5a, 0x1e, 0x6d, 0x48, 0x86, 0xd1, 0xb3,
0xbb, 0x86, 0x79, 0x62, 0xbb, 0x84, 0x0e, 0x1a, 0xbd, 0xd3, 0x0e, 0x27, 0xb0, 0x46, 0x97, 0xf8,
0x46, 0xe3, 0x6c, 0xb3, 0xd1, 0x21, 0x2e, 0xa1, 0x86, 0x4f, 0xac, 0x7a, 0x8f, 0x7a, 0xbe, 0x87,
0x3e, 0x1f, 0x68, 0xd5, 0x55, 0xad, 0x7a, 0xef, 0xb4, 0xc3, 0x09, 0xac, 0xce, 0xb5, 0xea, 0x67,
0x9b, 0x6b, 0x6f, 0x75, 0x6c, 0xff, 0xa4, 0x7f, 0x54, 0x37, 0xbd, 0x6e, 0xa3, 0xe3, 0x75, 0xbc,
0x86, 0x50, 0x3e, 0xea, 0x1f, 0x8b, 0x2f, 0xf1, 0x21, 0x7e, 0x05, 0x46, 0xd7, 0xa6, 0x86, 0x42,
0xfb, 0xae, 0x6f, 0x77, 0xc9, 0x78, 0x14, 0x6b, 0x6f, 0x5f, 0xa4, 0xc0, 0xcc, 0x13, 0xd2, 0x35,
0xc6, 0xf5, 0xf4, 0xbf, 0x64, 0xa1, 0xb0, 0xdd, 0xde, 0xbb, 0x45, 0xbd, 0x7e, 0x0f, 0xad, 0xc3,
0xbc, 0x6b, 0x74, 0x49, 0x45, 0x5b, 0xd7, 0x36, 0x8a, 0xcd, 0xc5, 0xa7, 0xc3, 0xda, 0xdc, 0x68,
0x58, 0x9b, 0xbf, 0x63, 0x74, 0x09, 0x16, 0x1c, 0xe4, 0x40, 0xe1, 0x8c, 0x50, 0x66, 0x7b, 0x2e,
0xab, 0x64, 0xd6, 0xb3, 0x1b, 0xa5, 0xad, 0x1b, 0xf5, 0x34, 0xeb, 0xaf, 0x0b, 0x07, 0xf7, 0x02,
0xd5, 0x9b, 0x1e, 0x6d, 0xd9, 0xcc, 0xf4, 0xce, 0x08, 0x1d, 0x34, 0x57, 0xa4, 0x97, 0x82, 0x64,
0x32, 0x1c, 0x79, 0x40, 0x3f, 0xd1, 0x60, 0xa5, 0x47, 0xc9, 0x31, 0xa1, 0x94, 0x58, 0x92, 0x5f,
0xc9, 0xae, 0x6b, 0x9f, 0x80, 0xdb, 0x8a, 0x74, 0xbb, 0xd2, 0x1e, 0xb3, 0x8f, 0x27, 0x3c, 0xa2,
0xdf, 0x68, 0xb0, 0xc6, 0x08, 0x3d, 0x23, 0x74, 0xdb, 0xb2, 0x28, 0x61, 0xac, 0x39, 0xd8, 0x71,
0x6c, 0xe2, 0xfa, 0x3b, 0x7b, 0x2d, 0xcc, 0x2a, 0xf3, 0x22, 0x0f, 0xdf, 0x4c, 0x17, 0xd0, 0xe1,
0x34, 0x3b, 0x4d, 0x5d, 0x46, 0xb4, 0x36, 0x55, 0x84, 0xe1, 0x17, 0x84, 0xa1, 0x1f, 0xc3, 0x62,
0xb8, 0x91, 0xb7, 0x6d, 0xe6, 0xa3, 0x7b, 0x90, 0xef, 0xf0, 0x0f, 0x56, 0xd1, 0x44, 0x80, 0xf5,
0x74, 0x01, 0x86, 0x36, 0x9a, 0x4b, 0x32, 0x9e, 0xbc, 0xf8, 0x64, 0x58, 0x5a, 0xd3, 0xff, 0x98,
0x85, 0xd2, 0x76, 0x7b, 0x0f, 0x13, 0xe6, 0xf5, 0xa9, 0x49, 0x52, 0x14, 0xcd, 0x16, 0x00, 0xff,
0xcb, 0x7a, 0x86, 0x49, 0xac, 0x4a, 0x66, 0x5d, 0xdb, 0x28, 0x34, 0x91, 0x94, 0x83, 0x3b, 0x11,
0x07, 0x2b, 0x52, 0xdc, 0xea, 0xa9, 0xed, 0x5a, 0x62, 0xb7, 0x15, 0xab, 0xef, 0xd8, 0xae, 0x85,
0x05, 0x07, 0xdd, 0x86, 0xdc, 0x19, 0xa1, 0x47, 0x3c, 0xff, 0xbc, 0x20, 0xbe, 0x98, 0x6e, 0x79,
0xf7, 0xb8, 0x4a, 0xb3, 0x38, 0x1a, 0xd6, 0x72, 0xe2, 0x27, 0x0e, 0x8c, 0xa0, 0x3a, 0x00, 0x3b,
0xf1, 0xa8, 0x2f, 0xc2, 0xa9, 0xe4, 0xd6, 0xb3, 0x1b, 0xc5, 0xe6, 0x12, 0x8f, 0xef, 0x30, 0xa2,
0x62, 0x45, 0x02, 0x5d, 0x83, 0x45, 0x66, 0xbb, 0x9d, 0xbe, 0x63, 0x50, 0x4e, 0xa8, 0xe4, 0x45,
0x9c, 0x97, 0x64, 0x9c, 0x8b, 0x87, 0x0a, 0x0f, 0x27, 0x24, 0xb9, 0x27, 0xd3, 0xf0, 0x49, 0xc7,
0xa3, 0x36, 0x61, 0x95, 0x85, 0xd8, 0xd3, 0x4e, 0x44, 0xc5, 0x8a, 0x04, 0x7a, 0x1d, 0x72, 0x22,
0xf3, 0x95, 0x82, 0x70, 0x51, 0x96, 0x2e, 0x72, 0x62, 0x5b, 0x70, 0xc0, 0x43, 0x6f, 0xc2, 0x82,
0x3c, 0x35, 0x95, 0xa2, 0x10, 0x5b, 0x96, 0x62, 0x0b, 0x61, 0x59, 0x87, 0x7c, 0xfd, 0xf7, 0x1a,
0x2c, 0x2b, 0xfb, 0x27, 0x6a, 0xe5, 0x1a, 0x2c, 0x76, 0x94, 0x93, 0x22, 0xf7, 0x32, 0x5a, 0x8d,
0x7a, 0x8a, 0x70, 0x42, 0x12, 0x11, 0x28, 0x52, 0x69, 0x29, 0x44, 0x84, 0xcd, 0xd4, 0x85, 0x16,
0xc6, 0x10, 0x7b, 0x52, 0x88, 0x0c, 0xc7, 0x96, 0xf5, 0x7f, 0x68, 0xa2, 0xe8, 0x42, 0x8c, 0x40,
0x1b, 0x0a, 0x0e, 0x69, 0x22, 0x85, 0x8b, 0x53, 0x30, 0xe4, 0x82, 0xc3, 0x9b, 0xf9, 0x54, 0x1c,
0xde, 0xeb, 0x85, 0x5f, 0x7d, 0x50, 0x9b, 0x7b, 0xff, 0x6f, 0xeb, 0x73, 0xfa, 0x55, 0x28, 0xef,
0x50, 0x62, 0xf8, 0xe4, 0xa0, 0xe7, 0x8b, 0x05, 0xe8, 0x90, 0xb7, 0xe8, 0x00, 0xf7, 0x5d, 0xb9,
0x50, 0xe0, 0x67, 0xb2, 0x25, 0x28, 0x58, 0x72, 0xf4, 0x9f, 0x65, 0xa1, 0xdc, 0x22, 0x0e, 0x89,
0xb5, 0x6e, 0x02, 0xea, 0x50, 0xc3, 0x24, 0x6d, 0x42, 0x6d, 0xcf, 0x3a, 0x24, 0xa6, 0xe7, 0x5a,
0x4c, 0xec, 0x6b, 0xb6, 0xf9, 0x99, 0xd1, 0xb0, 0x86, 0x6e, 0x4d, 0x70, 0xf1, 0x73, 0x34, 0x90,
0x03, 0xe5, 0x1e, 0x15, 0xbf, 0x6d, 0x5f, 0xa2, 0x3e, 0x3f, 0x6d, 0x57, 0xd3, 0x25, 0xac, 0xad,
0xaa, 0x36, 0x57, 0x47, 0xc3, 0x5a, 0x39, 0x41, 0xc2, 0x49, 0xe3, 0xe8, 0x5b, 0xb0, 0xe2, 0xd1,
0xde, 0x89, 0xe1, 0xb6, 0x48, 0x8f, 0xb8, 0x16, 0x71, 0x7d, 0x26, 0x10, 0xa0, 0xd0, 0xbc, 0xc4,
0xb1, 0xfa, 0x60, 0x8c, 0x87, 0x27, 0xa4, 0xd1, 0x7d, 0x58, 0xed, 0x51, 0xaf, 0x67, 0x74, 0x0c,
0x6e, 0xb1, 0xed, 0x39, 0xb6, 0x39, 0x10, 0x08, 0x51, 0x6c, 0x5e, 0x19, 0x0d, 0x6b, 0xab, 0xed,
0x71, 0xe6, 0xf9, 0xb0, 0xf6, 0x8a, 0x48, 0x1d, 0xa7, 0xc4, 0x4c, 0x3c, 0x69, 0x46, 0xd9, 0x89,
0xdc, 0xd4, 0x9d, 0xd8, 0x83, 0x42, 0xab, 0x4f, 0x85, 0x16, 0xfa, 0x06, 0x14, 0x2c, 0xf9, 0x5b,
0x66, 0xfe, 0xb5, 0xf0, 0xb2, 0x0b, 0x65, 0xce, 0x87, 0xb5, 0x32, 0xbf, 0x9e, 0xeb, 0x21, 0x01,
0x47, 0x2a, 0xfa, 0x03, 0x28, 0xef, 0x3e, 0xea, 0x79, 0xd4, 0x0f, 0xf7, 0xf4, 0x0d, 0xc8, 0x13,
0x41, 0x10, 0xd6, 0x0a, 0x31, 0x42, 0x07, 0x62, 0x58, 0x72, 0x39, 0x62, 0x90, 0x47, 0x86, 0xe9,
0x4b, 0xa8, 0x8d, 0x10, 0x63, 0x97, 0x13, 0x71, 0xc0, 0xd3, 0x0f, 0x00, 0x6e, 0x91, 0xc8, 0xf4,
0x36, 0x2c, 0x87, 0x87, 0x2d, 0x89, 0x01, 0x9f, 0x95, 0xca, 0xcb, 0x38, 0xc9, 0xc6, 0xe3, 0xf2,
0xfa, 0x03, 0x28, 0x0a, 0x9c, 0xe0, 0x10, 0x1d, 0x83, 0x96, 0xf6, 0x02, 0xd0, 0x0a, 0x31, 0x3e,
0x33, 0x0d, 0xe3, 0x95, 0x63, 0xe1, 0x40, 0x39, 0xd0, 0x0d, 0xaf, 0x9d, 0x54, 0x1e, 0xae, 0x40,
0x21, 0x0c, 0x53, 0x7a, 0x89, 0xda, 0x8d, 0xd0, 0x10, 0x8e, 0x24, 0x14, 0x6f, 0x27, 0x90, 0xc0,
0xbc, 0x74, 0xce, 0x14, 0x0c, 0xce, 0xbc, 0x18, 0x83, 0x15, 0x4f, 0x3f, 0x86, 0xca, 0xb4, 0x1e,
0xe5, 0x25, 0x50, 0x39, 0x7d, 0x28, 0xfa, 0x2f, 0x35, 0x58, 0x51, 0x2d, 0xa5, 0xdf, 0xbe, 0xf4,
0x4e, 0x2e, 0xbe, 0xcd, 0x95, 0x8c, 0xfc, 0x5a, 0x83, 0x4b, 0x89, 0xa5, 0xcd, 0xb4, 0xe3, 0x33,
0x04, 0xa5, 0x16, 0x47, 0x76, 0x86, 0xe2, 0x68, 0x40, 0x69, 0xcf, 0xb5, 0x7d, 0xdb, 0x70, 0xec,
0x1f, 0x12, 0x7a, 0x71, 0xff, 0xa3, 0xff, 0x49, 0x83, 0x45, 0x45, 0x83, 0xa1, 0x07, 0xb0, 0xc0,
0x01, 0xcb, 0x76, 0x3b, 0xb2, 0x37, 0x4b, 0x79, 0x65, 0x2a, 0x46, 0xe2, 0x75, 0xb5, 0x03, 0x4b,
0x38, 0x34, 0x89, 0xda, 0x90, 0xa7, 0x84, 0xf5, 0x1d, 0x5f, 0x62, 0xf5, 0x95, 0x94, 0x97, 0x9b,
0x6f, 0xf8, 0x7d, 0x16, 0x80, 0x1a, 0x16, 0xfa, 0x58, 0xda, 0xd1, 0xff, 0x9a, 0x81, 0xf2, 0x6d,
0xe3, 0x88, 0x38, 0x87, 0xc4, 0x21, 0xa6, 0xef, 0x51, 0xf4, 0x23, 0x28, 0x75, 0x0d, 0xdf, 0x3c,
0x11, 0xd4, 0xb0, 0xc3, 0x6c, 0xa5, 0x73, 0x94, 0xb0, 0x54, 0xdf, 0x8f, 0xcd, 0xec, 0xba, 0x3e,
0x1d, 0x34, 0x5f, 0x91, 0x0b, 0x2b, 0x29, 0x1c, 0xac, 0x7a, 0x13, 0x63, 0x81, 0xf8, 0xde, 0x7d,
0xd4, 0xe3, 0x57, 0xe9, 0xec, 0xd3, 0x48, 0x22, 0x04, 0x4c, 0xde, 0xeb, 0xdb, 0x94, 0x74, 0x89,
0xeb, 0xc7, 0x63, 0xc1, 0xfe, 0x98, 0x7d, 0x3c, 0xe1, 0x71, 0xed, 0x06, 0xac, 0x8c, 0x07, 0x8f,
0x56, 0x20, 0x7b, 0x4a, 0x06, 0x41, 0x2d, 0x60, 0xfe, 0x13, 0x5d, 0x82, 0xdc, 0x99, 0xe1, 0xf4,
0x25, 0xfe, 0xe0, 0xe0, 0xe3, 0x7a, 0xe6, 0x9a, 0xa6, 0xff, 0x56, 0x83, 0xca, 0xb4, 0x40, 0xd0,
0xe7, 0x14, 0x43, 0xcd, 0x92, 0x8c, 0x2a, 0xfb, 0x0e, 0x19, 0x04, 0x56, 0x77, 0xa1, 0xe0, 0xf5,
0xf8, 0x20, 0xe7, 0x51, 0x59, 0xe7, 0x6f, 0x86, 0xb5, 0x7b, 0x20, 0xe9, 0xe7, 0xc3, 0xda, 0xe5,
0x84, 0xf9, 0x90, 0x81, 0x23, 0x55, 0x7e, 0xa3, 0x89, 0x78, 0xf8, 0x2d, 0x1b, 0xdd, 0x68, 0xf7,
0x04, 0x05, 0x4b, 0x8e, 0xfe, 0x07, 0x0d, 0xe6, 0x45, 0x93, 0xf8, 0x00, 0x0a, 0x3c, 0x7f, 0x96,
0xe1, 0x1b, 0x22, 0xae, 0xd4, 0x23, 0x05, 0xd7, 0xde, 0x27, 0xbe, 0x11, 0x9f, 0xaf, 0x90, 0x82,
0x23, 0x8b, 0x08, 0x43, 0xce, 0xf6, 0x49, 0x37, 0xdc, 0xc8, 0xb7, 0xa6, 0x9a, 0x96, 0x03, 0x6d,
0x1d, 0x1b, 0x0f, 0x77, 0x1f, 0xf9, 0xc4, 0xe5, 0x9b, 0x11, 0x83, 0xc1, 0x1e, 0xb7, 0x81, 0x03,
0x53, 0xfa, 0xef, 0x34, 0x88, 0x5c, 0xf1, 0xe3, 0xce, 0x88, 0x73, 0x7c, 0xdb, 0x76, 0x4f, 0x65,
0x5a, 0xa3, 0x70, 0x0e, 0x25, 0x1d, 0x47, 0x12, 0xcf, 0xbb, 0x10, 0x33, 0xb3, 0x5d, 0x88, 0xdc,
0xa1, 0xe9, 0xb9, 0xbe, 0xed, 0xf6, 0x27, 0xf0, 0x65, 0x47, 0xd2, 0x71, 0x24, 0xa1, 0xff, 0x3b,
0x03, 0x25, 0x1e, 0x6b, 0x78, 0x23, 0x7f, 0x0d, 0xca, 0x8e, 0xba, 0x7b, 0x32, 0xe6, 0xcb, 0xd2,
0x44, 0xf2, 0x3c, 0xe2, 0xa4, 0x2c, 0x57, 0x3e, 0xb6, 0x89, 0x63, 0x45, 0xca, 0x99, 0xa4, 0xf2,
0x4d, 0x95, 0x89, 0x93, 0xb2, 0x1c, 0x67, 0x1f, 0xf2, 0xba, 0x96, 0x9d, 0x57, 0x94, 0xda, 0x6f,
0x73, 0x22, 0x0e, 0x78, 0xcf, 0xcb, 0xcf, 0xfc, 0x8c, 0xf9, 0xb9, 0x0e, 0x4b, 0x7c, 0x23, 0xbd,
0xbe, 0x1f, 0xb6, 0xa7, 0x39, 0xd1, 0x24, 0xa1, 0xd1, 0xb0, 0xb6, 0xf4, 0x6e, 0x82, 0x83, 0xc7,
0x24, 0x79, 0x8c, 0x8e, 0xdd, 0xb5, 0xfd, 0xca, 0x82, 0x50, 0x89, 0x62, 0xbc, 0xcd, 0x89, 0x38,
0xe0, 0x25, 0x36, 0xa0, 0x70, 0xe1, 0x06, 0xbc, 0x07, 0xc5, 0x7d, 0xdb, 0xa4, 0x1e, 0xf7, 0xcc,
0xaf, 0x11, 0x96, 0xe8, 0x99, 0x23, 0xb8, 0x0d, 0x23, 0x0a, 0xf9, 0x3c, 0x14, 0xd7, 0x70, 0xbd,
0xa0, 0x33, 0xce, 0xc5, 0xa1, 0xdc, 0xe1, 0x44, 0x1c, 0xf0, 0xae, 0x5f, 0xe2, 0xb7, 0xc7, 0xcf,
0x9f, 0xd4, 0xe6, 0x1e, 0x3f, 0xa9, 0xcd, 0x7d, 0xf0, 0x44, 0xde, 0x24, 0xff, 0x04, 0x80, 0x83,
0xa3, 0x1f, 0x10, 0x33, 0xa8, 0xd0, 0x8b, 0x27, 0x69, 0xde, 0x11, 0xc8, 0x07, 0x1c, 0x31, 0x75,
0x66, 0xc6, 0x3a, 0x02, 0x85, 0x87, 0x13, 0x92, 0xa8, 0x01, 0xc5, 0x68, 0xba, 0x96, 0xd5, 0xb8,
0x2a, 0xd5, 0x8a, 0xd1, 0x08, 0x8e, 0x63, 0x99, 0xc4, 0x71, 0x99, 0xbf, 0xf0, 0xb8, 0x34, 0x21,
0xdb, 0xb7, 0x2d, 0xb1, 0x81, 0xc5, 0xe6, 0x97, 0x42, 0xb8, 0xba, 0xbb, 0xd7, 0x3a, 0x1f, 0xd6,
0x5e, 0x9b, 0xf6, 0x34, 0xe5, 0x0f, 0x7a, 0x84, 0xd5, 0xef, 0xee, 0xb5, 0x30, 0x57, 0x7e, 0x5e,
0x49, 0xe5, 0x67, 0x2c, 0xa9, 0x2d, 0x00, 0xb9, 0x6a, 0xae, 0x1d, 0xd4, 0x46, 0xf4, 0xd2, 0x70,
0x2b, 0xe2, 0x60, 0x45, 0x0a, 0x31, 0x58, 0x35, 0xf9, 0xc0, 0x65, 0x7b, 0x2e, 0xdf, 0x7a, 0xe6,
0x1b, 0xdd, 0x60, 0xd6, 0x2e, 0x6d, 0x7d, 0x21, 0x1d, 0xbe, 0x71, 0xb5, 0xe6, 0xab, 0xd2, 0xcd,
0xea, 0xce, 0xb8, 0x31, 0x3c, 0x69, 0x1f, 0x79, 0xb0, 0x6a, 0xc9, 0xa1, 0x23, 0x76, 0x5a, 0x9c,
0xd9, 0xe9, 0x65, 0xee, 0xb0, 0x35, 0x6e, 0x08, 0x4f, 0xda, 0x46, 0xdf, 0x83, 0xb5, 0x90, 0x38,
0x39, 0xf9, 0x55, 0x40, 0x64, 0xaa, 0xca, 0x07, 0xd8, 0xd6, 0x54, 0x29, 0xfc, 0x02, 0x0b, 0xc8,
0x82, 0xbc, 0x13, 0xf4, 0x02, 0x25, 0x81, 0xdf, 0x5f, 0x4f, 0xb7, 0x8a, 0xb8, 0xfa, 0xeb, 0x6a,
0x0f, 0x10, 0x4d, 0x36, 0xf2, 0xfa, 0x97, 0xb6, 0xd1, 0x23, 0x28, 0x19, 0xae, 0xeb, 0xf9, 0x46,
0x30, 0x8b, 0x2e, 0x0a, 0x57, 0xdb, 0x33, 0xbb, 0xda, 0x8e, 0x6d, 0x8c, 0xf5, 0x1c, 0x0a, 0x07,
0xab, 0xae, 0xd0, 0x43, 0x58, 0xf6, 0x1e, 0xba, 0x84, 0x62, 0x72, 0x4c, 0x28, 0x71, 0x4d, 0xc2,
0x2a, 0x65, 0xe1, 0xfd, 0xcb, 0x29, 0xbd, 0x27, 0x94, 0xe3, 0x92, 0x4e, 0xd2, 0x19, 0x1e, 0xf7,
0x82, 0xea, 0x00, 0xc7, 0xb6, 0x2b, 0x3b, 0xc7, 0xca, 0x52, 0xfc, 0x5c, 0x74, 0x33, 0xa2, 0x62,
0x45, 0x02, 0x7d, 0x05, 0x4a, 0xa6, 0xd3, 0x67, 0x3e, 0x09, 0xde, 0xa5, 0x96, 0xc5, 0x09, 0x8a,
0xd6, 0xb7, 0x13, 0xb3, 0xb0, 0x2a, 0x87, 0x4e, 0x60, 0xd1, 0x56, 0x5a, 0xd4, 0xca, 0x8a, 0xa8,
0xc5, 0xad, 0x99, 0xfb, 0x52, 0xd6, 0x5c, 0xe1, 0x48, 0xa4, 0x52, 0x70, 0xc2, 0xf2, 0xda, 0x57,
0xa1, 0xf4, 0x5f, 0x76, 0x4c, 0xbc, 0xe3, 0x1a, 0xdf, 0xba, 0x99, 0x3a, 0xae, 0x3f, 0x67, 0x60,
0x29, 0x99, 0xf0, 0x68, 0x32, 0xd1, 0xa6, 0xbe, 0x33, 0x86, 0xa8, 0x9c, 0x9d, 0x8a, 0xca, 0x12,
0xfc, 0xe6, 0x5f, 0x06, 0xfc, 0xb6, 0x00, 0x8c, 0x9e, 0x1d, 0xe2, 0x5e, 0x80, 0xa3, 0x11, 0x72,
0xc5, 0x2f, 0x5f, 0x58, 0x91, 0x12, 0x2f, 0x89, 0x9e, 0xeb, 0x53, 0xcf, 0x71, 0x08, 0x15, 0x58,
0x59, 0x90, 0x2f, 0x89, 0x11, 0x15, 0x2b, 0x12, 0xe8, 0x26, 0xa0, 0x23, 0xc7, 0x33, 0x4f, 0x45,
0x0a, 0xc2, 0x73, 0x2e, 0x50, 0xb2, 0x10, 0xbc, 0x09, 0x35, 0x27, 0xb8, 0xf8, 0x39, 0x1a, 0xfa,
0x02, 0xe4, 0xda, 0xbc, 0x09, 0xd0, 0x0f, 0x20, 0xf9, 0x9c, 0x83, 0x6e, 0x04, 0x99, 0xd0, 0xa2,
0xf7, 0x96, 0xd9, 0xb2, 0xa0, 0x5f, 0x81, 0x22, 0xf6, 0x3c, 0xbf, 0x6d, 0xf8, 0x27, 0x0c, 0xd5,
0x20, 0xd7, 0xe3, 0x3f, 0xe4, 0xbb, 0x97, 0x78, 0xb3, 0x15, 0x1c, 0x1c, 0xd0, 0xf5, 0x5f, 0x68,
0xf0, 0xea, 0xd4, 0xf7, 0x36, 0x9e, 0x51, 0x33, 0xfa, 0x92, 0x21, 0x45, 0x19, 0x8d, 0xe5, 0xb0,
0x22, 0xc5, 0xfb, 0xa6, 0xc4, 0x23, 0xdd, 0x78, 0xdf, 0x94, 0xf0, 0x86, 0x93, 0xb2, 0xfa, 0xbf,
0x32, 0x90, 0x0f, 0x86, 0xa8, 0xff, 0x71, 0xab, 0xfc, 0x06, 0xe4, 0x99, 0xf0, 0x23, 0xc3, 0x8b,
0xd0, 0x32, 0xf0, 0x8e, 0x25, 0x97, 0x37, 0x31, 0x5d, 0xc2, 0x98, 0xd1, 0x09, 0x8b, 0x37, 0x6a,
0x62, 0xf6, 0x03, 0x32, 0x0e, 0xf9, 0xe8, 0x6d, 0x3e, 0x33, 0x1a, 0x2c, 0xea, 0xe2, 0xaa, 0xa1,
0x49, 0x2c, 0xa8, 0xe7, 0xc3, 0xda, 0xa2, 0x34, 0x2e, 0xbe, 0xb1, 0x94, 0x46, 0xf7, 0x61, 0xc1,
0x22, 0xbe, 0x61, 0x3b, 0x41, 0xf3, 0x96, 0xfa, 0x61, 0x30, 0x30, 0xd6, 0x0a, 0x54, 0x9b, 0x25,
0x1e, 0x93, 0xfc, 0xc0, 0xa1, 0x41, 0x7e, 0xf0, 0x4c, 0xcf, 0x0a, 0x9e, 0xd6, 0x73, 0xf1, 0xc1,
0xdb, 0xf1, 0x2c, 0x82, 0x05, 0x47, 0x7f, 0xac, 0x41, 0x29, 0xb0, 0xb4, 0x63, 0xf4, 0x19, 0x41,
0x9b, 0xd1, 0x2a, 0x82, 0xed, 0x0e, 0xef, 0xe4, 0xf9, 0x77, 0x07, 0x3d, 0x72, 0x3e, 0xac, 0x15,
0x85, 0x18, 0xff, 0x88, 0x16, 0xa0, 0xe4, 0x28, 0x73, 0x41, 0x8e, 0x5e, 0x87, 0x9c, 0x68, 0x94,
0x65, 0x32, 0xa3, 0x46, 0x4f, 0x34, 0xd3, 0x38, 0xe0, 0xe9, 0x1f, 0x67, 0xa0, 0x9c, 0x58, 0x5c,
0x8a, 0xae, 0x2e, 0x7a, 0xd8, 0xc8, 0xa4, 0x78, 0x2c, 0x9b, 0xfe, 0x0f, 0x91, 0xef, 0x40, 0xde,
0xe4, 0xeb, 0x0b, 0xff, 0x23, 0xb5, 0x39, 0xcb, 0x56, 0x88, 0xcc, 0xc4, 0x95, 0x24, 0x3e, 0x19,
0x96, 0x06, 0xd1, 0x2d, 0x58, 0xa5, 0xc4, 0xa7, 0x83, 0xed, 0x63, 0x9f, 0x50, 0xb5, 0x5b, 0xcf,
0xc5, 0x7d, 0x0f, 0x1e, 0x17, 0xc0, 0x93, 0x3a, 0x21, 0x54, 0xe6, 0x5f, 0x02, 0x2a, 0x75, 0x07,
0xe6, 0xff, 0x8f, 0x3d, 0xfa, 0x77, 0xa1, 0x18, 0x77, 0x51, 0x9f, 0xb0, 0x4b, 0xfd, 0xfb, 0x50,
0xe0, 0xd5, 0x18, 0x76, 0xff, 0x17, 0xdc, 0x44, 0xc9, 0x3b, 0x22, 0x93, 0xe6, 0x8e, 0xd0, 0xaf,
0x42, 0xf9, 0x6e, 0xcf, 0x9a, 0xf1, 0xdf, 0x09, 0x5b, 0x10, 0xfc, 0x73, 0x8c, 0x43, 0x70, 0x30,
0x94, 0x2b, 0x10, 0xac, 0x4e, 0xd8, 0xca, 0xab, 0xd8, 0x4f, 0x35, 0x00, 0x31, 0x21, 0xee, 0x9e,
0x11, 0xd7, 0xe7, 0xab, 0xe1, 0xdb, 0x36, 0xbe, 0x1a, 0x71, 0xf6, 0x04, 0x07, 0xdd, 0x85, 0xbc,
0x27, 0x5a, 0x32, 0xf9, 0x4c, 0x35, 0xe3, 0xc4, 0x1f, 0x95, 0x6a, 0xd0, 0xd7, 0x61, 0x69, 0xac,
0xb9, 0xf1, 0xf4, 0x59, 0x75, 0xee, 0xc3, 0x67, 0xd5, 0xb9, 0x8f, 0x9e, 0x55, 0xe7, 0xde, 0x1f,
0x55, 0xb5, 0xa7, 0xa3, 0xaa, 0xf6, 0xe1, 0xa8, 0xaa, 0x7d, 0x34, 0xaa, 0x6a, 0x1f, 0x8f, 0xaa,
0xda, 0xe3, 0xbf, 0x57, 0xe7, 0xee, 0x67, 0xce, 0x36, 0xff, 0x13, 0x00, 0x00, 0xff, 0xff, 0xed,
0xf9, 0xac, 0x4b, 0x08, 0x20, 0x00, 0x00,
// 2453 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0x4d, 0x6c, 0x23, 0x49,
0xf5, 0x4f, 0xdb, 0xb1, 0x63, 0x3f, 0xc7, 0xf9, 0xa8, 0x9d, 0xfd, 0xff, 0xbd, 0x91, 0x88, 0xb3,
0xbd, 0x68, 0x95, 0x85, 0x59, 0x9b, 0x64, 0x61, 0x35, 0x0c, 0x30, 0x90, 0x8e, 0x33, 0x43, 0xd8,
0xc9, 0xc4, 0xaa, 0xec, 0x0c, 0x62, 0x18, 0x21, 0x3a, 0xdd, 0x15, 0xa7, 0x49, 0xbb, 0xdb, 0x5b,
0xd5, 0xce, 0x8c, 0xe1, 0xc0, 0x1e, 0x40, 0x80, 0x84, 0xd0, 0x1c, 0x39, 0xa1, 0x1d, 0xc1, 0x85,
0x2b, 0x27, 0x4e, 0x9c, 0x90, 0x98, 0xe3, 0x4a, 0x5c, 0xf6, 0x80, 0xac, 0x9d, 0x70, 0xe0, 0x84,
0xb8, 0xe7, 0x80, 0x50, 0x55, 0x57, 0x77, 0x57, 0xdb, 0xf1, 0xa4, 0xcd, 0x2c, 0x88, 0x53, 0xdc,
0xef, 0xe3, 0xf7, 0x5e, 0x55, 0xbd, 0xfa, 0xd5, 0xab, 0x0a, 0xec, 0x9d, 0x5c, 0x63, 0x0d, 0xc7,
0x6f, 0x9e, 0xf4, 0x0f, 0x09, 0xf5, 0x48, 0x40, 0x58, 0xf3, 0x94, 0x78, 0xb6, 0x4f, 0x9b, 0x52,
0x61, 0xf6, 0x9c, 0xae, 0x69, 0x1d, 0x3b, 0x1e, 0xa1, 0x83, 0x66, 0xef, 0xa4, 0xc3, 0x05, 0xac,
0xd9, 0x25, 0x81, 0xd9, 0x3c, 0xdd, 0x68, 0x76, 0x88, 0x47, 0xa8, 0x19, 0x10, 0xbb, 0xd1, 0xa3,
0x7e, 0xe0, 0xa3, 0x4f, 0x87, 0x5e, 0x0d, 0xd5, 0xab, 0xd1, 0x3b, 0xe9, 0x70, 0x01, 0x6b, 0x70,
0xaf, 0xc6, 0xe9, 0xc6, 0xca, 0x9b, 0x1d, 0x27, 0x38, 0xee, 0x1f, 0x36, 0x2c, 0xbf, 0xdb, 0xec,
0xf8, 0x1d, 0xbf, 0x29, 0x9c, 0x0f, 0xfb, 0x47, 0xe2, 0x4b, 0x7c, 0x88, 0x5f, 0x21, 0xe8, 0xca,
0xc4, 0x54, 0x68, 0xdf, 0x0b, 0x9c, 0x2e, 0x19, 0xcd, 0x62, 0xe5, 0xed, 0xcb, 0x1c, 0x98, 0x75,
0x4c, 0xba, 0xe6, 0xa8, 0x9f, 0xfe, 0xa7, 0x3c, 0x94, 0xb6, 0xda, 0xbb, 0xb7, 0xa8, 0xdf, 0xef,
0xa1, 0x35, 0x98, 0xf5, 0xcc, 0x2e, 0xa9, 0x69, 0x6b, 0xda, 0x7a, 0xd9, 0x98, 0x7f, 0x3a, 0xac,
0xcf, 0x9c, 0x0d, 0xeb, 0xb3, 0x77, 0xcc, 0x2e, 0xc1, 0x42, 0x83, 0x5c, 0x28, 0x9d, 0x12, 0xca,
0x1c, 0xdf, 0x63, 0xb5, 0xdc, 0x5a, 0x7e, 0xbd, 0xb2, 0x79, 0xa3, 0x91, 0x65, 0xfc, 0x0d, 0x11,
0xe0, 0x5e, 0xe8, 0x7a, 0xd3, 0xa7, 0x2d, 0x87, 0x59, 0xfe, 0x29, 0xa1, 0x03, 0x63, 0x49, 0x46,
0x29, 0x49, 0x25, 0xc3, 0x71, 0x04, 0xf4, 0x23, 0x0d, 0x96, 0x7a, 0x94, 0x1c, 0x11, 0x4a, 0x89,
0x2d, 0xf5, 0xb5, 0xfc, 0x9a, 0xf6, 0x09, 0x84, 0xad, 0xc9, 0xb0, 0x4b, 0xed, 0x11, 0x7c, 0x3c,
0x16, 0x11, 0xfd, 0x5a, 0x83, 0x15, 0x46, 0xe8, 0x29, 0xa1, 0x5b, 0xb6, 0x4d, 0x09, 0x63, 0xc6,
0x60, 0xdb, 0x75, 0x88, 0x17, 0x6c, 0xef, 0xb6, 0x30, 0xab, 0xcd, 0x8a, 0x79, 0xf8, 0x6a, 0xb6,
0x84, 0x0e, 0x26, 0xe1, 0x18, 0xba, 0xcc, 0x68, 0x65, 0xa2, 0x09, 0xc3, 0xcf, 0x49, 0x43, 0x3f,
0x82, 0xf9, 0x68, 0x21, 0x6f, 0x3b, 0x2c, 0x40, 0xf7, 0xa0, 0xd8, 0xe1, 0x1f, 0xac, 0xa6, 0x89,
0x04, 0x1b, 0xd9, 0x12, 0x8c, 0x30, 0x8c, 0x05, 0x99, 0x4f, 0x51, 0x7c, 0x32, 0x2c, 0xd1, 0xf4,
0x9f, 0xcd, 0x42, 0x65, 0xab, 0xbd, 0x8b, 0x09, 0xf3, 0xfb, 0xd4, 0x22, 0x19, 0x8a, 0x66, 0x13,
0x80, 0xff, 0x65, 0x3d, 0xd3, 0x22, 0x76, 0x2d, 0xb7, 0xa6, 0xad, 0x97, 0x0c, 0x24, 0xed, 0xe0,
0x4e, 0xac, 0xc1, 0x8a, 0x15, 0x47, 0x3d, 0x71, 0x3c, 0x5b, 0xac, 0xb6, 0x82, 0xfa, 0x8e, 0xe3,
0xd9, 0x58, 0x68, 0xd0, 0x6d, 0x28, 0x9c, 0x12, 0x7a, 0xc8, 0xe7, 0x9f, 0x17, 0xc4, 0x67, 0xb3,
0x0d, 0xef, 0x1e, 0x77, 0x31, 0xca, 0x67, 0xc3, 0x7a, 0x41, 0xfc, 0xc4, 0x21, 0x08, 0x6a, 0x00,
0xb0, 0x63, 0x9f, 0x06, 0x22, 0x9d, 0x5a, 0x61, 0x2d, 0xbf, 0x5e, 0x36, 0x16, 0x78, 0x7e, 0x07,
0xb1, 0x14, 0x2b, 0x16, 0xe8, 0x1a, 0xcc, 0x33, 0xc7, 0xeb, 0xf4, 0x5d, 0x93, 0x72, 0x41, 0xad,
0x28, 0xf2, 0xbc, 0x22, 0xf3, 0x9c, 0x3f, 0x50, 0x74, 0x38, 0x65, 0xc9, 0x23, 0x59, 0x66, 0x40,
0x3a, 0x3e, 0x75, 0x08, 0xab, 0xcd, 0x25, 0x91, 0xb6, 0x63, 0x29, 0x56, 0x2c, 0xd0, 0x6b, 0x50,
0x10, 0x33, 0x5f, 0x2b, 0x89, 0x10, 0x55, 0x19, 0xa2, 0x20, 0x96, 0x05, 0x87, 0x3a, 0xf4, 0x06,
0xcc, 0xc9, 0x5d, 0x53, 0x2b, 0x0b, 0xb3, 0x45, 0x69, 0x36, 0x17, 0x95, 0x75, 0xa4, 0x47, 0xdf,
0x00, 0xc4, 0x02, 0x9f, 0x9a, 0x1d, 0x22, 0x55, 0x5f, 0x37, 0xd9, 0x71, 0x0d, 0x84, 0xd7, 0x8a,
0xf4, 0x42, 0x07, 0x63, 0x16, 0xf8, 0x02, 0x2f, 0xfd, 0x77, 0x1a, 0x2c, 0x2a, 0xb5, 0x20, 0xea,
0xee, 0x1a, 0xcc, 0x77, 0x94, 0x5d, 0x27, 0xeb, 0x22, 0x9e, 0x19, 0x75, 0x47, 0xe2, 0x94, 0x25,
0x22, 0x50, 0xa6, 0x12, 0x29, 0x62, 0x97, 0x8d, 0xcc, 0x45, 0x1b, 0xe5, 0x90, 0x44, 0x52, 0x84,
0x0c, 0x27, 0xc8, 0xfa, 0xdf, 0x34, 0x51, 0xc0, 0x11, 0xdf, 0xa0, 0x75, 0x85, 0xd3, 0x34, 0xb1,
0x1c, 0xf3, 0x13, 0xf8, 0xe8, 0x12, 0x22, 0xc8, 0xfd, 0x4f, 0x10, 0xc1, 0xf5, 0xd2, 0x2f, 0x3f,
0xa8, 0xcf, 0xbc, 0xff, 0x97, 0xb5, 0x19, 0xfd, 0x2d, 0xa8, 0x6e, 0x53, 0x62, 0x06, 0x64, 0xbf,
0x17, 0x88, 0x01, 0xe8, 0x50, 0xb4, 0xe9, 0x00, 0xf7, 0x3d, 0x39, 0x50, 0xe0, 0xfb, 0xbb, 0x25,
0x24, 0x58, 0x6a, 0xf4, 0x9f, 0xe4, 0xa1, 0xda, 0x22, 0x2e, 0x49, 0xbc, 0x6e, 0x02, 0xea, 0x50,
0xd3, 0x22, 0x6d, 0x42, 0x1d, 0xdf, 0x3e, 0x20, 0x96, 0xef, 0xd9, 0x4c, 0xac, 0x6b, 0xde, 0xf8,
0x3f, 0x5e, 0x2d, 0xb7, 0xc6, 0xb4, 0xf8, 0x02, 0x0f, 0xe4, 0x42, 0xb5, 0x47, 0xc5, 0x6f, 0x27,
0x90, 0x27, 0x08, 0xdf, 0xb9, 0x6f, 0x65, 0x9b, 0xb0, 0xb6, 0xea, 0x6a, 0x2c, 0x9f, 0x0d, 0xeb,
0xd5, 0x94, 0x08, 0xa7, 0xc1, 0xd1, 0xd7, 0x60, 0xc9, 0xa7, 0xbd, 0x63, 0xd3, 0x6b, 0x91, 0x1e,
0xf1, 0x6c, 0xe2, 0x05, 0x4c, 0xb0, 0x49, 0xc9, 0xb8, 0xc2, 0x79, 0x7f, 0x7f, 0x44, 0x87, 0xc7,
0xac, 0xd1, 0x7d, 0x58, 0xee, 0x51, 0xbf, 0x67, 0x76, 0x4c, 0x8e, 0xd8, 0xf6, 0x5d, 0xc7, 0x1a,
0x08, 0xb6, 0x29, 0x1b, 0x57, 0xcf, 0x86, 0xf5, 0xe5, 0xf6, 0xa8, 0xf2, 0x7c, 0x58, 0x7f, 0x49,
0x4c, 0x1d, 0x97, 0x24, 0x4a, 0x3c, 0x0e, 0xa3, 0xac, 0x44, 0x61, 0xe2, 0x4a, 0xec, 0x42, 0xa9,
0xd5, 0xa7, 0xc2, 0x0b, 0x7d, 0x05, 0x4a, 0xb6, 0xfc, 0x2d, 0x67, 0xfe, 0xd5, 0xe8, 0xe0, 0x8c,
0x6c, 0xce, 0x87, 0xf5, 0x2a, 0x3f, 0xea, 0x1b, 0x91, 0x00, 0xc7, 0x2e, 0xfa, 0x03, 0xa8, 0xee,
0x3c, 0xea, 0xf9, 0x34, 0x88, 0xd6, 0xf4, 0x75, 0x28, 0x12, 0x21, 0x10, 0x68, 0xa5, 0x84, 0xed,
0x43, 0x33, 0x2c, 0xb5, 0x9c, 0x7d, 0xc8, 0x23, 0xd3, 0x0a, 0x24, 0x6d, 0xc7, 0xec, 0xb3, 0xc3,
0x85, 0x38, 0xd4, 0xe9, 0xfb, 0x00, 0xb7, 0x48, 0x0c, 0xbd, 0x05, 0x8b, 0xd1, 0x66, 0x4b, 0x73,
0xc0, 0xff, 0x4b, 0xe7, 0x45, 0x9c, 0x56, 0xe3, 0x51, 0x7b, 0xfd, 0x01, 0x94, 0x05, 0x4f, 0x70,
0xba, 0x4f, 0x08, 0x50, 0x7b, 0x0e, 0x01, 0x46, 0xe7, 0x45, 0x6e, 0xd2, 0x79, 0xa1, 0x6c, 0x0b,
0x17, 0xaa, 0xa1, 0x6f, 0x74, 0x84, 0x65, 0x8a, 0x70, 0x15, 0x4a, 0x51, 0x9a, 0x32, 0x4a, 0xdc,
0xba, 0x44, 0x40, 0x38, 0xb6, 0x50, 0xa2, 0x1d, 0x43, 0x8a, 0xf3, 0xb2, 0x05, 0x53, 0xf8, 0x3c,
0xf7, 0x7c, 0x3e, 0x57, 0x22, 0xfd, 0x10, 0x6a, 0x93, 0xfa, 0x9d, 0x17, 0x60, 0xe5, 0xec, 0xa9,
0xe8, 0xbf, 0xd0, 0x60, 0x49, 0x45, 0xca, 0xbe, 0x7c, 0xd9, 0x83, 0x5c, 0xde, 0x19, 0x28, 0x33,
0xf2, 0x2b, 0x0d, 0xae, 0xa4, 0x86, 0x36, 0xd5, 0x8a, 0x4f, 0x91, 0x94, 0x5a, 0x1c, 0xf9, 0x29,
0x8a, 0xa3, 0x09, 0x95, 0x5d, 0xcf, 0x09, 0x1c, 0xd3, 0x75, 0xbe, 0x4f, 0xe8, 0xe5, 0xbd, 0x94,
0xfe, 0x07, 0x0d, 0xe6, 0x15, 0x0f, 0x86, 0x1e, 0xc0, 0x1c, 0x27, 0x2c, 0xc7, 0xeb, 0xc8, 0x3e,
0x2f, 0xe3, 0x91, 0xa9, 0x80, 0x24, 0xe3, 0x6a, 0x87, 0x48, 0x38, 0x82, 0x44, 0x6d, 0x28, 0x52,
0xc2, 0xfa, 0x6e, 0x20, 0xb9, 0xfa, 0x6a, 0xc6, 0xc3, 0x2d, 0x30, 0x83, 0x3e, 0x0b, 0x49, 0x0d,
0x0b, 0x7f, 0x2c, 0x71, 0xf4, 0x3f, 0xe7, 0xa0, 0x7a, 0xdb, 0x3c, 0x24, 0xee, 0x01, 0x71, 0x89,
0x15, 0xf8, 0x14, 0xfd, 0x00, 0x2a, 0x5d, 0x33, 0xb0, 0x8e, 0x85, 0x34, 0xea, 0x56, 0x5b, 0xd9,
0x02, 0xa5, 0x90, 0x1a, 0x7b, 0x09, 0xcc, 0x8e, 0x17, 0xd0, 0x81, 0xf1, 0x92, 0x1c, 0x58, 0x45,
0xd1, 0x60, 0x35, 0x9a, 0xb8, 0x62, 0x88, 0xef, 0x9d, 0x47, 0x3d, 0x7e, 0x94, 0x4e, 0x7f, 0xb3,
0x49, 0xa5, 0x80, 0xc9, 0x7b, 0x7d, 0x87, 0x92, 0x2e, 0xf1, 0x82, 0xe4, 0x8a, 0xb1, 0x37, 0x82,
0x8f, 0xc7, 0x22, 0xae, 0xdc, 0x80, 0xa5, 0xd1, 0xe4, 0xd1, 0x12, 0xe4, 0x4f, 0xc8, 0x20, 0xac,
0x05, 0xcc, 0x7f, 0xa2, 0x2b, 0x50, 0x38, 0x35, 0xdd, 0xbe, 0xe4, 0x1f, 0x1c, 0x7e, 0x5c, 0xcf,
0x5d, 0xd3, 0xf4, 0xdf, 0x68, 0x50, 0x9b, 0x94, 0x08, 0xfa, 0x94, 0x02, 0x64, 0x54, 0x64, 0x56,
0xf9, 0x77, 0xc8, 0x20, 0x44, 0xdd, 0x81, 0x92, 0xdf, 0xe3, 0x97, 0x42, 0x9f, 0xca, 0x3a, 0x7f,
0x23, 0xaa, 0xdd, 0x7d, 0x29, 0x3f, 0x1f, 0xd6, 0x5f, 0x4e, 0xc1, 0x47, 0x0a, 0x1c, 0xbb, 0xf2,
0x13, 0x4d, 0xe4, 0xc3, 0x4f, 0xd9, 0xf8, 0x44, 0xbb, 0x27, 0x24, 0x58, 0x6a, 0xf4, 0xdf, 0x6b,
0x30, 0x2b, 0x9a, 0xc4, 0x07, 0x50, 0xe2, 0xf3, 0x67, 0x9b, 0x81, 0x29, 0xf2, 0xca, 0x7c, 0x3d,
0xe1, 0xde, 0x7b, 0x24, 0x30, 0x93, 0xfd, 0x15, 0x49, 0x70, 0x8c, 0x88, 0x30, 0x14, 0x9c, 0x80,
0x74, 0xa3, 0x85, 0x7c, 0x73, 0x22, 0xb4, 0xbc, 0x1c, 0x37, 0xb0, 0xf9, 0x70, 0xe7, 0x51, 0x40,
0x3c, 0xbe, 0x18, 0x09, 0x19, 0xec, 0x72, 0x0c, 0x1c, 0x42, 0xe9, 0xbf, 0xd5, 0x20, 0x0e, 0xc5,
0xb7, 0x3b, 0x23, 0xee, 0xd1, 0x6d, 0xc7, 0x3b, 0x91, 0xd3, 0x1a, 0xa7, 0x73, 0x20, 0xe5, 0x38,
0xb6, 0xb8, 0xe8, 0x40, 0xcc, 0x4d, 0x77, 0x20, 0xf2, 0x80, 0x96, 0xef, 0x05, 0x8e, 0xd7, 0x1f,
0xe3, 0x97, 0x6d, 0x29, 0xc7, 0xb1, 0x85, 0xfe, 0xcf, 0x1c, 0x54, 0x78, 0xae, 0xd1, 0x89, 0xfc,
0x25, 0xa8, 0xba, 0xea, 0xea, 0xc9, 0x9c, 0x5f, 0x96, 0x10, 0xe9, 0xfd, 0x88, 0xd3, 0xb6, 0xdc,
0xf9, 0xc8, 0x21, 0xae, 0x1d, 0x3b, 0xe7, 0xd2, 0xce, 0x37, 0x55, 0x25, 0x4e, 0xdb, 0x72, 0x9e,
0x7d, 0xc8, 0xeb, 0x5a, 0x76, 0x5e, 0xf1, 0xd4, 0x7e, 0x93, 0x0b, 0x71, 0xa8, 0xbb, 0x68, 0x7e,
0x66, 0xa7, 0x9c, 0x9f, 0xeb, 0xb0, 0xc0, 0x17, 0xd2, 0xef, 0x07, 0x51, 0x7b, 0x5a, 0x10, 0x4d,
0x12, 0x3a, 0x1b, 0xd6, 0x17, 0xde, 0x4d, 0x69, 0xf0, 0x88, 0x25, 0xcf, 0xd1, 0x75, 0xba, 0x4e,
0x50, 0x9b, 0x13, 0x2e, 0x71, 0x8e, 0xb7, 0xb9, 0x10, 0x87, 0xba, 0xd4, 0x02, 0x94, 0x2e, 0x5d,
0x80, 0xf7, 0xa0, 0xbc, 0xe7, 0x58, 0xd4, 0xe7, 0x91, 0xf9, 0x31, 0xc2, 0x52, 0x3d, 0x73, 0x4c,
0xb7, 0x51, 0x46, 0x91, 0x9e, 0xa7, 0xe2, 0x99, 0x9e, 0x1f, 0x76, 0xc6, 0x85, 0x24, 0x95, 0x3b,
0x5c, 0x88, 0x43, 0xdd, 0xf5, 0x2b, 0xfc, 0xf4, 0xf8, 0xe9, 0x93, 0xfa, 0xcc, 0xe3, 0x27, 0xf5,
0x99, 0x0f, 0x9e, 0xc8, 0x93, 0xe4, 0xef, 0x00, 0xb0, 0x7f, 0xf8, 0x3d, 0x62, 0x85, 0x15, 0x7a,
0xf9, 0xad, 0x9c, 0x77, 0x04, 0xf2, 0x31, 0x48, 0xdc, 0x60, 0x73, 0x23, 0x1d, 0x81, 0xa2, 0xc3,
0x29, 0x4b, 0xd4, 0x84, 0x72, 0x7c, 0x53, 0x97, 0xd5, 0xb8, 0x2c, 0xdd, 0xca, 0xf1, 0x75, 0x1e,
0x27, 0x36, 0xa9, 0xed, 0x32, 0x7b, 0xe9, 0x76, 0x31, 0x20, 0xdf, 0x77, 0x6c, 0xb1, 0x80, 0x65,
0xe3, 0x73, 0x11, 0x5d, 0xdd, 0xdd, 0x6d, 0x9d, 0x0f, 0xeb, 0xaf, 0x4e, 0x7a, 0xe6, 0x0a, 0x06,
0x3d, 0xc2, 0x1a, 0x77, 0x77, 0x5b, 0x98, 0x3b, 0x5f, 0x54, 0x52, 0xc5, 0x29, 0x4b, 0x6a, 0x13,
0x40, 0x8e, 0x9a, 0x7b, 0x87, 0xb5, 0x11, 0xbf, 0x5a, 0xdc, 0x8a, 0x35, 0x58, 0xb1, 0x42, 0x0c,
0x96, 0x2d, 0x7e, 0xe1, 0x72, 0x7c, 0x8f, 0x2f, 0x3d, 0x0b, 0xcc, 0x6e, 0x78, 0x6f, 0xaf, 0x6c,
0x7e, 0x26, 0x1b, 0xbf, 0x71, 0x37, 0xe3, 0x15, 0x19, 0x66, 0x79, 0x7b, 0x14, 0x0c, 0x8f, 0xe3,
0x23, 0x1f, 0x96, 0x6d, 0x79, 0xe9, 0x48, 0x82, 0x96, 0xa7, 0x0e, 0xfa, 0x32, 0x0f, 0xd8, 0x1a,
0x05, 0xc2, 0xe3, 0xd8, 0xe8, 0x3b, 0xb0, 0x12, 0x09, 0xc7, 0x6f, 0x7e, 0xe2, 0x25, 0x21, 0x6f,
0xac, 0xf2, 0x0b, 0x6c, 0x6b, 0xa2, 0x15, 0x7e, 0x0e, 0x02, 0xb2, 0xa1, 0xe8, 0x86, 0xbd, 0x40,
0x45, 0xf0, 0xf7, 0x97, 0xb3, 0x8d, 0x22, 0xa9, 0xfe, 0x86, 0xda, 0x03, 0xc4, 0x37, 0x1b, 0x79,
0xfc, 0x4b, 0x6c, 0xf4, 0x08, 0x2a, 0xa6, 0xe7, 0xf9, 0x81, 0x19, 0xde, 0x45, 0xe7, 0x45, 0xa8,
0xad, 0xa9, 0x43, 0x6d, 0x25, 0x18, 0x23, 0x3d, 0x87, 0xa2, 0xc1, 0x6a, 0x28, 0xf4, 0x10, 0x16,
0xfd, 0x87, 0x1e, 0xa1, 0x98, 0x1c, 0x11, 0x4a, 0x3c, 0x8b, 0xb0, 0x5a, 0x55, 0x44, 0xff, 0x7c,
0xc6, 0xe8, 0x29, 0xe7, 0xa4, 0xa4, 0xd3, 0x72, 0x86, 0x47, 0xa3, 0xa0, 0x06, 0xc0, 0x91, 0xe3,
0xc9, 0xce, 0xb1, 0xb6, 0x90, 0x3c, 0x3d, 0xdd, 0x8c, 0xa5, 0x58, 0xb1, 0x40, 0x5f, 0x80, 0x8a,
0xe5, 0xf6, 0x59, 0x40, 0xc2, 0x37, 0xae, 0x45, 0xb1, 0x83, 0xe2, 0xf1, 0x6d, 0x27, 0x2a, 0xac,
0xda, 0xa1, 0x63, 0x98, 0x77, 0x94, 0x16, 0xb5, 0xb6, 0x24, 0x6a, 0x71, 0x73, 0xea, 0xbe, 0x94,
0x19, 0x4b, 0x9c, 0x89, 0x54, 0x09, 0x4e, 0x21, 0xaf, 0x7c, 0x11, 0x2a, 0xff, 0x66, 0xc7, 0xc4,
0x3b, 0xae, 0xd1, 0xa5, 0x9b, 0xaa, 0xe3, 0xfa, 0x63, 0x0e, 0x16, 0xd2, 0x13, 0x1e, 0xdf, 0x4c,
0xb4, 0x89, 0x6f, 0x96, 0x11, 0x2b, 0xe7, 0x27, 0xb2, 0xb2, 0x24, 0xbf, 0xd9, 0x17, 0x21, 0xbf,
0x4d, 0x00, 0xb3, 0xe7, 0x44, 0xbc, 0x17, 0xf2, 0x68, 0xcc, 0x5c, 0xc9, 0xcb, 0x17, 0x56, 0xac,
0xc4, 0xab, 0xa4, 0xef, 0x05, 0xd4, 0x77, 0x5d, 0x42, 0x05, 0x57, 0x96, 0xe4, 0xab, 0x64, 0x2c,
0xc5, 0x8a, 0x05, 0xba, 0x09, 0xe8, 0xd0, 0xf5, 0xad, 0x13, 0x31, 0x05, 0xd1, 0x3e, 0x17, 0x2c,
0x59, 0x0a, 0xdf, 0x84, 0x8c, 0x31, 0x2d, 0xbe, 0xc0, 0x43, 0x9f, 0x83, 0x42, 0x9b, 0x37, 0x01,
0xfa, 0x3e, 0xa4, 0x9f, 0x73, 0xd0, 0x8d, 0x70, 0x26, 0xb4, 0xf8, 0xbd, 0x65, 0xba, 0x59, 0xd0,
0xaf, 0x42, 0x19, 0xfb, 0x7e, 0xd0, 0x36, 0x83, 0x63, 0x86, 0xea, 0x50, 0xe8, 0xf1, 0x1f, 0xf2,
0xdd, 0x4b, 0xbc, 0xff, 0x0a, 0x0d, 0x0e, 0xe5, 0xfa, 0xcf, 0x35, 0x78, 0x65, 0xe2, 0x7b, 0x1b,
0x9f, 0x51, 0x2b, 0xfe, 0x92, 0x29, 0xc5, 0x33, 0x9a, 0xd8, 0x61, 0xc5, 0x8a, 0xf7, 0x4d, 0xa9,
0x47, 0xba, 0xd1, 0xbe, 0x29, 0x15, 0x0d, 0xa7, 0x6d, 0xf5, 0x7f, 0xe4, 0xa0, 0x18, 0x5e, 0xa2,
0xfe, 0xc3, 0xad, 0xf2, 0xeb, 0x50, 0x64, 0x22, 0x8e, 0x4c, 0x2f, 0x66, 0xcb, 0x30, 0x3a, 0x96,
0x5a, 0xde, 0xc4, 0x74, 0x09, 0x63, 0x66, 0x27, 0x2a, 0xde, 0xb8, 0x89, 0xd9, 0x0b, 0xc5, 0x38,
0xd2, 0xa3, 0xb7, 0xf9, 0x9d, 0xd1, 0x64, 0x71, 0x17, 0xb7, 0x1a, 0x41, 0x62, 0x21, 0x3d, 0x1f,
0xd6, 0xe7, 0x25, 0xb8, 0xf8, 0xc6, 0xd2, 0x1a, 0xdd, 0x87, 0x39, 0x9b, 0x04, 0xa6, 0xe3, 0x86,
0xcd, 0x5b, 0xe6, 0x87, 0xc1, 0x10, 0xac, 0x15, 0xba, 0x1a, 0x15, 0x9e, 0x93, 0xfc, 0xc0, 0x11,
0x20, 0xdf, 0x78, 0x96, 0x6f, 0x87, 0xcf, 0xf4, 0x85, 0x64, 0xe3, 0x6d, 0xfb, 0x36, 0xc1, 0x42,
0xa3, 0x3f, 0xd6, 0xa0, 0x12, 0x22, 0x6d, 0x9b, 0x7d, 0x46, 0xd0, 0x46, 0x3c, 0x8a, 0x70, 0xb9,
0xa3, 0x33, 0x79, 0xf6, 0xdd, 0x41, 0x8f, 0x9c, 0x0f, 0xeb, 0x65, 0x61, 0xc6, 0x3f, 0xe2, 0x01,
0x28, 0x73, 0x94, 0xbb, 0x64, 0x8e, 0x5e, 0x83, 0x82, 0x68, 0x94, 0xe5, 0x64, 0xc6, 0x8d, 0x9e,
0x68, 0xa6, 0x71, 0xa8, 0xd3, 0x3f, 0xce, 0x41, 0x35, 0x35, 0xb8, 0x0c, 0x5d, 0x5d, 0xfc, 0xb0,
0x91, 0xcb, 0xf0, 0x58, 0x36, 0xf9, 0x9f, 0x2b, 0xdf, 0x82, 0xa2, 0xc5, 0xc7, 0x17, 0xfd, 0x77,
0x6b, 0x63, 0x9a, 0xa5, 0x10, 0x33, 0x93, 0x54, 0x92, 0xf8, 0x64, 0x58, 0x02, 0xa2, 0x5b, 0xb0,
0x4c, 0x49, 0x40, 0x07, 0x5b, 0x47, 0x01, 0xa1, 0x6a, 0xb7, 0x5e, 0x48, 0xfa, 0x1e, 0x3c, 0x6a,
0x80, 0xc7, 0x7d, 0x22, 0xaa, 0x2c, 0xbe, 0x00, 0x55, 0xea, 0x2e, 0xcc, 0xfe, 0x17, 0x7b, 0xf4,
0x6f, 0x43, 0x39, 0xe9, 0xa2, 0x3e, 0xe1, 0x90, 0xfa, 0x77, 0xa1, 0xc4, 0xab, 0x31, 0xea, 0xfe,
0x2f, 0x39, 0x89, 0xd2, 0x67, 0x44, 0x2e, 0xcb, 0x19, 0xa1, 0xbf, 0x05, 0xd5, 0xbb, 0x3d, 0x7b,
0xca, 0x7f, 0x27, 0x6c, 0x42, 0xf8, 0x8f, 0x36, 0x4e, 0xc1, 0xe1, 0xa5, 0x5c, 0xa1, 0x60, 0xf5,
0x86, 0xad, 0xbc, 0x8a, 0xfd, 0x58, 0x03, 0x10, 0x37, 0xc4, 0x9d, 0x53, 0xe2, 0x05, 0x7c, 0x34,
0x7c, 0xd9, 0x46, 0x47, 0x23, 0xf6, 0x9e, 0xd0, 0xa0, 0xbb, 0x50, 0xf4, 0x45, 0x4b, 0x26, 0x9f,
0xa9, 0xa6, 0xbc, 0xf1, 0xc7, 0xa5, 0x1a, 0xf6, 0x75, 0x58, 0x82, 0x19, 0xeb, 0x4f, 0x9f, 0xad,
0xce, 0x7c, 0xf8, 0x6c, 0x75, 0xe6, 0xa3, 0x67, 0xab, 0x33, 0xef, 0x9f, 0xad, 0x6a, 0x4f, 0xcf,
0x56, 0xb5, 0x0f, 0xcf, 0x56, 0xb5, 0x8f, 0xce, 0x56, 0xb5, 0x8f, 0xcf, 0x56, 0xb5, 0xc7, 0x7f,
0x5d, 0x9d, 0xb9, 0x9f, 0x3b, 0xdd, 0xf8, 0x57, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd1, 0x3d, 0xb9,
0xdd, 0x54, 0x20, 0x00, 0x00,
}

View File

@ -92,6 +92,16 @@ message APIResource {
// categories is a list of the grouped resources this resource belongs to (e.g. 'all')
repeated string categories = 7;
// The hash value of the storage version, the version this resource is
// converted to when written to the data store. Value must be treated
// as opaque by clients. Only equality comparison on the value is valid.
// This is an alpha feature and may change or be removed in the future.
// The field is populated by the apiserver only if the
// StorageVersionHash feature gate is enabled.
// This field will remain optional even if it graduates.
// +optional
optional string storageVersionHash = 10;
}
// APIResourceList is a list of APIResource, it is used to expose the name of the

View File

@ -899,6 +899,15 @@ type APIResource struct {
ShortNames []string `json:"shortNames,omitempty" protobuf:"bytes,5,rep,name=shortNames"`
// categories is a list of the grouped resources this resource belongs to (e.g. 'all')
Categories []string `json:"categories,omitempty" protobuf:"bytes,7,rep,name=categories"`
// The hash value of the storage version, the version this resource is
// converted to when written to the data store. Value must be treated
// as opaque by clients. Only equality comparison on the value is valid.
// This is an alpha feature and may change or be removed in the future.
// The field is populated by the apiserver only if the
// StorageVersionHash feature gate is enabled.
// This field will remain optional even if it graduates.
// +optional
StorageVersionHash string `json:"storageVersionHash,omitempty" protobuf:"bytes,10,opt,name=storageVersionHash"`
}
// Verbs masks the value so protobuf can generate

View File

@ -49,16 +49,17 @@ func (APIGroupList) SwaggerDoc() map[string]string {
}
var map_APIResource = map[string]string{
"": "APIResource specifies the name of a resource and whether it is namespaced.",
"name": "name is the plural name of the resource.",
"singularName": "singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.",
"namespaced": "namespaced indicates if a resource is namespaced or not.",
"group": "group is the preferred group of the resource. Empty implies the group of the containing resource list. For subresources, this may have a different value, for example: Scale\".",
"version": "version is the preferred version of the resource. Empty implies the version of the containing resource list For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource's group)\".",
"kind": "kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')",
"verbs": "verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)",
"shortNames": "shortNames is a list of suggested short names of the resource.",
"categories": "categories is a list of the grouped resources this resource belongs to (e.g. 'all')",
"": "APIResource specifies the name of a resource and whether it is namespaced.",
"name": "name is the plural name of the resource.",
"singularName": "singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.",
"namespaced": "namespaced indicates if a resource is namespaced or not.",
"group": "group is the preferred group of the resource. Empty implies the group of the containing resource list. For subresources, this may have a different value, for example: Scale\".",
"version": "version is the preferred version of the resource. Empty implies the version of the containing resource list For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource's group)\".",
"kind": "kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')",
"verbs": "verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)",
"shortNames": "shortNames is a list of suggested short names of the resource.",
"categories": "categories is a list of the grouped resources this resource belongs to (e.g. 'all')",
"storageVersionHash": "The hash value of the storage version, the version this resource is converted to when written to the data store. Value must be treated as opaque by clients. Only equality comparison on the value is valid. This is an alpha feature and may change or be removed in the future. The field is populated by the apiserver only if the StorageVersionHash feature gate is enabled. This field will remain optional even if it graduates.",
}
func (APIResource) SwaggerDoc() map[string]string {

View File

@ -88,6 +88,15 @@ func Until(f func(), period time.Duration, stopCh <-chan struct{}) {
JitterUntil(f, period, 0.0, true, stopCh)
}
// UntilWithContext loops until context is done, running f every period.
//
// UntilWithContext is syntactic sugar on top of JitterUntilWithContext
// with zero jitter factor and with sliding = true (which means the timer
// for period starts after the f completes).
func UntilWithContext(ctx context.Context, f func(context.Context), period time.Duration) {
JitterUntilWithContext(ctx, f, period, 0.0, true)
}
// NonSlidingUntil loops until stop channel is closed, running f every
// period.
//
@ -98,6 +107,16 @@ func NonSlidingUntil(f func(), period time.Duration, stopCh <-chan struct{}) {
JitterUntil(f, period, 0.0, false, stopCh)
}
// NonSlidingUntilWithContext loops until context is done, running f every
// period.
//
// NonSlidingUntilWithContext is syntactic sugar on top of JitterUntilWithContext
// with zero jitter factor, with sliding = false (meaning the timer for period
// starts at the same time as the function starts).
func NonSlidingUntilWithContext(ctx context.Context, f func(context.Context), period time.Duration) {
JitterUntilWithContext(ctx, f, period, 0.0, false)
}
// JitterUntil loops until stop channel is closed, running f every period.
//
// If jitterFactor is positive, the period is jittered before every run of f.
@ -151,6 +170,19 @@ func JitterUntil(f func(), period time.Duration, jitterFactor float64, sliding b
}
}
// JitterUntilWithContext loops until context is done, running f every period.
//
// If jitterFactor is positive, the period is jittered before every run of f.
// If jitterFactor is not positive, the period is unchanged and not jittered.
//
// If sliding is true, the period is computed after f runs. If it is false then
// period includes the runtime for f.
//
// Cancel context to stop. f may not be invoked if context is already expired.
func JitterUntilWithContext(ctx context.Context, f func(context.Context), period time.Duration, jitterFactor float64, sliding bool) {
JitterUntil(func() { f(ctx) }, period, jitterFactor, sliding, ctx.Done())
}
// Jitter returns a time.Duration between duration and duration + maxFactor *
// duration.
//

View File

@ -21,16 +21,13 @@ import (
"crypto"
"crypto/ecdsa"
"crypto/elliptic"
"crypto/rand"
cryptorand "crypto/rand"
"crypto/rsa"
"crypto/x509"
"crypto/x509/pkix"
"encoding/pem"
"errors"
"fmt"
"io/ioutil"
"math"
"math/big"
"net"
"path"
@ -39,7 +36,6 @@ import (
)
const (
rsaKeySize = 2048
duration365d = time.Hour * 24 * 365
)
@ -59,11 +55,6 @@ type AltNames struct {
IPs []net.IP
}
// NewPrivateKey creates an RSA private key
func NewPrivateKey() (*rsa.PrivateKey, error) {
return rsa.GenerateKey(cryptorand.Reader, rsaKeySize)
}
// NewSelfSignedCACert creates a CA certificate
func NewSelfSignedCACert(cfg Config, key crypto.Signer) (*x509.Certificate, error) {
now := time.Now()
@ -87,39 +78,6 @@ func NewSelfSignedCACert(cfg Config, key crypto.Signer) (*x509.Certificate, erro
return x509.ParseCertificate(certDERBytes)
}
// NewSignedCert creates a signed certificate using the given CA certificate and key
func NewSignedCert(cfg Config, key crypto.Signer, caCert *x509.Certificate, caKey crypto.Signer) (*x509.Certificate, error) {
serial, err := rand.Int(rand.Reader, new(big.Int).SetInt64(math.MaxInt64))
if err != nil {
return nil, err
}
if len(cfg.CommonName) == 0 {
return nil, errors.New("must specify a CommonName")
}
if len(cfg.Usages) == 0 {
return nil, errors.New("must specify at least one ExtKeyUsage")
}
certTmpl := x509.Certificate{
Subject: pkix.Name{
CommonName: cfg.CommonName,
Organization: cfg.Organization,
},
DNSNames: cfg.AltNames.DNSNames,
IPAddresses: cfg.AltNames.IPs,
SerialNumber: serial,
NotBefore: caCert.NotBefore,
NotAfter: time.Now().Add(duration365d).UTC(),
KeyUsage: x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature,
ExtKeyUsage: cfg.Usages,
}
certDERBytes, err := x509.CreateCertificate(cryptorand.Reader, &certTmpl, caCert, key.Public(), caKey)
if err != nil {
return nil, err
}
return x509.ParseCertificate(certDERBytes)
}
// MakeEllipticPrivateKeyPEM creates an ECDSA private key
func MakeEllipticPrivateKeyPEM() ([]byte, error) {
privateKey, err := ecdsa.GenerateKey(elliptic.P256(), cryptorand.Reader)

View File

@ -26,51 +26,19 @@ import (
)
const (
// ECPrivateKeyBlockType is a possible value for pem.Block.Type.
ECPrivateKeyBlockType = "EC PRIVATE KEY"
// RSAPrivateKeyBlockType is a possible value for pem.Block.Type.
RSAPrivateKeyBlockType = "RSA PRIVATE KEY"
// PrivateKeyBlockType is a possible value for pem.Block.Type.
PrivateKeyBlockType = "PRIVATE KEY"
// PublicKeyBlockType is a possible value for pem.Block.Type.
PublicKeyBlockType = "PUBLIC KEY"
// CertificateBlockType is a possible value for pem.Block.Type.
CertificateBlockType = "CERTIFICATE"
// CertificateRequestBlockType is a possible value for pem.Block.Type.
CertificateRequestBlockType = "CERTIFICATE REQUEST"
// CertificateBlockType is a possible value for pem.Block.Type.
CertificateBlockType = "CERTIFICATE"
// PrivateKeyBlockType is a possible value for pem.Block.Type.
PrivateKeyBlockType = "PRIVATE KEY"
)
// EncodePublicKeyPEM returns PEM-encoded public data
func EncodePublicKeyPEM(key *rsa.PublicKey) ([]byte, error) {
der, err := x509.MarshalPKIXPublicKey(key)
if err != nil {
return []byte{}, err
}
block := pem.Block{
Type: PublicKeyBlockType,
Bytes: der,
}
return pem.EncodeToMemory(&block), nil
}
// EncodePrivateKeyPEM returns PEM-encoded private key data
func EncodePrivateKeyPEM(key *rsa.PrivateKey) []byte {
block := pem.Block{
Type: RSAPrivateKeyBlockType,
Bytes: x509.MarshalPKCS1PrivateKey(key),
}
return pem.EncodeToMemory(&block)
}
// EncodeCertPEM returns PEM-endcoded certificate data
func EncodeCertPEM(cert *x509.Certificate) []byte {
block := pem.Block{
Type: CertificateBlockType,
Bytes: cert.Raw,
}
return pem.EncodeToMemory(&block)
}
// ParsePrivateKeyPEM returns a private key parsed from a PEM block in the supplied data.
// Recognizes PEM blocks for "EC PRIVATE KEY", "RSA PRIVATE KEY", or "PRIVATE KEY"
func ParsePrivateKeyPEM(keyData []byte) (interface{}, error) {
@ -147,6 +115,15 @@ func ParsePublicKeysPEM(keyData []byte) ([]interface{}, error) {
return keys, nil
}
// EncodePrivateKeyPEM returns PEM-encoded private key data
func EncodePrivateKeyPEM(key *rsa.PrivateKey) []byte {
block := pem.Block{
Type: RSAPrivateKeyBlockType,
Bytes: x509.MarshalPKCS1PrivateKey(key),
}
return pem.EncodeToMemory(&block)
}
// ParseCertsPEM returns the x509.Certificates contained in the given PEM-encoded byte array
// Returns an error if a certificate could not be parsed, or if the data does not contain any certificates
func ParseCertsPEM(pemCerts []byte) ([]*x509.Certificate, error) {