Merge pull request #59561 from nikhita/customresources-kubectl-get-all

Automatic merge from submit-queue (batch tested with PRs 60302, 57921, 59042, 60126, 59561). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Allow to specify categories for custom resources

Allow to specify categories for custom resources so that we can get it working with `kubectl get all`. 

Adds a new field `Categories` in the CRD spec.

**Release note**:

```release-note
Custom resources can be listed with a set of grouped resources (category) by specifying the categories in the CustomResourceDefinition spec. Example: They can be used with `kubectl get all`, where `all` is a category.
```

/cc sttts liggitt deads2k
pull/6/head
Kubernetes Submit Queue 2018-02-23 14:01:51 -08:00 committed by GitHub
commit 8d406bf48b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 256 additions and 139 deletions

View File

@ -83954,6 +83954,13 @@
"kind"
],
"properties": {
"categories": {
"description": "Categories is a list of grouped resources custom resources belong to (e.g. 'all')",
"type": "array",
"items": {
"type": "string"
}
},
"kind": {
"description": "Kind is the serialized kind of the resource. It is normally CamelCase and singular.",
"type": "string"

View File

@ -49,6 +49,9 @@ type CustomResourceDefinitionNames struct {
Kind string
// ListKind is the serialized kind of the list for this resource. Defaults to <kind>List.
ListKind string
// Categories is a list of grouped resources custom resources belong to (e.g. 'all')
// +optional
Categories []string
}
// ResourceScope is an enum defining the different scopes available to a custom resource

View File

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

View File

@ -88,6 +88,10 @@ message CustomResourceDefinitionNames {
// ListKind is the serialized kind of the list for this resource. Defaults to <kind>List.
optional string listKind = 5;
// Categories is a list of grouped resources custom resources belong to (e.g. 'all')
// +optional
repeated string categories = 6;
}
// CustomResourceDefinitionSpec describes how a user wants their resource to appear

View File

@ -53,6 +53,9 @@ type CustomResourceDefinitionNames struct {
Kind string `json:"kind" protobuf:"bytes,4,opt,name=kind"`
// ListKind is the serialized kind of the list for this resource. Defaults to <kind>List.
ListKind string `json:"listKind,omitempty" protobuf:"bytes,5,opt,name=listKind"`
// Categories is a list of grouped resources custom resources belong to (e.g. 'all')
// +optional
Categories []string `json:"categories,omitempty" protobuf:"bytes,6,rep,name=categories"`
}
// ResourceScope is an enum defining the different scopes available to a custom resource

View File

@ -179,6 +179,7 @@ func autoConvert_v1beta1_CustomResourceDefinitionNames_To_apiextensions_CustomRe
out.ShortNames = *(*[]string)(unsafe.Pointer(&in.ShortNames))
out.Kind = in.Kind
out.ListKind = in.ListKind
out.Categories = *(*[]string)(unsafe.Pointer(&in.Categories))
return nil
}
@ -193,6 +194,7 @@ func autoConvert_apiextensions_CustomResourceDefinitionNames_To_v1beta1_CustomRe
out.ShortNames = *(*[]string)(unsafe.Pointer(&in.ShortNames))
out.Kind = in.Kind
out.ListKind = in.ListKind
out.Categories = *(*[]string)(unsafe.Pointer(&in.Categories))
return nil
}

View File

@ -112,6 +112,11 @@ func (in *CustomResourceDefinitionNames) DeepCopyInto(out *CustomResourceDefinit
*out = make([]string, len(*in))
copy(*out, *in)
}
if in.Categories != nil {
in, out := &in.Categories, &out.Categories
*out = make([]string, len(*in))
copy(*out, *in)
}
return
}

View File

@ -165,7 +165,6 @@ func ValidateCustomResourceDefinitionNames(names *apiextensions.CustomResourceDe
if errs := validationutil.IsDNS1035Label(shortName); len(errs) > 0 {
allErrs = append(allErrs, field.Invalid(fldPath.Child("shortNames").Index(i), shortName, strings.Join(errs, ",")))
}
}
// kind and listKind may not be the same or parsing become ambiguous
@ -173,6 +172,12 @@ func ValidateCustomResourceDefinitionNames(names *apiextensions.CustomResourceDe
allErrs = append(allErrs, field.Invalid(fldPath.Child("listKind"), names.ListKind, "kind and listKind may not be the same"))
}
for i, category := range names.Categories {
if errs := validationutil.IsDNS1035Label(category); len(errs) > 0 {
allErrs = append(allErrs, field.Invalid(fldPath.Child("categories").Index(i), category, strings.Join(errs, ",")))
}
}
return allErrs
}

View File

@ -112,6 +112,11 @@ func (in *CustomResourceDefinitionNames) DeepCopyInto(out *CustomResourceDefinit
*out = make([]string, len(*in))
copy(*out, *in)
}
if in.Categories != nil {
in, out := &in.Categories, &out.Categories
*out = make([]string, len(*in))
copy(*out, *in)
}
return
}

View File

@ -117,6 +117,7 @@ func (c *DiscoveryController) sync(version schema.GroupVersion) error {
Kind: crd.Status.AcceptedNames.Kind,
Verbs: verbs,
ShortNames: crd.Status.AcceptedNames.ShortNames,
Categories: crd.Status.AcceptedNames.Categories,
})
if crd.Spec.Subresources != nil && crd.Spec.Subresources.Status != nil {

View File

@ -459,7 +459,7 @@ func (r *crdHandler) getOrCreateServingInfoFor(crd *apiextensions.CustomResource
statusSpec,
scaleSpec,
),
r.restOptionsGetter,
r.restOptionsGetter, crd.Status.AcceptedNames.Categories,
)
selfLinkPrefix := ""

View File

@ -182,6 +182,8 @@ func (c *NamingConditionController) calculateNamesAndConditions(in *apiextension
newNames.ListKind = requestedNames.ListKind
}
newNames.Categories = requestedNames.Categories
// if we haven't changed the condition, then our names must be good.
if namesAcceptedCondition.Status == apiextensions.ConditionUnknown {
namesAcceptedCondition.Status = apiextensions.ConditionTrue

View File

@ -39,8 +39,8 @@ type CustomResourceStorage struct {
Scale *ScaleREST
}
func NewStorage(resource schema.GroupResource, listKind schema.GroupVersionKind, strategy customResourceStrategy, optsGetter generic.RESTOptionsGetter) CustomResourceStorage {
customResourceREST, customResourceStatusREST := newREST(resource, listKind, strategy, optsGetter)
func NewStorage(resource schema.GroupResource, listKind schema.GroupVersionKind, strategy customResourceStrategy, optsGetter generic.RESTOptionsGetter, categories []string) CustomResourceStorage {
customResourceREST, customResourceStatusREST := newREST(resource, listKind, strategy, optsGetter, categories)
customResourceRegistry := NewRegistry(customResourceREST)
s := CustomResourceStorage{
@ -71,10 +71,11 @@ func NewStorage(resource schema.GroupResource, listKind schema.GroupVersionKind,
// REST implements a RESTStorage for API services against etcd
type REST struct {
*genericregistry.Store
categories []string
}
// newREST returns a RESTStorage object that will work against API services.
func newREST(resource schema.GroupResource, listKind schema.GroupVersionKind, strategy customResourceStrategy, optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
func newREST(resource schema.GroupResource, listKind schema.GroupVersionKind, strategy customResourceStrategy, optsGetter generic.RESTOptionsGetter, categories []string) (*REST, *StatusREST) {
store := &genericregistry.Store{
NewFunc: func() runtime.Object { return &unstructured.Unstructured{} },
NewListFunc: func() runtime.Object {
@ -97,7 +98,15 @@ func newREST(resource schema.GroupResource, listKind schema.GroupVersionKind, st
statusStore := *store
statusStore.UpdateStrategy = NewStatusStrategy(strategy)
return &REST{store}, &StatusREST{store: &statusStore}
return &REST{store, categories}, &StatusREST{store: &statusStore}
}
// Implement CategoriesProvider
var _ rest.CategoriesProvider = &REST{}
// Categories implements the CategoriesProvider interface. Returns a list of categories a resource is part of.
func (r *REST) Categories() []string {
return r.categories
}
// StatusREST implements the REST endpoint for changing the status of a CustomResource

View File

@ -18,6 +18,7 @@ package customresource_test
import (
"io"
"reflect"
"strings"
"testing"
@ -82,7 +83,7 @@ func newStorage(t *testing.T) (customresource.CustomResourceStorage, *etcdtestin
status,
scale,
),
restOptions,
restOptions, []string{"all"},
)
return storage, server
@ -153,6 +154,19 @@ func TestDelete(t *testing.T) {
test.TestDelete(validNewCustomResource())
}
func TestCategories(t *testing.T) {
storage, server := newStorage(t)
defer server.Terminate(t)
defer storage.CustomResource.Store.DestroyFunc()
expected := []string{"all"}
actual := storage.CustomResource.Categories()
ok := reflect.DeepEqual(actual, expected)
if !ok {
t.Errorf("categories are not equal. expected = %v actual = %v", expected, actual)
}
}
func TestStatusUpdate(t *testing.T) {
storage, server := newStorage(t)
defer server.Terminate(t)

View File

@ -388,6 +388,10 @@ func TestDiscovery(t *testing.T) {
if !reflect.DeepEqual([]string(r.Verbs), expectedVerbs) {
t.Fatalf("Unexpected verbs for resource \"noxus\" in group version %v/%v via discovery: expected=%v got=%v", group, version, expectedVerbs, r.Verbs)
}
if !reflect.DeepEqual(r.Categories, []string{"all"}) {
t.Fatalf("Expected exactly the category \"all\" in group version %v/%v via discovery, got: %v", group, version, r.Categories)
}
}
func TestNoNamespaceReject(t *testing.T) {

View File

@ -72,6 +72,7 @@ func NewNoxuCustomResourceDefinition(scope apiextensionsv1beta1.ResourceScope) *
Kind: "WishIHadChosenNoxu",
ShortNames: []string{"foo", "bar", "abc", "def"},
ListKind: "NoxuItemList",
Categories: []string{"all"},
},
Scope: scope,
},