From 48f633312b3e5153d8a21afa76d767d5361c536a Mon Sep 17 00:00:00 2001 From: Nguyen Duy Phuong Date: Wed, 10 Apr 2024 16:45:44 +0700 Subject: [PATCH] add freight ref to promotion status after done with validation --- api/v1alpha1/generated.pb.go | 475 ++++++++++-------- api/v1alpha1/generated.proto | 3 + api/v1alpha1/promotion_types.go | 28 +- api/v1alpha1/zz_generated.deepcopy.go | 5 + .../crds/kargo.akuity.io_promotions.yaml | 206 ++++++++ .../crds/kargo.akuity.io_stages.yaml | 424 ++++++++++++++++ internal/controller/promotions/promotions.go | 12 +- .../promotions.kargo.akuity.io_v1alpha1.json | 196 ++++++++ .../stages.kargo.akuity.io_v1alpha1.json | 392 +++++++++++++++ ui/src/gen/v1alpha1/generated_pb.ts | 8 + 10 files changed, 1523 insertions(+), 226 deletions(-) diff --git a/api/v1alpha1/generated.pb.go b/api/v1alpha1/generated.pb.go index a714b1bada..0eb35d0d41 100644 --- a/api/v1alpha1/generated.pb.go +++ b/api/v1alpha1/generated.pb.go @@ -1782,216 +1782,218 @@ func init() { } var fileDescriptor_e26b7f7bbc391025 = []byte{ - // 3339 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x3b, 0x4d, 0x6c, 0x1b, 0xd7, - 0x99, 0x1e, 0x92, 0xa2, 0xc4, 0x8f, 0xfa, 0x7d, 0x92, 0x1d, 0x45, 0x59, 0xcb, 0xc6, 0x6c, 0x36, - 0x48, 0x36, 0x09, 0xb9, 0xb6, 0xa3, 0xc4, 0x71, 0xb2, 0xc9, 0x92, 0xf2, 0x9f, 0x12, 0xdb, 0xd1, - 0x3e, 0xc9, 0x4e, 0x36, 0x3f, 0xd8, 0x7d, 0x22, 0x9f, 0xc9, 0x89, 0x48, 0xce, 0x64, 0xde, 0x50, - 0x8e, 0x36, 0x45, 0xdb, 0xb4, 0x0d, 0x9a, 0x4b, 0xd3, 0x02, 0xbd, 0xa4, 0xa7, 0x02, 0x6d, 0xd1, - 0xa2, 0x87, 0xf6, 0xd6, 0x43, 0xd1, 0x43, 0x81, 0x06, 0x05, 0x82, 0x1e, 0x8a, 0xa0, 0xa7, 0x00, - 0x05, 0x8c, 0x44, 0xbd, 0x15, 0x48, 0x7b, 0xe8, 0xcd, 0x40, 0x81, 0xe2, 0xfd, 0xcc, 0xcc, 0x9b, - 0xe1, 0x50, 0x9a, 0x61, 0x6c, 0x23, 0xbd, 0x51, 0xef, 0xfb, 0x7b, 0xef, 0x7b, 0xdf, 0xff, 0x3c, - 0xc1, 0x63, 0x2d, 0xcb, 0x6b, 0xf7, 0xb7, 0x2a, 0x0d, 0xbb, 0x5b, 0x25, 0xdb, 0x7d, 0xcb, 0xdb, - 0xad, 0x6e, 0x13, 0xb7, 0x65, 0x57, 0x89, 0x63, 0x55, 0x77, 0x4e, 0x90, 0x8e, 0xd3, 0x26, 0x27, - 0xaa, 0x2d, 0xda, 0xa3, 0x2e, 0xf1, 0x68, 0xb3, 0xe2, 0xb8, 0xb6, 0x67, 0xa3, 0xfb, 0x43, 0xaa, - 0x8a, 0xa4, 0xaa, 0x08, 0xaa, 0x0a, 0x71, 0xac, 0x8a, 0x4f, 0xb5, 0xf4, 0xa8, 0xc6, 0xbb, 0x65, - 0xb7, 0xec, 0xaa, 0x20, 0xde, 0xea, 0x5f, 0x17, 0x7f, 0x89, 0x3f, 0xc4, 0x2f, 0xc9, 0x74, 0xe9, - 0xb1, 0xed, 0xd3, 0xac, 0x62, 0x09, 0xc9, 0x5d, 0xd2, 0x68, 0x5b, 0x3d, 0xea, 0xee, 0x56, 0x9d, - 0xed, 0x16, 0x5f, 0x60, 0xd5, 0x2e, 0xf5, 0x48, 0x75, 0x67, 0x60, 0x2b, 0x4b, 0xd5, 0x61, 0x54, - 0x6e, 0xbf, 0xe7, 0x59, 0x5d, 0x3a, 0x40, 0xf0, 0xf8, 0x41, 0x04, 0xac, 0xd1, 0xa6, 0x5d, 0x12, - 0xa7, 0x33, 0x5f, 0x85, 0xf9, 0x5a, 0x8f, 0x74, 0x76, 0x99, 0xc5, 0x70, 0xbf, 0x57, 0x73, 0x5b, - 0xfd, 0x2e, 0xed, 0x79, 0xe8, 0x38, 0x14, 0x7a, 0xa4, 0x4b, 0x17, 0x8d, 0xe3, 0xc6, 0x83, 0xa5, - 0xfa, 0xe4, 0x87, 0x37, 0x8f, 0x1d, 0xda, 0xbb, 0x79, 0xac, 0x70, 0x85, 0x74, 0x29, 0x16, 0x10, - 0xf4, 0xaf, 0x30, 0xb6, 0x43, 0x3a, 0x7d, 0xba, 0x98, 0x13, 0x28, 0x53, 0x0a, 0x65, 0xec, 0x1a, - 0x5f, 0xc4, 0x12, 0x66, 0x7e, 0x3d, 0x1f, 0x61, 0x7f, 0x99, 0x7a, 0xa4, 0x49, 0x3c, 0x82, 0xba, - 0x50, 0xec, 0x90, 0x2d, 0xda, 0x61, 0x8b, 0xc6, 0xf1, 0xfc, 0x83, 0xe5, 0x93, 0xe7, 0x2a, 0x69, - 0x54, 0x5f, 0x49, 0x60, 0x55, 0xb9, 0x24, 0xf8, 0x9c, 0xeb, 0x79, 0xee, 0x6e, 0x7d, 0x5a, 0x6d, - 0xa2, 0x28, 0x17, 0xb1, 0x12, 0x82, 0xde, 0x36, 0xa0, 0x4c, 0x7a, 0x3d, 0xdb, 0x23, 0x9e, 0x65, - 0xf7, 0xd8, 0x62, 0x4e, 0x08, 0x7d, 0x6e, 0x74, 0xa1, 0xb5, 0x90, 0x99, 0x94, 0x3c, 0xaf, 0x24, - 0x97, 0x35, 0x08, 0xd6, 0x65, 0x2e, 0x3d, 0x09, 0x65, 0x6d, 0xab, 0x68, 0x16, 0xf2, 0xdb, 0x74, - 0x57, 0xea, 0x17, 0xf3, 0x9f, 0x68, 0x21, 0xa2, 0x50, 0xa5, 0xc1, 0x33, 0xb9, 0xd3, 0xc6, 0xd2, - 0x33, 0x30, 0x1b, 0x17, 0x98, 0x85, 0xde, 0x7c, 0xcf, 0x80, 0x05, 0xed, 0x14, 0x98, 0x5e, 0xa7, - 0x2e, 0xed, 0x35, 0x28, 0xaa, 0x42, 0x89, 0xdf, 0x25, 0x73, 0x48, 0xc3, 0xbf, 0xea, 0x39, 0x75, - 0x90, 0xd2, 0x15, 0x1f, 0x80, 0x43, 0x9c, 0xc0, 0x2c, 0x72, 0xfb, 0x99, 0x85, 0xd3, 0x26, 0x8c, - 0x2e, 0xe6, 0xa3, 0x66, 0xb1, 0xce, 0x17, 0xb1, 0x84, 0x99, 0xff, 0x09, 0xf7, 0xfa, 0xfb, 0xd9, - 0xa4, 0x5d, 0xa7, 0x43, 0x3c, 0x1a, 0x6e, 0xea, 0x40, 0xd3, 0x33, 0x67, 0x60, 0xaa, 0xe6, 0x38, - 0xae, 0xbd, 0x43, 0x9b, 0x1b, 0x1e, 0x69, 0x51, 0xf3, 0x6b, 0x06, 0x1c, 0xae, 0xb9, 0x2d, 0x7b, - 0xf5, 0x6c, 0xcd, 0x71, 0x2e, 0x52, 0xd2, 0xf1, 0xda, 0x1b, 0x1e, 0xf1, 0xfa, 0x0c, 0x3d, 0x03, - 0x45, 0x26, 0x7e, 0x29, 0x76, 0x0f, 0xf8, 0x16, 0x22, 0xe1, 0xb7, 0x6e, 0x1e, 0x5b, 0x48, 0x20, - 0xa4, 0x58, 0x51, 0xa1, 0x87, 0x60, 0xbc, 0x4b, 0x19, 0x23, 0x2d, 0xff, 0xcc, 0x33, 0x8a, 0xc1, - 0xf8, 0x65, 0xb9, 0x8c, 0x7d, 0xb8, 0xf9, 0xbb, 0x1c, 0xcc, 0x04, 0xbc, 0x94, 0xf8, 0x3b, 0xa0, - 0xe0, 0x3e, 0x4c, 0xb6, 0xb5, 0x13, 0x0a, 0x3d, 0x97, 0x4f, 0x3e, 0x95, 0xd2, 0x96, 0x93, 0x94, - 0x54, 0x5f, 0x50, 0x62, 0x26, 0xf5, 0x55, 0x1c, 0x11, 0x83, 0xba, 0x00, 0x6c, 0xb7, 0xd7, 0x50, - 0x42, 0x0b, 0x42, 0xe8, 0x93, 0x19, 0x85, 0x6e, 0x04, 0x0c, 0xea, 0x48, 0x89, 0x84, 0x70, 0x0d, - 0x6b, 0x02, 0xcc, 0x9f, 0x1b, 0x30, 0x9f, 0x40, 0x87, 0x9e, 0x8e, 0xdd, 0xe7, 0xfd, 0x03, 0xf7, - 0x89, 0x06, 0xc8, 0xc2, 0xdb, 0x7c, 0x04, 0x26, 0x5c, 0xba, 0x63, 0x31, 0xcb, 0xee, 0x29, 0x0d, - 0xcf, 0x2a, 0xfa, 0x09, 0xac, 0xd6, 0x71, 0x80, 0x81, 0x1e, 0x86, 0x92, 0xff, 0x9b, 0xab, 0x39, - 0xcf, 0xcd, 0x99, 0x5f, 0x9c, 0x8f, 0xca, 0x70, 0x08, 0x37, 0x3f, 0x33, 0xb4, 0xdb, 0xbf, 0xea, - 0x34, 0x89, 0x47, 0xb9, 0xf1, 0x10, 0xc7, 0xb9, 0x12, 0x1a, 0x73, 0x60, 0x3c, 0x35, 0xb9, 0x8c, - 0x7d, 0x38, 0x3a, 0x0d, 0x93, 0xea, 0xa7, 0xb4, 0x15, 0xb9, 0xbb, 0xe0, 0x62, 0x6a, 0x1a, 0x0c, - 0x47, 0x30, 0x51, 0x1f, 0xa6, 0x98, 0xdd, 0x77, 0x1b, 0x54, 0x0a, 0x95, 0x3b, 0x2d, 0x9f, 0x3c, - 0x9d, 0xe5, 0x6e, 0x36, 0x34, 0x06, 0xf5, 0xc3, 0x4a, 0xe8, 0x94, 0xbe, 0xca, 0x70, 0x54, 0x8a, - 0xf9, 0x06, 0x80, 0xa4, 0xbd, 0x48, 0x3b, 0x5d, 0xd4, 0x80, 0xa2, 0xd5, 0x25, 0x2d, 0xea, 0xc7, - 0xf3, 0x4c, 0xe6, 0xc8, 0x39, 0xac, 0x71, 0x6a, 0xb5, 0x81, 0x20, 0x8a, 0x8b, 0x45, 0x86, 0x15, - 0x6b, 0xf3, 0xfd, 0xc0, 0xcb, 0x63, 0x14, 0x3c, 0xe8, 0x08, 0x1c, 0xa5, 0xe6, 0x20, 0xe8, 0x08, - 0x1c, 0x2c, 0x61, 0xe8, 0xa8, 0x8c, 0x98, 0x52, 0xb3, 0x65, 0x85, 0x92, 0x7f, 0x9e, 0xee, 0xca, - 0xf0, 0xf9, 0x94, 0x1f, 0x3e, 0x65, 0xe0, 0xfa, 0xb7, 0x48, 0x3e, 0xe3, 0x71, 0x42, 0x13, 0x28, - 0xd6, 0x36, 0x77, 0x9d, 0x20, 0xcf, 0xbd, 0xe5, 0x5f, 0xfe, 0xf3, 0x7d, 0xe6, 0xd9, 0x5d, 0xeb, - 0xff, 0x29, 0x6a, 0xc7, 0x54, 0xf2, 0x5f, 0x59, 0x54, 0x12, 0xb0, 0x49, 0xa3, 0x17, 0x17, 0x96, - 0x86, 0x53, 0xa5, 0xd3, 0x4d, 0x15, 0x4a, 0x7d, 0x46, 0xcf, 0x5a, 0x2d, 0xca, 0x3c, 0xa1, 0xa1, - 0x89, 0x30, 0x4e, 0x5d, 0xf5, 0x01, 0x38, 0xc4, 0x31, 0xff, 0x9c, 0x03, 0x34, 0x68, 0x3b, 0xdc, - 0xe2, 0x5d, 0xea, 0xd8, 0x57, 0xf1, 0xa5, 0xb8, 0xc5, 0x63, 0xb9, 0x8c, 0x7d, 0x38, 0xdf, 0x57, - 0xa3, 0x4d, 0x5c, 0x2f, 0x5e, 0x3f, 0xac, 0xf2, 0x45, 0x2c, 0x61, 0x68, 0x1d, 0x16, 0xfa, 0x82, - 0xf3, 0x26, 0x71, 0x5b, 0xd4, 0xf3, 0x3d, 0x4f, 0xdc, 0xd1, 0x44, 0xfd, 0x5f, 0x14, 0xcd, 0xc2, - 0xd5, 0x04, 0x1c, 0x9c, 0x48, 0x89, 0xb6, 0xa0, 0xb4, 0xed, 0xab, 0x49, 0x85, 0xb1, 0x95, 0x91, - 0x6e, 0x46, 0xc6, 0x82, 0xe0, 0x4f, 0x1c, 0xb2, 0x45, 0x57, 0xa0, 0xd0, 0xa6, 0x9d, 0xee, 0xe2, - 0x98, 0x60, 0xff, 0x1f, 0x59, 0x7d, 0xa1, 0x3e, 0xc1, 0x43, 0x3e, 0xff, 0x85, 0x05, 0x1f, 0xf3, - 0x2b, 0x20, 0xb5, 0x92, 0x45, 0xbd, 0x07, 0x27, 0x92, 0x87, 0x60, 0x7c, 0x87, 0xba, 0x81, 0x3a, - 0x35, 0x66, 0xd7, 0xe4, 0x32, 0xf6, 0xe1, 0xe6, 0x8f, 0x0d, 0x98, 0x13, 0x3b, 0xd8, 0xe8, 0x6f, - 0xb1, 0x86, 0x6b, 0x39, 0xbc, 0x10, 0xb9, 0xbd, 0xbb, 0x39, 0x0b, 0xb3, 0x8c, 0x76, 0x77, 0xa8, - 0xbb, 0x6a, 0xf7, 0x98, 0xe7, 0x12, 0xab, 0xe7, 0xa9, 0x6d, 0x2d, 0x2a, 0xec, 0xd9, 0x8d, 0x18, - 0x1c, 0x0f, 0x50, 0x98, 0x3f, 0x2a, 0xc0, 0xf8, 0x79, 0x97, 0x5a, 0xad, 0xb6, 0x87, 0xfe, 0x0f, - 0x26, 0xba, 0xaa, 0x5e, 0x13, 0xfb, 0xe3, 0x37, 0x21, 0x8b, 0xe4, 0x8a, 0x5e, 0x24, 0x57, 0x9c, - 0xed, 0x16, 0x5f, 0x60, 0x15, 0x8e, 0x5d, 0xd9, 0x39, 0x51, 0x79, 0x61, 0xeb, 0x75, 0xda, 0xf0, - 0x78, 0xad, 0x17, 0xa6, 0xa9, 0x70, 0x0d, 0x07, 0x5c, 0xb9, 0x09, 0x93, 0x8e, 0x45, 0xd8, 0xe2, - 0x78, 0xd4, 0x84, 0x6b, 0x7c, 0x11, 0x4b, 0x18, 0x77, 0xad, 0x1b, 0xc4, 0xa5, 0x6d, 0xbb, 0xcf, - 0xe8, 0xe2, 0x44, 0xb4, 0x04, 0x78, 0xd1, 0x07, 0xe0, 0x10, 0x07, 0xbd, 0x0c, 0xe3, 0x0d, 0xbb, - 0xdb, 0xb5, 0x3c, 0x3f, 0x94, 0x57, 0xd3, 0x19, 0xd0, 0x05, 0xcb, 0x5b, 0x15, 0x74, 0xe1, 0x3d, - 0xc8, 0xbf, 0x19, 0xf6, 0x19, 0xa2, 0x8d, 0x20, 0x28, 0x15, 0x04, 0xeb, 0x87, 0xd3, 0xb1, 0x16, - 0xb1, 0x62, 0x58, 0xfc, 0xe1, 0x4c, 0x85, 0xb7, 0xb2, 0xc5, 0xb1, 0x2c, 0x4c, 0x85, 0x41, 0x85, - 0x4c, 0xc5, 0x9f, 0x0c, 0x2b, 0x56, 0xe8, 0x95, 0x20, 0xd1, 0x17, 0xc5, 0xdd, 0x9d, 0x4a, 0xc7, - 0x54, 0x5d, 0xbe, 0xaa, 0x32, 0xa6, 0xa3, 0xd5, 0x81, 0x5f, 0x07, 0x98, 0xbf, 0x36, 0xa0, 0xac, - 0x30, 0x2f, 0x59, 0xcc, 0x43, 0xaf, 0x0e, 0x98, 0x4a, 0x25, 0x9d, 0xa9, 0x70, 0x6a, 0x61, 0x28, - 0x41, 0x1d, 0xe1, 0xaf, 0x68, 0x66, 0x82, 0x61, 0xcc, 0xf2, 0x68, 0xd7, 0x6f, 0x3b, 0x1e, 0xcd, - 0x74, 0x12, 0x2d, 0x60, 0x73, 0x1e, 0x58, 0xb2, 0x32, 0x3f, 0x2b, 0xc0, 0xac, 0xc2, 0xc8, 0x50, - 0x39, 0x47, 0x8d, 0xb1, 0x98, 0xcd, 0x18, 0x73, 0x77, 0xce, 0x18, 0xf3, 0x77, 0xc2, 0x18, 0x0b, - 0xb7, 0xcf, 0x18, 0xdf, 0x84, 0xd9, 0x1d, 0xea, 0x5a, 0xd7, 0xad, 0x86, 0x68, 0xc1, 0xd6, 0x7a, - 0xd7, 0x6d, 0x15, 0xdc, 0x1f, 0x4f, 0xc7, 0xfe, 0x5a, 0x8c, 0xba, 0xbe, 0xc0, 0x03, 0x5a, 0x7c, - 0x15, 0x0f, 0x48, 0x41, 0xef, 0x18, 0x30, 0xaf, 0x2f, 0x5e, 0xb4, 0x98, 0x67, 0xbb, 0xbb, 0x8b, - 0xe3, 0xe2, 0x70, 0xa3, 0x4a, 0xbf, 0x4f, 0x9d, 0x73, 0xfe, 0xda, 0x20, 0x6b, 0x9c, 0x24, 0xcf, - 0xfc, 0x4b, 0x1e, 0xa6, 0x22, 0xbe, 0x85, 0x6e, 0x00, 0x48, 0x44, 0xda, 0x5c, 0xeb, 0xa9, 0x1a, - 0x67, 0x75, 0x04, 0x27, 0x55, 0xbb, 0xe3, 0x5c, 0x64, 0x2b, 0x1d, 0xc4, 0xdc, 0x10, 0x80, 0x35, - 0x51, 0xe8, 0x2d, 0x28, 0x13, 0xd5, 0xfd, 0x9d, 0xb7, 0x5d, 0x65, 0x96, 0x67, 0x47, 0x91, 0x5c, - 0x0b, 0xd9, 0xc4, 0xbb, 0xf8, 0x10, 0x82, 0x75, 0x69, 0x4b, 0x2e, 0xcc, 0xc4, 0xf6, 0x9b, 0xd0, - 0x89, 0xaf, 0xe9, 0x9d, 0x78, 0xea, 0xd0, 0xe5, 0xf3, 0x15, 0x2d, 0xad, 0xde, 0xfe, 0x33, 0x98, - 0x8d, 0xef, 0xf4, 0xb6, 0x09, 0x8d, 0xf4, 0xd1, 0xfa, 0xcc, 0xe0, 0x17, 0x39, 0x28, 0x05, 0x4e, - 0x9c, 0x25, 0xd5, 0x2f, 0x41, 0xce, 0x6a, 0xaa, 0x44, 0x0f, 0x0a, 0x2b, 0xb7, 0x76, 0x16, 0xe7, - 0xac, 0x26, 0x7a, 0x00, 0x8a, 0x5b, 0x2e, 0xe9, 0x35, 0xda, 0x2a, 0xb5, 0x07, 0xfe, 0x56, 0x17, - 0xab, 0x58, 0x41, 0x79, 0xa9, 0xee, 0x91, 0x96, 0x28, 0xcf, 0xb4, 0x52, 0x7d, 0x93, 0xb4, 0x30, - 0x5f, 0x47, 0x17, 0x60, 0x4e, 0xf6, 0xa6, 0xab, 0x6d, 0xda, 0xd8, 0x96, 0x5b, 0x14, 0xfe, 0x58, - 0xaa, 0xdf, 0xab, 0x90, 0xe7, 0x2e, 0xc6, 0x11, 0xf0, 0x20, 0x8d, 0xde, 0xdd, 0x17, 0xf7, 0xef, - 0xee, 0xf9, 0xd6, 0x49, 0xdf, 0x6b, 0xdb, 0xae, 0x4a, 0xf6, 0xc1, 0xd6, 0x6b, 0x62, 0x15, 0x2b, - 0xa8, 0x39, 0x0f, 0x73, 0x17, 0x2c, 0xef, 0x62, 0x7f, 0x6b, 0xbd, 0xdf, 0xe9, 0x60, 0xfa, 0x46, - 0x9f, 0x57, 0xcb, 0x3f, 0x19, 0x83, 0xa9, 0x0b, 0x96, 0x27, 0x74, 0x95, 0xb9, 0x50, 0xde, 0x80, - 0xc3, 0x56, 0x8f, 0xd1, 0x46, 0xdf, 0xa5, 0x1b, 0xdb, 0x96, 0xb3, 0x79, 0x69, 0x43, 0x58, 0xca, - 0xae, 0xaa, 0xd3, 0x8f, 0x2a, 0xc2, 0xc3, 0x6b, 0x49, 0x48, 0x38, 0x99, 0x16, 0x9d, 0x04, 0x70, - 0x29, 0x69, 0xd6, 0xf5, 0xdb, 0x08, 0x1c, 0x0f, 0x07, 0x10, 0xac, 0x61, 0xa1, 0x15, 0x28, 0xdf, - 0x70, 0x2d, 0x8f, 0x2a, 0x22, 0x79, 0x3b, 0x81, 0xcb, 0xbc, 0x18, 0x82, 0xb0, 0x8e, 0x87, 0x76, - 0xa0, 0xec, 0x84, 0xba, 0x50, 0x71, 0x33, 0x65, 0xa4, 0xd0, 0x94, 0xb8, 0xee, 0xda, 0x5d, 0x9b, - 0x87, 0xa4, 0xcb, 0xb4, 0xd1, 0x26, 0x3d, 0x8b, 0x75, 0xeb, 0x33, 0x5c, 0xae, 0x86, 0x82, 0x75, - 0x41, 0xa8, 0x05, 0x45, 0x97, 0xf6, 0x9a, 0xd4, 0x55, 0x15, 0x44, 0x4a, 0x91, 0xcf, 0xf3, 0x25, - 0x2c, 0x08, 0x13, 0x44, 0x02, 0xbf, 0x72, 0x09, 0xc5, 0x8a, 0x3d, 0xea, 0xe9, 0x2d, 0xc5, 0xb8, - 0x90, 0x55, 0x4b, 0x29, 0xcb, 0x27, 0x4b, 0x90, 0x34, 0xbc, 0xbd, 0x78, 0x59, 0xb5, 0x17, 0x13, - 0x42, 0xd4, 0xd3, 0xe9, 0x44, 0xf1, 0x76, 0x22, 0x41, 0x4a, 0xbc, 0xd5, 0xf8, 0x4d, 0x01, 0x66, - 0x2e, 0x58, 0x23, 0xd7, 0xf9, 0x1e, 0xdc, 0x23, 0xb3, 0xfb, 0x06, 0xed, 0xd0, 0x06, 0xa7, 0xde, - 0xf0, 0x5c, 0xe2, 0xd1, 0x96, 0xdf, 0x77, 0x9f, 0x51, 0xa4, 0xf7, 0xac, 0x26, 0xa3, 0xdd, 0x1a, - 0x0e, 0xc2, 0xc3, 0x58, 0xa7, 0x0e, 0x2b, 0x49, 0x3d, 0x46, 0x21, 0x6b, 0x8f, 0xc1, 0x6b, 0x28, - 0xd2, 0xe9, 0xd8, 0x37, 0x36, 0x49, 0x8b, 0xa9, 0xa8, 0x13, 0xd4, 0x50, 0x35, 0x1f, 0x80, 0x43, - 0x1c, 0x54, 0x01, 0xb0, 0x5a, 0x3d, 0xdb, 0xa5, 0x82, 0xa2, 0x28, 0x06, 0x49, 0xd3, 0xdc, 0xcf, - 0xd6, 0x82, 0x55, 0xac, 0x61, 0x0c, 0x77, 0xf8, 0xf1, 0xcf, 0xe1, 0xf0, 0x8f, 0xc1, 0xa4, 0xd5, - 0x6b, 0x74, 0xfa, 0x4d, 0xba, 0x4e, 0xbc, 0x36, 0x5b, 0x9c, 0x10, 0xdb, 0x98, 0xdd, 0xbb, 0x79, - 0x6c, 0x72, 0x4d, 0x5b, 0xc7, 0x11, 0x2c, 0x4e, 0x45, 0xdf, 0xd4, 0xa8, 0x4a, 0x21, 0xd5, 0xb9, - 0x37, 0x75, 0x2a, 0x1d, 0xcb, 0xfc, 0xbd, 0x01, 0x45, 0x19, 0x7f, 0xd1, 0x4a, 0x6c, 0x5e, 0x77, - 0x74, 0x60, 0x5e, 0x57, 0x4e, 0x1a, 0xbb, 0x9a, 0x50, 0xb4, 0x18, 0xeb, 0x53, 0x59, 0x75, 0x96, - 0xa4, 0xdb, 0xad, 0x89, 0x15, 0xac, 0x20, 0xc8, 0x02, 0x20, 0xfe, 0xc0, 0xcd, 0x2f, 0x21, 0x57, - 0xb2, 0x4e, 0x24, 0x63, 0xd3, 0xc8, 0x00, 0xc0, 0xb0, 0xc6, 0xdc, 0xfc, 0x81, 0x01, 0xf7, 0x72, - 0x27, 0x11, 0x65, 0xe1, 0x59, 0xea, 0x70, 0xbf, 0xef, 0x35, 0x76, 0x55, 0x2c, 0x17, 0xb1, 0xd4, - 0xb1, 0x99, 0x25, 0x2a, 0x33, 0x23, 0x1e, 0x4b, 0x7d, 0x08, 0xd6, 0xb0, 0x52, 0x34, 0xc4, 0x55, - 0x28, 0x89, 0xea, 0x93, 0xab, 0x54, 0xd9, 0x75, 0x60, 0x66, 0xab, 0x3e, 0x00, 0x87, 0x38, 0xe6, - 0x1f, 0x0c, 0x98, 0x19, 0x69, 0x30, 0xf6, 0x0c, 0x4c, 0x8b, 0xbc, 0xcf, 0xce, 0x5b, 0x1d, 0x71, - 0x83, 0x6a, 0x57, 0x47, 0x14, 0xf6, 0xf4, 0xb5, 0x08, 0x14, 0xc7, 0xb0, 0xfd, 0xc1, 0x5a, 0xfe, - 0xa0, 0xc1, 0x5a, 0x61, 0x84, 0xc1, 0xda, 0x27, 0x06, 0x1c, 0x49, 0x0e, 0x5d, 0xe8, 0xb5, 0xd8, - 0x80, 0x6d, 0x25, 0x7d, 0x20, 0x4c, 0x31, 0x55, 0xe3, 0xe9, 0x43, 0x35, 0x12, 0xb2, 0xc2, 0x7c, - 0x36, 0x3d, 0xfb, 0x44, 0x33, 0x19, 0xd6, 0x5c, 0x98, 0x3f, 0x33, 0x40, 0xde, 0x47, 0x96, 0x40, - 0x7b, 0x12, 0xa0, 0xa5, 0x0a, 0x0a, 0x7c, 0x49, 0xdd, 0x57, 0x60, 0x73, 0x17, 0x02, 0x08, 0xd6, - 0xb0, 0xfc, 0xaa, 0x2a, 0x3f, 0xa4, 0xaa, 0x7a, 0x00, 0x8a, 0x4d, 0x39, 0x00, 0x2c, 0x44, 0xa3, - 0xa8, 0x9a, 0xfe, 0x29, 0xa8, 0xf9, 0x5e, 0x01, 0xe6, 0xc4, 0x7e, 0x47, 0x4d, 0x12, 0xa3, 0xec, - 0xdd, 0x81, 0x23, 0xe2, 0x5e, 0x06, 0xf3, 0x8a, 0x3c, 0xce, 0x69, 0x45, 0x7f, 0x64, 0x2d, 0x11, - 0xeb, 0xd6, 0x50, 0x08, 0x1e, 0xc2, 0xf7, 0x9f, 0x25, 0x59, 0x3c, 0x02, 0x13, 0x4e, 0x87, 0x78, - 0xd7, 0x6d, 0xb7, 0xab, 0x2a, 0xd3, 0x60, 0x14, 0xb1, 0xae, 0xd6, 0x71, 0x80, 0x31, 0x3c, 0xb5, - 0x4c, 0x8c, 0x9e, 0x5a, 0xcc, 0x1e, 0x1c, 0xd1, 0x8a, 0xa6, 0x3b, 0x3f, 0x7b, 0x7e, 0xc7, 0x80, - 0xa3, 0xfb, 0x56, 0x69, 0xa8, 0x19, 0x0b, 0x0d, 0x4f, 0x67, 0x2e, 0xfd, 0xd2, 0xcc, 0xdd, 0xdf, - 0x33, 0x60, 0x61, 0xf4, 0x91, 0xfb, 0x71, 0x28, 0x38, 0x61, 0xac, 0x0d, 0x32, 0x80, 0x88, 0xb0, - 0x02, 0x12, 0x55, 0x4c, 0x3e, 0x85, 0x62, 0xde, 0x36, 0xe0, 0xbe, 0x7d, 0x4a, 0x4a, 0xb4, 0x15, - 0x53, 0xcb, 0x99, 0x8c, 0x55, 0x6a, 0x1a, 0xa5, 0x7c, 0x2f, 0x07, 0xe3, 0xeb, 0xae, 0xfd, 0x3a, - 0x6d, 0xdc, 0x8d, 0x09, 0xec, 0x0b, 0x50, 0x60, 0x0e, 0x6d, 0xa8, 0x9e, 0xf7, 0x44, 0xca, 0xa6, - 0x42, 0x6e, 0x6f, 0xc3, 0xa1, 0x0d, 0x59, 0xff, 0xf2, 0x5f, 0x58, 0x30, 0xd2, 0xc6, 0x8e, 0xf9, - 0x2c, 0x6d, 0xb4, 0xcf, 0xf2, 0xe0, 0xb1, 0xa3, 0xc2, 0xfc, 0xc2, 0x8e, 0x1d, 0xd5, 0xfe, 0x86, - 0x8c, 0x1d, 0xbf, 0x15, 0x9e, 0x80, 0x2b, 0x0d, 0x7d, 0x19, 0xe6, 0x1c, 0xdf, 0xce, 0xd6, 0xed, - 0x8e, 0xd5, 0xb0, 0xb2, 0xa6, 0xe3, 0xf5, 0x08, 0xf9, 0x6e, 0xd8, 0xc0, 0xaf, 0xc7, 0xf9, 0xe2, - 0x41, 0x51, 0xa6, 0x0d, 0x53, 0x11, 0xd5, 0xa3, 0x53, 0xfe, 0xf3, 0x83, 0x68, 0xb9, 0x29, 0x9f, - 0x1f, 0xdc, 0xba, 0x79, 0x6c, 0x52, 0xa1, 0xeb, 0xcf, 0x11, 0xb2, 0x7c, 0xe4, 0xff, 0x7e, 0x0e, - 0x4a, 0xc1, 0xce, 0xee, 0x82, 0x81, 0xff, 0x77, 0xc4, 0xc0, 0x4f, 0x65, 0xd4, 0x69, 0xa2, 0x89, - 0xbf, 0x16, 0x33, 0xf1, 0xac, 0x17, 0x75, 0x80, 0x91, 0xff, 0xd5, 0x10, 0x77, 0x22, 0x71, 0xc5, - 0x0c, 0xf3, 0xe0, 0xb1, 0x34, 0x81, 0xf1, 0xeb, 0x72, 0x32, 0xa7, 0x0e, 0xfa, 0x78, 0xa6, 0x71, - 0x5e, 0x30, 0x01, 0x0f, 0x2f, 0xce, 0x87, 0xf8, 0x7c, 0xd1, 0xff, 0xdc, 0x9e, 0x53, 0x43, 0xc2, - 0x89, 0x3f, 0xd0, 0x4f, 0x7c, 0x17, 0x1c, 0x7b, 0x33, 0xea, 0xd8, 0xd5, 0x8c, 0x27, 0x19, 0xe2, - 0xda, 0xdf, 0xcc, 0xc1, 0xfc, 0x60, 0xce, 0x60, 0x88, 0xc1, 0x74, 0x4b, 0x1f, 0x5d, 0xf9, 0xfe, - 0x7d, 0x2a, 0xf5, 0x87, 0x80, 0x90, 0x36, 0x6c, 0x29, 0x22, 0xcb, 0x0c, 0xc7, 0x44, 0xa0, 0xb7, - 0x60, 0x96, 0x44, 0x1f, 0x53, 0xf8, 0xa7, 0xcd, 0xda, 0xe1, 0x29, 0xc1, 0x41, 0xcd, 0x16, 0x03, - 0x30, 0x3c, 0x20, 0xc8, 0x7c, 0xd7, 0x80, 0x99, 0x58, 0x58, 0xe2, 0x29, 0x9d, 0x79, 0x09, 0x29, - 0x5d, 0xcd, 0x4d, 0x05, 0x0c, 0xad, 0xc3, 0x02, 0xe9, 0x7b, 0x76, 0x40, 0x7b, 0xae, 0x47, 0xb6, - 0x3a, 0xb4, 0xa9, 0x8a, 0x9a, 0xe0, 0x6b, 0x75, 0x2d, 0x01, 0x07, 0x27, 0x52, 0x9a, 0xff, 0xab, - 0x59, 0x96, 0x08, 0xb8, 0xa9, 0xf6, 0xf1, 0x50, 0xd4, 0x9d, 0x4a, 0xc3, 0xdd, 0xc2, 0xfc, 0x61, - 0x4e, 0x3b, 0xab, 0x8a, 0xa1, 0x2b, 0xd1, 0x18, 0x7a, 0x2c, 0x1e, 0x43, 0xa7, 0x43, 0xe5, 0x8c, - 0x16, 0x45, 0xd1, 0x1b, 0x9a, 0x7f, 0xe4, 0xb3, 0x7c, 0x39, 0x88, 0x6d, 0xb5, 0xe2, 0x3f, 0xc8, - 0x93, 0xe3, 0xfb, 0xc0, 0x69, 0xfc, 0xe5, 0xd0, 0x69, 0x96, 0x9e, 0x82, 0xa9, 0x08, 0x72, 0xa6, - 0x07, 0x74, 0x5f, 0x82, 0xa3, 0xfb, 0x4e, 0x22, 0x79, 0xd9, 0x20, 0xf7, 0xaf, 0xdc, 0xfd, 0x89, - 0xd4, 0xce, 0x11, 0x9d, 0x14, 0xcb, 0xf8, 0x22, 0x97, 0xb1, 0x62, 0x69, 0xbe, 0x9f, 0x83, 0x59, - 0xee, 0x1c, 0x91, 0x7e, 0x6b, 0x1d, 0xf2, 0x2d, 0xcb, 0x53, 0xe2, 0x56, 0x52, 0x8b, 0xd3, 0x79, - 0xd4, 0xc7, 0x79, 0xff, 0xc7, 0x3d, 0x91, 0xb3, 0x42, 0x2f, 0xf9, 0x55, 0x6b, 0x2e, 0xcb, 0x11, - 0x06, 0x3a, 0xc1, 0x7a, 0x69, 0xa0, 0xd4, 0x7d, 0xc9, 0x7f, 0xea, 0x91, 0xcf, 0xc2, 0x79, 0xe0, - 0xc1, 0x81, 0xe4, 0xac, 0xbf, 0x0f, 0x31, 0xbf, 0x9b, 0x03, 0x69, 0xfa, 0x77, 0x21, 0x15, 0x5f, - 0x8e, 0xa4, 0xe2, 0x94, 0x51, 0x57, 0x6c, 0x2e, 0x31, 0x0d, 0xc7, 0x13, 0xd2, 0x89, 0x2c, 0x0c, - 0xf7, 0x4f, 0xc1, 0xbf, 0x32, 0xa0, 0x24, 0xf0, 0xee, 0x42, 0x32, 0x5a, 0x8f, 0x26, 0xa3, 0x87, - 0x33, 0x9c, 0x62, 0x48, 0x22, 0xfa, 0x76, 0x5e, 0xed, 0x3e, 0x08, 0x78, 0x6d, 0xe2, 0x36, 0x55, - 0xef, 0x1d, 0x06, 0x3c, 0xbe, 0x88, 0x25, 0x0c, 0x75, 0x60, 0x8a, 0x69, 0x86, 0xc2, 0xd4, 0x39, - 0x53, 0xa6, 0x28, 0xdd, 0xc6, 0x58, 0x7d, 0x4e, 0x3c, 0x7d, 0xd3, 0x97, 0x70, 0x94, 0x39, 0xfa, - 0x86, 0x01, 0xf3, 0xce, 0x60, 0xa6, 0x54, 0x86, 0xf1, 0x64, 0xc6, 0x48, 0x16, 0x32, 0xa8, 0xdf, - 0xb3, 0x77, 0xf3, 0x58, 0x52, 0x0e, 0xc6, 0x49, 0xe2, 0x50, 0x1b, 0x26, 0xf5, 0x2f, 0xb5, 0xca, - 0x8c, 0x4e, 0x66, 0xff, 0x24, 0x2c, 0xe7, 0xb9, 0xfa, 0x0a, 0x8e, 0x70, 0x36, 0x7f, 0x3b, 0x06, - 0x65, 0xcd, 0xee, 0xd0, 0x89, 0x68, 0x82, 0xb8, 0x2f, 0x9e, 0x20, 0x40, 0x20, 0x47, 0x92, 0x83, - 0x0b, 0xd3, 0x8d, 0xbe, 0xeb, 0xd2, 0x9e, 0x77, 0xfe, 0xb6, 0x14, 0x7a, 0x88, 0x17, 0x11, 0xab, - 0x11, 0x8e, 0x38, 0x26, 0x81, 0x57, 0x95, 0x6d, 0xf5, 0xb9, 0x3c, 0x9f, 0xe5, 0x73, 0xf9, 0xf0, - 0xaa, 0xd2, 0xff, 0x44, 0xee, 0xf3, 0x45, 0xeb, 0x50, 0x94, 0x5f, 0x15, 0xd5, 0xc7, 0x98, 0x47, - 0xd2, 0x0e, 0x09, 0x39, 0x8d, 0x0c, 0xf6, 0xf2, 0x37, 0x56, 0x7c, 0xf4, 0x2c, 0x5a, 0x3a, 0x20, - 0x8b, 0x3e, 0x07, 0xc8, 0xde, 0x62, 0xd4, 0xdd, 0xa1, 0xcd, 0x0b, 0xf2, 0x55, 0x3f, 0x37, 0x83, - 0xe2, 0x71, 0xe3, 0xc1, 0x7c, 0x7d, 0x49, 0x51, 0xa1, 0x17, 0x06, 0x30, 0x70, 0x02, 0x15, 0xea, - 0xc3, 0xac, 0xd2, 0x5e, 0x60, 0x7f, 0xea, 0x53, 0x56, 0xd6, 0x9e, 0x23, 0x7c, 0xde, 0xb0, 0x1a, - 0x63, 0x88, 0x07, 0x44, 0x70, 0xc7, 0xed, 0x10, 0x2d, 0xa3, 0x2e, 0xc2, 0xe8, 0x32, 0x85, 0xe3, - 0x5e, 0xd2, 0xb9, 0xe1, 0x28, 0x73, 0x73, 0x05, 0xe6, 0xa4, 0x19, 0xeb, 0x89, 0xf4, 0xe0, 0xe7, - 0xe6, 0xbf, 0x34, 0x20, 0x1a, 0x10, 0xa2, 0xcf, 0x68, 0x8c, 0x14, 0xcf, 0x68, 0x6e, 0xc0, 0x74, - 0xdf, 0x61, 0x9e, 0x4b, 0x49, 0x57, 0xec, 0xc0, 0x0f, 0x97, 0x4f, 0x64, 0x09, 0xfa, 0x7a, 0x2a, - 0x0c, 0x0a, 0xe9, 0xab, 0x11, 0xb6, 0x38, 0x26, 0xc6, 0xfc, 0x7b, 0x0e, 0x22, 0x9e, 0x8d, 0xde, - 0x35, 0x60, 0x8e, 0xc4, 0xde, 0xde, 0xfb, 0x25, 0xfd, 0xb3, 0xd9, 0xfe, 0x21, 0x62, 0xe0, 0xe9, - 0x7e, 0xd8, 0xbc, 0xc7, 0x51, 0x18, 0x1e, 0x14, 0x2a, 0xe2, 0x28, 0x19, 0xfc, 0xe7, 0x8a, 0x6c, - 0x71, 0x34, 0xe1, 0xbf, 0x33, 0x64, 0x1c, 0x4d, 0x00, 0xe0, 0x24, 0x71, 0xe8, 0x15, 0x28, 0x10, - 0xb7, 0xe5, 0x7f, 0x41, 0xca, 0x2e, 0xd6, 0xff, 0x9f, 0x99, 0xd0, 0x76, 0x6a, 0x6e, 0x8b, 0x61, - 0xc1, 0xd4, 0xfc, 0x63, 0x0e, 0x06, 0x9e, 0xf9, 0xa8, 0x27, 0x12, 0x85, 0xc4, 0x27, 0x12, 0x2f, - 0x42, 0x89, 0x79, 0xc4, 0xf5, 0x36, 0xad, 0x2e, 0x55, 0xdf, 0xca, 0xff, 0x3d, 0x5d, 0xba, 0xe6, - 0x14, 0xf2, 0xab, 0xf1, 0x86, 0xcf, 0x00, 0x87, 0xbc, 0xd0, 0xe9, 0x68, 0xd0, 0x36, 0xe3, 0x41, - 0x7b, 0x4e, 0xdf, 0xe6, 0xa8, 0x85, 0x7d, 0x17, 0xca, 0x9a, 0x8a, 0x55, 0x4a, 0x3a, 0x93, 0x59, - 0xa5, 0x5a, 0xe8, 0x95, 0xff, 0x53, 0x13, 0x42, 0x74, 0xfe, 0xe6, 0x0c, 0x4c, 0x45, 0x5e, 0xcd, - 0x88, 0xf1, 0x4c, 0xe0, 0x80, 0x5f, 0xd4, 0xf1, 0x4c, 0xb0, 0xc1, 0xdb, 0x39, 0x9e, 0x09, 0x99, - 0xee, 0x5f, 0x1b, 0x7e, 0x60, 0xc0, 0x54, 0x80, 0xfb, 0x85, 0x1d, 0x56, 0x04, 0x3b, 0x1c, 0x52, - 0x23, 0xfe, 0x54, 0x3f, 0x45, 0xb4, 0x4e, 0xcc, 0xed, 0x53, 0x27, 0xb2, 0xc1, 0x3a, 0x31, 0x43, - 0x5d, 0x10, 0xef, 0xc1, 0xb4, 0xff, 0x94, 0xd8, 0xa7, 0x5c, 0x34, 0xff, 0x66, 0xc0, 0x4c, 0xec, - 0x76, 0x74, 0x97, 0xca, 0x8f, 0x94, 0xe5, 0x0b, 0x23, 0x65, 0x79, 0x0b, 0xca, 0x3c, 0x23, 0xfa, - 0x25, 0xd8, 0xd8, 0xe7, 0x9b, 0xb5, 0x71, 0xd7, 0xbc, 0x14, 0xb2, 0xc3, 0x3a, 0xef, 0xfa, 0x73, - 0x1f, 0x7e, 0xba, 0x7c, 0xe8, 0xa3, 0x4f, 0x97, 0x0f, 0x7d, 0xfc, 0xe9, 0xf2, 0xa1, 0xaf, 0xee, - 0x2d, 0x1b, 0x1f, 0xee, 0x2d, 0x1b, 0x1f, 0xed, 0x2d, 0x1b, 0x1f, 0xef, 0x2d, 0x1b, 0x9f, 0xec, - 0x2d, 0x1b, 0xdf, 0xf9, 0xd3, 0xf2, 0xa1, 0x97, 0xef, 0x4f, 0xf3, 0x7f, 0x9a, 0xff, 0x08, 0x00, - 0x00, 0xff, 0xff, 0xf4, 0x0c, 0xfd, 0x31, 0xce, 0x39, 0x00, 0x00, + // 3362 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x3b, 0x4b, 0x8c, 0x1c, 0x47, + 0xd9, 0xee, 0x99, 0xd9, 0xc7, 0x7c, 0xb3, 0xcf, 0xda, 0xb5, 0xb3, 0xd9, 0xfc, 0xde, 0xb5, 0xfa, + 0xcf, 0x1f, 0x25, 0x7f, 0x92, 0x19, 0x6c, 0x67, 0x13, 0xc7, 0x09, 0x09, 0x33, 0xeb, 0xd7, 0x26, + 0xb6, 0xb3, 0xd4, 0xae, 0x9d, 0x90, 0x87, 0xa0, 0x76, 0xa6, 0x3c, 0xd3, 0xd9, 0x99, 0xe9, 0x4e, + 0x57, 0xcf, 0x3a, 0x4b, 0x10, 0x10, 0x20, 0x22, 0x17, 0x02, 0x12, 0x97, 0xc0, 0x05, 0x09, 0x21, + 0x10, 0x07, 0xb8, 0x71, 0x40, 0x1c, 0x90, 0x88, 0x90, 0x22, 0x0e, 0x28, 0xe2, 0x14, 0x09, 0xc9, + 0x4a, 0x96, 0x1b, 0x52, 0xe0, 0xc0, 0xcd, 0x12, 0x12, 0xaa, 0x47, 0x77, 0x57, 0xf7, 0xf4, 0xec, + 0x76, 0x4f, 0x6c, 0x2b, 0xdc, 0x66, 0xea, 0x7b, 0x55, 0x7d, 0xf5, 0xbd, 0xbb, 0x1b, 0x1e, 0x69, + 0x5a, 0x5e, 0xab, 0xb7, 0x55, 0xae, 0xdb, 0x9d, 0x0a, 0xd9, 0xee, 0x59, 0xde, 0x6e, 0x65, 0x9b, + 0xb8, 0x4d, 0xbb, 0x42, 0x1c, 0xab, 0xb2, 0x73, 0x9c, 0xb4, 0x9d, 0x16, 0x39, 0x5e, 0x69, 0xd2, + 0x2e, 0x75, 0x89, 0x47, 0x1b, 0x65, 0xc7, 0xb5, 0x3d, 0x1b, 0xdd, 0x1b, 0x52, 0x95, 0x25, 0x55, + 0x59, 0x50, 0x95, 0x89, 0x63, 0x95, 0x7d, 0xaa, 0xc5, 0x87, 0x35, 0xde, 0x4d, 0xbb, 0x69, 0x57, + 0x04, 0xf1, 0x56, 0xef, 0x9a, 0xf8, 0x27, 0xfe, 0x88, 0x5f, 0x92, 0xe9, 0xe2, 0x23, 0xdb, 0xa7, + 0x58, 0xd9, 0x12, 0x92, 0x3b, 0xa4, 0xde, 0xb2, 0xba, 0xd4, 0xdd, 0xad, 0x38, 0xdb, 0x4d, 0xbe, + 0xc0, 0x2a, 0x1d, 0xea, 0x91, 0xca, 0x4e, 0xdf, 0x56, 0x16, 0x2b, 0x83, 0xa8, 0xdc, 0x5e, 0xd7, + 0xb3, 0x3a, 0xb4, 0x8f, 0xe0, 0xd1, 0x83, 0x08, 0x58, 0xbd, 0x45, 0x3b, 0x24, 0x4e, 0x67, 0xbe, + 0x0c, 0x73, 0xd5, 0x2e, 0x69, 0xef, 0x32, 0x8b, 0xe1, 0x5e, 0xb7, 0xea, 0x36, 0x7b, 0x1d, 0xda, + 0xf5, 0xd0, 0x31, 0x28, 0x74, 0x49, 0x87, 0x2e, 0x18, 0xc7, 0x8c, 0xfb, 0x8b, 0xb5, 0x89, 0xf7, + 0x6f, 0x2c, 0x1f, 0xda, 0xbb, 0xb1, 0x5c, 0xb8, 0x4c, 0x3a, 0x14, 0x0b, 0x08, 0xfa, 0x5f, 0x18, + 0xd9, 0x21, 0xed, 0x1e, 0x5d, 0xc8, 0x09, 0x94, 0x49, 0x85, 0x32, 0x72, 0x95, 0x2f, 0x62, 0x09, + 0x33, 0xbf, 0x9d, 0x8f, 0xb0, 0xbf, 0x44, 0x3d, 0xd2, 0x20, 0x1e, 0x41, 0x1d, 0x18, 0x6d, 0x93, + 0x2d, 0xda, 0x66, 0x0b, 0xc6, 0xb1, 0xfc, 0xfd, 0xa5, 0x13, 0x67, 0xcb, 0x69, 0x54, 0x5f, 0x4e, + 0x60, 0x55, 0xbe, 0x28, 0xf8, 0x9c, 0xed, 0x7a, 0xee, 0x6e, 0x6d, 0x4a, 0x6d, 0x62, 0x54, 0x2e, + 0x62, 0x25, 0x04, 0xbd, 0x69, 0x40, 0x89, 0x74, 0xbb, 0xb6, 0x47, 0x3c, 0xcb, 0xee, 0xb2, 0x85, + 0x9c, 0x10, 0xfa, 0xcc, 0xf0, 0x42, 0xab, 0x21, 0x33, 0x29, 0x79, 0x4e, 0x49, 0x2e, 0x69, 0x10, + 0xac, 0xcb, 0x5c, 0x7c, 0x1c, 0x4a, 0xda, 0x56, 0xd1, 0x0c, 0xe4, 0xb7, 0xe9, 0xae, 0xd4, 0x2f, + 0xe6, 0x3f, 0xd1, 0x7c, 0x44, 0xa1, 0x4a, 0x83, 0xa7, 0x73, 0xa7, 0x8c, 0xc5, 0xa7, 0x60, 0x26, + 0x2e, 0x30, 0x0b, 0xbd, 0xf9, 0x8e, 0x01, 0xf3, 0xda, 0x29, 0x30, 0xbd, 0x46, 0x5d, 0xda, 0xad, + 0x53, 0x54, 0x81, 0x22, 0xbf, 0x4b, 0xe6, 0x90, 0xba, 0x7f, 0xd5, 0xb3, 0xea, 0x20, 0xc5, 0xcb, + 0x3e, 0x00, 0x87, 0x38, 0x81, 0x59, 0xe4, 0xf6, 0x33, 0x0b, 0xa7, 0x45, 0x18, 0x5d, 0xc8, 0x47, + 0xcd, 0x62, 0x9d, 0x2f, 0x62, 0x09, 0x33, 0x3f, 0x0f, 0x77, 0xfb, 0xfb, 0xd9, 0xa4, 0x1d, 0xa7, + 0x4d, 0x3c, 0x1a, 0x6e, 0xea, 0x40, 0xd3, 0x33, 0xa7, 0x61, 0xb2, 0xea, 0x38, 0xae, 0xbd, 0x43, + 0x1b, 0x1b, 0x1e, 0x69, 0x52, 0xf3, 0x5b, 0x06, 0x1c, 0xae, 0xba, 0x4d, 0x7b, 0xf5, 0x4c, 0xd5, + 0x71, 0x2e, 0x50, 0xd2, 0xf6, 0x5a, 0x1b, 0x1e, 0xf1, 0x7a, 0x0c, 0x3d, 0x05, 0xa3, 0x4c, 0xfc, + 0x52, 0xec, 0xee, 0xf3, 0x2d, 0x44, 0xc2, 0x6f, 0xde, 0x58, 0x9e, 0x4f, 0x20, 0xa4, 0x58, 0x51, + 0xa1, 0x07, 0x60, 0xac, 0x43, 0x19, 0x23, 0x4d, 0xff, 0xcc, 0xd3, 0x8a, 0xc1, 0xd8, 0x25, 0xb9, + 0x8c, 0x7d, 0xb8, 0xf9, 0xa7, 0x1c, 0x4c, 0x07, 0xbc, 0x94, 0xf8, 0xdb, 0xa0, 0xe0, 0x1e, 0x4c, + 0xb4, 0xb4, 0x13, 0x0a, 0x3d, 0x97, 0x4e, 0x3c, 0x91, 0xd2, 0x96, 0x93, 0x94, 0x54, 0x9b, 0x57, + 0x62, 0x26, 0xf4, 0x55, 0x1c, 0x11, 0x83, 0x3a, 0x00, 0x6c, 0xb7, 0x5b, 0x57, 0x42, 0x0b, 0x42, + 0xe8, 0xe3, 0x19, 0x85, 0x6e, 0x04, 0x0c, 0x6a, 0x48, 0x89, 0x84, 0x70, 0x0d, 0x6b, 0x02, 0xcc, + 0x5f, 0x1b, 0x30, 0x97, 0x40, 0x87, 0x9e, 0x8c, 0xdd, 0xe7, 0xbd, 0x7d, 0xf7, 0x89, 0xfa, 0xc8, + 0xc2, 0xdb, 0x7c, 0x08, 0xc6, 0x5d, 0xba, 0x63, 0x31, 0xcb, 0xee, 0x2a, 0x0d, 0xcf, 0x28, 0xfa, + 0x71, 0xac, 0xd6, 0x71, 0x80, 0x81, 0x1e, 0x84, 0xa2, 0xff, 0x9b, 0xab, 0x39, 0xcf, 0xcd, 0x99, + 0x5f, 0x9c, 0x8f, 0xca, 0x70, 0x08, 0x37, 0x3f, 0x31, 0xb4, 0xdb, 0xbf, 0xe2, 0x34, 0x88, 0x47, + 0xb9, 0xf1, 0x10, 0xc7, 0xb9, 0x1c, 0x1a, 0x73, 0x60, 0x3c, 0x55, 0xb9, 0x8c, 0x7d, 0x38, 0x3a, + 0x05, 0x13, 0xea, 0xa7, 0xb4, 0x15, 0xb9, 0xbb, 0xe0, 0x62, 0xaa, 0x1a, 0x0c, 0x47, 0x30, 0x51, + 0x0f, 0x26, 0x99, 0xdd, 0x73, 0xeb, 0x54, 0x0a, 0x95, 0x3b, 0x2d, 0x9d, 0x38, 0x95, 0xe5, 0x6e, + 0x36, 0x34, 0x06, 0xb5, 0xc3, 0x4a, 0xe8, 0xa4, 0xbe, 0xca, 0x70, 0x54, 0x8a, 0xf9, 0x1a, 0x80, + 0xa4, 0xbd, 0x40, 0xdb, 0x1d, 0x54, 0x87, 0x51, 0xab, 0x43, 0x9a, 0xd4, 0x8f, 0xe7, 0x99, 0xcc, + 0x91, 0x73, 0x58, 0xe3, 0xd4, 0x6a, 0x03, 0x41, 0x14, 0x17, 0x8b, 0x0c, 0x2b, 0xd6, 0xe6, 0xbb, + 0x81, 0x97, 0xc7, 0x28, 0x78, 0xd0, 0x11, 0x38, 0x4a, 0xcd, 0x41, 0xd0, 0x11, 0x38, 0x58, 0xc2, + 0xd0, 0x51, 0x19, 0x31, 0xa5, 0x66, 0x4b, 0x0a, 0x25, 0xff, 0x2c, 0xdd, 0x95, 0xe1, 0xf3, 0x09, + 0x3f, 0x7c, 0xca, 0xc0, 0xf5, 0x7f, 0x91, 0x7c, 0xc6, 0xe3, 0x84, 0x26, 0x50, 0xac, 0x6d, 0xee, + 0x3a, 0x41, 0x9e, 0x7b, 0xc3, 0xbf, 0xfc, 0x67, 0x7b, 0xcc, 0xb3, 0x3b, 0xd6, 0x57, 0x29, 0x6a, + 0xc5, 0x54, 0xf2, 0x85, 0x2c, 0x2a, 0x09, 0xd8, 0xa4, 0xd1, 0x8b, 0x0b, 0x8b, 0x83, 0xa9, 0xd2, + 0xe9, 0xa6, 0x02, 0xc5, 0x1e, 0xa3, 0x67, 0xac, 0x26, 0x65, 0x9e, 0xd0, 0xd0, 0x78, 0x18, 0xa7, + 0xae, 0xf8, 0x00, 0x1c, 0xe2, 0x98, 0x7f, 0xcf, 0x01, 0xea, 0xb7, 0x1d, 0x6e, 0xf1, 0x2e, 0x75, + 0xec, 0x2b, 0xf8, 0x62, 0xdc, 0xe2, 0xb1, 0x5c, 0xc6, 0x3e, 0x9c, 0xef, 0xab, 0xde, 0x22, 0xae, + 0x17, 0xaf, 0x1f, 0x56, 0xf9, 0x22, 0x96, 0x30, 0xb4, 0x0e, 0xf3, 0x3d, 0xc1, 0x79, 0x93, 0xb8, + 0x4d, 0xea, 0xf9, 0x9e, 0x27, 0xee, 0x68, 0xbc, 0xf6, 0x3f, 0x8a, 0x66, 0xfe, 0x4a, 0x02, 0x0e, + 0x4e, 0xa4, 0x44, 0x5b, 0x50, 0xdc, 0xf6, 0xd5, 0xa4, 0xc2, 0xd8, 0xca, 0x50, 0x37, 0x23, 0x63, + 0x41, 0xf0, 0x17, 0x87, 0x6c, 0xd1, 0x65, 0x28, 0xb4, 0x68, 0xbb, 0xb3, 0x30, 0x22, 0xd8, 0x7f, + 0x2e, 0xab, 0x2f, 0xd4, 0xc6, 0x79, 0xc8, 0xe7, 0xbf, 0xb0, 0xe0, 0x63, 0x7e, 0x03, 0xa4, 0x56, + 0xb2, 0xa8, 0xf7, 0xe0, 0x44, 0xf2, 0x00, 0x8c, 0xed, 0x50, 0x37, 0x50, 0xa7, 0xc6, 0xec, 0xaa, + 0x5c, 0xc6, 0x3e, 0xdc, 0xfc, 0xb9, 0x01, 0xb3, 0x62, 0x07, 0x1b, 0xbd, 0x2d, 0x56, 0x77, 0x2d, + 0x87, 0x17, 0x22, 0xb7, 0x76, 0x37, 0x67, 0x60, 0x86, 0xd1, 0xce, 0x0e, 0x75, 0x57, 0xed, 0x2e, + 0xf3, 0x5c, 0x62, 0x75, 0x3d, 0xb5, 0xad, 0x05, 0x85, 0x3d, 0xb3, 0x11, 0x83, 0xe3, 0x3e, 0x0a, + 0xf3, 0x67, 0x05, 0x18, 0x3b, 0xe7, 0x52, 0xab, 0xd9, 0xf2, 0xd0, 0x57, 0x60, 0xbc, 0xa3, 0xea, + 0x35, 0xb1, 0x3f, 0x7e, 0x13, 0xb2, 0x48, 0x2e, 0xeb, 0x45, 0x72, 0xd9, 0xd9, 0x6e, 0xf2, 0x05, + 0x56, 0xe6, 0xd8, 0xe5, 0x9d, 0xe3, 0xe5, 0xe7, 0xb6, 0x5e, 0xa5, 0x75, 0x8f, 0xd7, 0x7a, 0x61, + 0x9a, 0x0a, 0xd7, 0x70, 0xc0, 0x95, 0x9b, 0x30, 0x69, 0x5b, 0x84, 0x2d, 0x8c, 0x45, 0x4d, 0xb8, + 0xca, 0x17, 0xb1, 0x84, 0x71, 0xd7, 0xba, 0x4e, 0x5c, 0xda, 0xb2, 0x7b, 0x8c, 0x2e, 0x8c, 0x47, + 0x4b, 0x80, 0xe7, 0x7d, 0x00, 0x0e, 0x71, 0xd0, 0x8b, 0x30, 0x56, 0xb7, 0x3b, 0x1d, 0xcb, 0xf3, + 0x43, 0x79, 0x25, 0x9d, 0x01, 0x9d, 0xb7, 0xbc, 0x55, 0x41, 0x17, 0xde, 0x83, 0xfc, 0xcf, 0xb0, + 0xcf, 0x10, 0x6d, 0x04, 0x41, 0xa9, 0x20, 0x58, 0x3f, 0x98, 0x8e, 0xb5, 0x88, 0x15, 0x83, 0xe2, + 0x0f, 0x67, 0x2a, 0xbc, 0x95, 0x2d, 0x8c, 0x64, 0x61, 0x2a, 0x0c, 0x2a, 0x64, 0x2a, 0xfe, 0x32, + 0xac, 0x58, 0xa1, 0x97, 0x82, 0x44, 0x3f, 0x2a, 0xee, 0xee, 0x64, 0x3a, 0xa6, 0xea, 0xf2, 0x55, + 0x95, 0x31, 0x15, 0xad, 0x0e, 0xfc, 0x3a, 0xc0, 0xfc, 0xbd, 0x01, 0x25, 0x85, 0x79, 0xd1, 0x62, + 0x1e, 0x7a, 0xb9, 0xcf, 0x54, 0xca, 0xe9, 0x4c, 0x85, 0x53, 0x0b, 0x43, 0x09, 0xea, 0x08, 0x7f, + 0x45, 0x33, 0x13, 0x0c, 0x23, 0x96, 0x47, 0x3b, 0x7e, 0xdb, 0xf1, 0x70, 0xa6, 0x93, 0x68, 0x01, + 0x9b, 0xf3, 0xc0, 0x92, 0x95, 0xf9, 0x49, 0x01, 0x66, 0x14, 0x46, 0x86, 0xca, 0x39, 0x6a, 0x8c, + 0xa3, 0xd9, 0x8c, 0x31, 0x77, 0xfb, 0x8c, 0x31, 0x7f, 0x3b, 0x8c, 0xb1, 0x70, 0xeb, 0x8c, 0xf1, + 0x75, 0x98, 0xd9, 0xa1, 0xae, 0x75, 0xcd, 0xaa, 0x8b, 0x16, 0x6c, 0xad, 0x7b, 0xcd, 0x56, 0xc1, + 0xfd, 0xd1, 0x74, 0xec, 0xaf, 0xc6, 0xa8, 0x6b, 0xf3, 0x3c, 0xa0, 0xc5, 0x57, 0x71, 0x9f, 0x14, + 0xf4, 0x96, 0x01, 0x73, 0xfa, 0xe2, 0x05, 0x8b, 0x79, 0xb6, 0xbb, 0xbb, 0x30, 0x26, 0x0e, 0x37, + 0xac, 0xf4, 0x7b, 0xd4, 0x39, 0xe7, 0xae, 0xf6, 0xb3, 0xc6, 0x49, 0xf2, 0xcc, 0x7f, 0xe4, 0x61, + 0x32, 0xe2, 0x5b, 0xe8, 0x3a, 0x80, 0x44, 0xa4, 0x8d, 0xb5, 0xae, 0xaa, 0x71, 0x56, 0x87, 0x70, + 0x52, 0xb5, 0x3b, 0xce, 0x45, 0xb6, 0xd2, 0x41, 0xcc, 0x0d, 0x01, 0x58, 0x13, 0x85, 0xde, 0x80, + 0x12, 0x51, 0xdd, 0xdf, 0x39, 0xdb, 0x55, 0x66, 0x79, 0x66, 0x18, 0xc9, 0xd5, 0x90, 0x4d, 0xbc, + 0x8b, 0x0f, 0x21, 0x58, 0x97, 0xb6, 0xe8, 0xc2, 0x74, 0x6c, 0xbf, 0x09, 0x9d, 0xf8, 0x9a, 0xde, + 0x89, 0xa7, 0x0e, 0x5d, 0x3e, 0x5f, 0xd1, 0xd2, 0xea, 0xed, 0x3f, 0x83, 0x99, 0xf8, 0x4e, 0x6f, + 0x99, 0xd0, 0x48, 0x1f, 0xad, 0xcf, 0x0c, 0x7e, 0x93, 0x83, 0x62, 0xe0, 0xc4, 0x59, 0x52, 0xfd, + 0x22, 0xe4, 0xac, 0x86, 0x4a, 0xf4, 0xa0, 0xb0, 0x72, 0x6b, 0x67, 0x70, 0xce, 0x6a, 0xa0, 0xfb, + 0x60, 0x74, 0xcb, 0x25, 0xdd, 0x7a, 0x4b, 0xa5, 0xf6, 0xc0, 0xdf, 0x6a, 0x62, 0x15, 0x2b, 0x28, + 0x2f, 0xd5, 0x3d, 0xd2, 0x14, 0xe5, 0x99, 0x56, 0xaa, 0x6f, 0x92, 0x26, 0xe6, 0xeb, 0xe8, 0x3c, + 0xcc, 0xca, 0xde, 0x74, 0xb5, 0x45, 0xeb, 0xdb, 0x72, 0x8b, 0xc2, 0x1f, 0x8b, 0xb5, 0xbb, 0x15, + 0xf2, 0xec, 0x85, 0x38, 0x02, 0xee, 0xa7, 0xd1, 0xbb, 0xfb, 0xd1, 0xfd, 0xbb, 0x7b, 0xbe, 0x75, + 0xd2, 0xf3, 0x5a, 0xb6, 0xab, 0x92, 0x7d, 0xb0, 0xf5, 0xaa, 0x58, 0xc5, 0x0a, 0x6a, 0xce, 0xc1, + 0xec, 0x79, 0xcb, 0xbb, 0xd0, 0xdb, 0x5a, 0xef, 0xb5, 0xdb, 0x98, 0xbe, 0xd6, 0xe3, 0xd5, 0xf2, + 0x2f, 0x46, 0x60, 0xf2, 0xbc, 0xe5, 0x09, 0x5d, 0x65, 0x2e, 0x94, 0x37, 0xe0, 0xb0, 0xd5, 0x65, + 0xb4, 0xde, 0x73, 0xe9, 0xc6, 0xb6, 0xe5, 0x6c, 0x5e, 0xdc, 0x10, 0x96, 0xb2, 0xab, 0xea, 0xf4, + 0xa3, 0x8a, 0xf0, 0xf0, 0x5a, 0x12, 0x12, 0x4e, 0xa6, 0x45, 0x27, 0x00, 0x5c, 0x4a, 0x1a, 0x35, + 0xfd, 0x36, 0x02, 0xc7, 0xc3, 0x01, 0x04, 0x6b, 0x58, 0x68, 0x05, 0x4a, 0xd7, 0x5d, 0xcb, 0xa3, + 0x8a, 0x48, 0xde, 0x4e, 0xe0, 0x32, 0xcf, 0x87, 0x20, 0xac, 0xe3, 0xa1, 0x1d, 0x28, 0x39, 0xa1, + 0x2e, 0x54, 0xdc, 0x4c, 0x19, 0x29, 0x34, 0x25, 0xae, 0xbb, 0x76, 0xc7, 0xe6, 0x21, 0xe9, 0x12, + 0xad, 0xb7, 0x48, 0xd7, 0x62, 0x9d, 0xda, 0x34, 0x97, 0xab, 0xa1, 0x60, 0x5d, 0x10, 0x6a, 0xc2, + 0xa8, 0x4b, 0xbb, 0x0d, 0xea, 0xaa, 0x0a, 0x22, 0xa5, 0xc8, 0x67, 0xf9, 0x12, 0x16, 0x84, 0x09, + 0x22, 0x81, 0x5f, 0xb9, 0x84, 0x62, 0xc5, 0x1e, 0x75, 0xf5, 0x96, 0x62, 0x4c, 0xc8, 0xaa, 0xa6, + 0x94, 0xe5, 0x93, 0x25, 0x48, 0x1a, 0xdc, 0x5e, 0xbc, 0xa8, 0xda, 0x8b, 0x71, 0x21, 0xea, 0xc9, + 0x74, 0xa2, 0x78, 0x3b, 0x91, 0x20, 0x25, 0xde, 0x6a, 0xfc, 0xa1, 0x00, 0xd3, 0xe7, 0xad, 0xa1, + 0xeb, 0x7c, 0x0f, 0xee, 0x92, 0xd9, 0x7d, 0x83, 0xb6, 0x69, 0x9d, 0x53, 0x6f, 0x78, 0x2e, 0xf1, + 0x68, 0xd3, 0xef, 0xbb, 0x4f, 0x2b, 0xd2, 0xbb, 0x56, 0x93, 0xd1, 0x6e, 0x0e, 0x06, 0xe1, 0x41, + 0xac, 0x53, 0x87, 0x95, 0xa4, 0x1e, 0xa3, 0x90, 0xb5, 0xc7, 0xe0, 0x35, 0x14, 0x69, 0xb7, 0xed, + 0xeb, 0x9b, 0xa4, 0xc9, 0x54, 0xd4, 0x09, 0x6a, 0xa8, 0xaa, 0x0f, 0xc0, 0x21, 0x0e, 0x2a, 0x03, + 0x58, 0xcd, 0xae, 0xed, 0x52, 0x41, 0x31, 0x2a, 0x06, 0x49, 0x53, 0xdc, 0xcf, 0xd6, 0x82, 0x55, + 0xac, 0x61, 0x0c, 0x76, 0xf8, 0xb1, 0x4f, 0xe1, 0xf0, 0x8f, 0xc0, 0x84, 0xd5, 0xad, 0xb7, 0x7b, + 0x0d, 0xba, 0x4e, 0xbc, 0x16, 0x5b, 0x18, 0x17, 0xdb, 0x98, 0xd9, 0xbb, 0xb1, 0x3c, 0xb1, 0xa6, + 0xad, 0xe3, 0x08, 0x16, 0xa7, 0xa2, 0xaf, 0x6b, 0x54, 0xc5, 0x90, 0xea, 0xec, 0xeb, 0x3a, 0x95, + 0x8e, 0x65, 0xfe, 0xd9, 0x80, 0x51, 0x19, 0x7f, 0xd1, 0x4a, 0x6c, 0x5e, 0x77, 0xb4, 0x6f, 0x5e, + 0x57, 0x4a, 0x1a, 0xbb, 0x9a, 0x30, 0x6a, 0x31, 0xd6, 0xa3, 0xb2, 0xea, 0x2c, 0x4a, 0xb7, 0x5b, + 0x13, 0x2b, 0x58, 0x41, 0x90, 0x05, 0x40, 0xfc, 0x81, 0x9b, 0x5f, 0x42, 0xae, 0x64, 0x9d, 0x48, + 0xc6, 0xa6, 0x91, 0x01, 0x80, 0x61, 0x8d, 0xb9, 0xf9, 0x53, 0x03, 0xee, 0xe6, 0x4e, 0x22, 0xca, + 0xc2, 0x33, 0xd4, 0xe1, 0x7e, 0xdf, 0xad, 0xef, 0xaa, 0x58, 0x2e, 0x62, 0xa9, 0x63, 0x33, 0x4b, + 0x54, 0x66, 0x46, 0x3c, 0x96, 0xfa, 0x10, 0xac, 0x61, 0xa5, 0x68, 0x88, 0x2b, 0x50, 0x14, 0xd5, + 0x27, 0x57, 0xa9, 0xb2, 0xeb, 0xc0, 0xcc, 0x56, 0x7d, 0x00, 0x0e, 0x71, 0xcc, 0xbf, 0x18, 0x30, + 0x3d, 0xd4, 0x60, 0xec, 0x29, 0x98, 0x12, 0x79, 0x9f, 0x9d, 0xb3, 0xda, 0xe2, 0x06, 0xd5, 0xae, + 0x8e, 0x28, 0xec, 0xa9, 0xab, 0x11, 0x28, 0x8e, 0x61, 0xfb, 0x83, 0xb5, 0xfc, 0x41, 0x83, 0xb5, + 0xc2, 0x10, 0x83, 0xb5, 0x8f, 0x0c, 0x38, 0x92, 0x1c, 0xba, 0xd0, 0x2b, 0xb1, 0x01, 0xdb, 0x4a, + 0xfa, 0x40, 0x98, 0x62, 0xaa, 0xc6, 0xd3, 0x87, 0x6a, 0x24, 0x64, 0x85, 0xf9, 0x74, 0x7a, 0xf6, + 0x89, 0x66, 0x32, 0xa8, 0xb9, 0x30, 0x7f, 0x65, 0x80, 0xbc, 0x8f, 0x2c, 0x81, 0xf6, 0x04, 0x40, + 0x53, 0x15, 0x14, 0xf8, 0xa2, 0xba, 0xaf, 0xc0, 0xe6, 0xce, 0x07, 0x10, 0xac, 0x61, 0xf9, 0x55, + 0x55, 0x7e, 0x40, 0x55, 0x75, 0x1f, 0x8c, 0x36, 0xe4, 0x00, 0xb0, 0x10, 0x8d, 0xa2, 0x6a, 0xfa, + 0xa7, 0xa0, 0xe6, 0x3b, 0x05, 0x98, 0x15, 0xfb, 0x1d, 0x36, 0x49, 0x0c, 0xb3, 0x77, 0x07, 0x8e, + 0x88, 0x7b, 0xe9, 0xcf, 0x2b, 0xf2, 0x38, 0xa7, 0x14, 0xfd, 0x91, 0xb5, 0x44, 0xac, 0x9b, 0x03, + 0x21, 0x78, 0x00, 0xdf, 0xff, 0x96, 0x64, 0xf1, 0x10, 0x8c, 0x3b, 0x6d, 0xe2, 0x5d, 0xb3, 0xdd, + 0x8e, 0xaa, 0x4c, 0x83, 0x51, 0xc4, 0xba, 0x5a, 0xc7, 0x01, 0xc6, 0xe0, 0xd4, 0x32, 0x3e, 0x7c, + 0x6a, 0x31, 0xbb, 0x70, 0x44, 0x2b, 0x9a, 0x6e, 0xff, 0xec, 0xf9, 0x2d, 0x03, 0x8e, 0xee, 0x5b, + 0xa5, 0xa1, 0x46, 0x2c, 0x34, 0x3c, 0x99, 0xb9, 0xf4, 0x4b, 0x33, 0x77, 0x7f, 0xc7, 0x80, 0xf9, + 0xe1, 0x47, 0xee, 0xc7, 0xa0, 0xe0, 0x84, 0xb1, 0x36, 0xc8, 0x00, 0x22, 0xc2, 0x0a, 0x48, 0x54, + 0x31, 0xf9, 0x14, 0x8a, 0x79, 0xd3, 0x80, 0x7b, 0xf6, 0x29, 0x29, 0xd1, 0x56, 0x4c, 0x2d, 0xa7, + 0x33, 0x56, 0xa9, 0x69, 0x94, 0xf2, 0xa3, 0x1c, 0x8c, 0xad, 0xbb, 0xf6, 0xab, 0xb4, 0x7e, 0x27, + 0x26, 0xb0, 0xcf, 0x41, 0x81, 0x39, 0xb4, 0xae, 0x7a, 0xde, 0xe3, 0x29, 0x9b, 0x0a, 0xb9, 0xbd, + 0x0d, 0x87, 0xd6, 0x65, 0xfd, 0xcb, 0x7f, 0x61, 0xc1, 0x48, 0x1b, 0x3b, 0xe6, 0xb3, 0xb4, 0xd1, + 0x3e, 0xcb, 0x83, 0xc7, 0x8e, 0x0a, 0xf3, 0x33, 0x3b, 0x76, 0x54, 0xfb, 0x1b, 0x30, 0x76, 0xfc, + 0x5e, 0x78, 0x02, 0xae, 0x34, 0xf4, 0x75, 0x98, 0x75, 0x7c, 0x3b, 0x5b, 0xb7, 0xdb, 0x56, 0xdd, + 0xca, 0x9a, 0x8e, 0xd7, 0x23, 0xe4, 0xbb, 0x61, 0x03, 0xbf, 0x1e, 0xe7, 0x8b, 0xfb, 0x45, 0x99, + 0x36, 0x4c, 0x46, 0x54, 0x8f, 0x4e, 0xfa, 0xaf, 0x1f, 0x44, 0xcb, 0x4d, 0xf9, 0xfa, 0xc1, 0xcd, + 0x1b, 0xcb, 0x13, 0x0a, 0x5d, 0x7f, 0x1d, 0x21, 0xcb, 0x43, 0xfe, 0x9f, 0xe4, 0xa0, 0x18, 0xec, + 0xec, 0x0e, 0x18, 0xf8, 0x17, 0x23, 0x06, 0x7e, 0x32, 0xa3, 0x4e, 0x13, 0x4d, 0xfc, 0x95, 0x98, + 0x89, 0x67, 0xbd, 0xa8, 0x03, 0x8c, 0xfc, 0x9f, 0x86, 0xb8, 0x13, 0x89, 0x2b, 0x66, 0x98, 0x07, + 0x8f, 0xa5, 0x09, 0x8c, 0x5d, 0x93, 0x93, 0x39, 0x75, 0xd0, 0x47, 0x33, 0x8d, 0xf3, 0x82, 0x09, + 0x78, 0x78, 0x71, 0x3e, 0xc4, 0xe7, 0x8b, 0xbe, 0x74, 0x6b, 0x4e, 0x0d, 0x09, 0x27, 0x7e, 0x4f, + 0x3f, 0xf1, 0x1d, 0x70, 0xec, 0xcd, 0xa8, 0x63, 0x57, 0x32, 0x9e, 0x64, 0x80, 0x6b, 0x7f, 0x37, + 0x07, 0x73, 0xfd, 0x39, 0x83, 0x21, 0x06, 0x53, 0x4d, 0x7d, 0x74, 0xe5, 0xfb, 0xf7, 0xc9, 0xd4, + 0x0f, 0x02, 0x42, 0xda, 0xb0, 0xa5, 0x88, 0x2c, 0x33, 0x1c, 0x13, 0x81, 0xde, 0x80, 0x19, 0x12, + 0x7d, 0x99, 0xc2, 0x3f, 0x6d, 0xd6, 0x0e, 0x4f, 0x09, 0x0e, 0x6a, 0xb6, 0x18, 0x80, 0xe1, 0x3e, + 0x41, 0xe6, 0xdb, 0x06, 0x4c, 0xc7, 0xc2, 0x12, 0x4f, 0xe9, 0xcc, 0x4b, 0x48, 0xe9, 0x6a, 0x6e, + 0x2a, 0x60, 0x68, 0x1d, 0xe6, 0x49, 0xcf, 0xb3, 0x03, 0xda, 0xb3, 0x5d, 0xb2, 0xd5, 0xa6, 0x0d, + 0x55, 0xd4, 0x04, 0x4f, 0xab, 0xab, 0x09, 0x38, 0x38, 0x91, 0xd2, 0xfc, 0xb2, 0x66, 0x59, 0x22, + 0xe0, 0xa6, 0xda, 0xc7, 0x03, 0x51, 0x77, 0x2a, 0x0e, 0x76, 0x0b, 0xf3, 0xc7, 0x79, 0xed, 0xac, + 0x2a, 0x86, 0xae, 0x44, 0x63, 0xe8, 0x72, 0x3c, 0x86, 0x4e, 0x85, 0xca, 0x19, 0x2e, 0x8a, 0xa2, + 0xd7, 0x34, 0xff, 0xc8, 0x67, 0x79, 0x72, 0x10, 0xdb, 0x6a, 0xd9, 0x7f, 0x21, 0x4f, 0x8e, 0xef, + 0x03, 0xa7, 0xf1, 0x97, 0x35, 0xa7, 0xe9, 0xc1, 0xb4, 0x4c, 0x1f, 0xb4, 0xa1, 0x94, 0xa0, 0x9e, + 0xfe, 0x0f, 0x1b, 0x6a, 0xe6, 0xf6, 0x6e, 0x2c, 0x2b, 0xd5, 0x05, 0x2c, 0x71, 0x5c, 0xc6, 0xe2, + 0x13, 0x30, 0x19, 0xd9, 0x63, 0xa6, 0xf7, 0xf6, 0xbe, 0x06, 0x47, 0xf7, 0x1d, 0x80, 0xf2, 0x6a, + 0x45, 0x6e, 0x5e, 0x45, 0x99, 0xc7, 0x52, 0xfb, 0x64, 0x74, 0x40, 0x2d, 0xc3, 0x9a, 0x5c, 0xc6, + 0x8a, 0xa5, 0xf9, 0x6e, 0x0e, 0x66, 0xb8, 0x4f, 0x46, 0xda, 0xbc, 0x75, 0xc8, 0x37, 0x2d, 0x4f, + 0x89, 0x5b, 0x49, 0x2d, 0x4e, 0xe7, 0x51, 0x1b, 0xe3, 0x6d, 0x27, 0x0f, 0x00, 0x9c, 0x15, 0x7a, + 0xc1, 0x2f, 0x96, 0x73, 0x59, 0x8e, 0xd0, 0xd7, 0x80, 0xd6, 0x8a, 0x7d, 0x15, 0xf6, 0x0b, 0xfe, + 0x1b, 0x26, 0xf9, 0x2c, 0x9c, 0xfb, 0xde, 0x73, 0x90, 0x9c, 0xf5, 0xd7, 0x52, 0xcc, 0x1f, 0xe6, + 0x40, 0x7a, 0xdc, 0x1d, 0xa8, 0x00, 0x2e, 0x45, 0x2a, 0x80, 0x94, 0xc1, 0x5e, 0x6c, 0x2e, 0x31, + 0xfb, 0xc7, 0xf3, 0xe0, 0xf1, 0x2c, 0x0c, 0xf7, 0xcf, 0xfc, 0xbf, 0x33, 0xa0, 0x28, 0xf0, 0xee, + 0x40, 0x0e, 0x5c, 0x8f, 0xe6, 0xc0, 0x07, 0x33, 0x9c, 0x62, 0x40, 0xfe, 0xfb, 0x7e, 0x5e, 0xed, + 0x3e, 0x88, 0xb3, 0x2d, 0xe2, 0x36, 0x54, 0xcb, 0x1f, 0xc6, 0x59, 0xbe, 0x88, 0x25, 0x0c, 0xb5, + 0x61, 0x92, 0x69, 0x86, 0xc2, 0xd4, 0x39, 0x53, 0x66, 0x46, 0xdd, 0xc6, 0x58, 0x6d, 0x56, 0xbc, + 0x71, 0xa7, 0x2f, 0xe1, 0x28, 0x73, 0xf4, 0x1d, 0x03, 0xe6, 0x9c, 0xfe, 0x04, 0xad, 0x0c, 0xe3, + 0xf1, 0x8c, 0x01, 0x34, 0x64, 0x50, 0xbb, 0x6b, 0xef, 0xc6, 0x72, 0x52, 0xea, 0xc7, 0x49, 0xe2, + 0x50, 0x0b, 0x26, 0xf4, 0x07, 0xc4, 0xca, 0x8c, 0x4e, 0x64, 0x7f, 0x12, 0x2d, 0xc7, 0xc8, 0xfa, + 0x0a, 0x8e, 0x70, 0x36, 0xff, 0x38, 0x02, 0x25, 0xcd, 0xee, 0xd0, 0xf1, 0x68, 0x5e, 0xba, 0x27, + 0x9e, 0x97, 0x40, 0x20, 0x47, 0x72, 0x92, 0x0b, 0x53, 0xf5, 0x9e, 0xeb, 0xd2, 0xae, 0x77, 0xee, + 0x96, 0xd4, 0x97, 0x88, 0xd7, 0x2e, 0xab, 0x11, 0x8e, 0x38, 0x26, 0x81, 0x17, 0xb3, 0x2d, 0xf5, + 0x94, 0x3e, 0x9f, 0xe5, 0x29, 0xfd, 0xe0, 0x62, 0xd6, 0x7f, 0x32, 0xef, 0xf3, 0x45, 0xeb, 0x30, + 0x2a, 0x1f, 0x66, 0xaa, 0x67, 0x40, 0x0f, 0xa5, 0x9d, 0x4d, 0x72, 0x1a, 0x19, 0xec, 0xe5, 0x6f, + 0xac, 0xf8, 0xe8, 0xc9, 0xbb, 0x78, 0x40, 0xf2, 0x7e, 0x06, 0x90, 0xbd, 0xc5, 0xa8, 0xbb, 0x43, + 0x1b, 0xe7, 0xe5, 0xc7, 0x04, 0xdc, 0x0c, 0x46, 0x8f, 0x19, 0xf7, 0xe7, 0x6b, 0x8b, 0x8a, 0x0a, + 0x3d, 0xd7, 0x87, 0x81, 0x13, 0xa8, 0x50, 0x0f, 0x66, 0x94, 0xf6, 0x02, 0xfb, 0x53, 0x4f, 0xd0, + 0xb2, 0xb6, 0x3a, 0xe1, 0x5b, 0x15, 0xab, 0x31, 0x86, 0xb8, 0x4f, 0x04, 0x77, 0xdc, 0x36, 0xd1, + 0x32, 0xea, 0x02, 0x0c, 0x2f, 0x53, 0x38, 0xee, 0x45, 0x9d, 0x1b, 0x8e, 0x32, 0x37, 0x57, 0x60, + 0x56, 0x9a, 0xb1, 0x9e, 0x48, 0x0f, 0x7e, 0xcb, 0xfd, 0xb7, 0x06, 0x44, 0x03, 0x42, 0xf4, 0xed, + 0x1d, 0x23, 0xc5, 0xdb, 0x3b, 0xd7, 0x61, 0xaa, 0xe7, 0x30, 0xcf, 0xa5, 0xa4, 0x23, 0x76, 0xe0, + 0x87, 0xcb, 0xc7, 0xb2, 0x04, 0x7d, 0x3d, 0x15, 0x06, 0xf5, 0xfb, 0x95, 0x08, 0x5b, 0x1c, 0x13, + 0x63, 0xfe, 0x3b, 0x07, 0x11, 0xcf, 0x46, 0x6f, 0x1b, 0x30, 0x4b, 0x62, 0xaf, 0xfc, 0xfb, 0x9d, + 0xc4, 0xd3, 0xd9, 0xbe, 0xc3, 0xe8, 0xfb, 0x62, 0x20, 0x9c, 0x19, 0xc4, 0x51, 0x18, 0xee, 0x17, + 0x2a, 0xe2, 0x28, 0xe9, 0xff, 0xa6, 0x23, 0x5b, 0x1c, 0x4d, 0xf8, 0x28, 0x44, 0xc6, 0xd1, 0x04, + 0x00, 0x4e, 0x12, 0x87, 0x5e, 0x82, 0x02, 0x71, 0x9b, 0xfe, 0x83, 0xab, 0xec, 0x62, 0xfd, 0x4f, + 0x75, 0x42, 0xdb, 0xa9, 0xba, 0x4d, 0x86, 0x05, 0x53, 0xf3, 0xaf, 0x39, 0xe8, 0x7b, 0xbb, 0x48, + 0xbd, 0x99, 0x51, 0x48, 0x7c, 0x33, 0xe3, 0x79, 0x28, 0x32, 0x8f, 0xb8, 0xde, 0xa6, 0xd5, 0xa1, + 0xea, 0x11, 0xfd, 0xff, 0xa7, 0x4b, 0xd7, 0x9c, 0x42, 0x3e, 0xac, 0xde, 0xf0, 0x19, 0xe0, 0x90, + 0x17, 0x3a, 0x15, 0x0d, 0xda, 0x66, 0x3c, 0x68, 0xcf, 0xea, 0xdb, 0x1c, 0xb6, 0x9f, 0xe8, 0x40, + 0x49, 0x53, 0xb1, 0x4a, 0x49, 0xa7, 0x33, 0xab, 0x54, 0x0b, 0xbd, 0xf2, 0x53, 0x9e, 0x10, 0xa2, + 0xf3, 0x37, 0xa7, 0x61, 0x32, 0xf2, 0xb2, 0x8e, 0x98, 0x0a, 0x05, 0x0e, 0xf8, 0x59, 0x9d, 0x0a, + 0x05, 0x1b, 0xbc, 0x95, 0x53, 0xa1, 0x90, 0xe9, 0xfe, 0xb5, 0xe1, 0x7b, 0x06, 0x4c, 0x06, 0xb8, + 0x9f, 0xd9, 0x19, 0x49, 0xb0, 0xc3, 0x01, 0x35, 0xe2, 0x2f, 0xf5, 0x53, 0x44, 0xeb, 0xc4, 0xdc, + 0x3e, 0x75, 0x22, 0xeb, 0xaf, 0x13, 0x33, 0xd4, 0x05, 0xf1, 0x1e, 0x4c, 0xfb, 0x40, 0x63, 0x9f, + 0x72, 0xd1, 0xfc, 0x97, 0x01, 0xd3, 0xb1, 0xdb, 0xd1, 0x5d, 0x2a, 0x3f, 0x54, 0x96, 0x2f, 0x0c, + 0x95, 0xe5, 0x2d, 0x28, 0xf1, 0x8c, 0xe8, 0x97, 0x60, 0x23, 0x9f, 0x6e, 0xc4, 0xc7, 0x5d, 0xf3, + 0x62, 0xc8, 0x0e, 0xeb, 0xbc, 0x6b, 0xcf, 0xbc, 0xff, 0xf1, 0xd2, 0xa1, 0x0f, 0x3e, 0x5e, 0x3a, + 0xf4, 0xe1, 0xc7, 0x4b, 0x87, 0xbe, 0xb9, 0xb7, 0x64, 0xbc, 0xbf, 0xb7, 0x64, 0x7c, 0xb0, 0xb7, + 0x64, 0x7c, 0xb8, 0xb7, 0x64, 0x7c, 0xb4, 0xb7, 0x64, 0xfc, 0xe0, 0x6f, 0x4b, 0x87, 0x5e, 0xbc, + 0x37, 0xcd, 0xe7, 0xa1, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0xde, 0xfa, 0x1e, 0xed, 0x45, 0x3a, + 0x00, 0x00, } func (m *AnalysisRunArgument) Marshal() (dAtA []byte, err error) { @@ -4144,6 +4146,18 @@ func (m *PromotionStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.PromotedFreight != nil { + { + size, err := m.PromotedFreight.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } if len(m.Metadata) > 0 { keysForMetadata := make([]string, 0, len(m.Metadata)) for k := range m.Metadata { @@ -5781,6 +5795,10 @@ func (m *PromotionStatus) Size() (n int) { n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) } } + if m.PromotedFreight != nil { + l = m.PromotedFreight.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -6761,6 +6779,7 @@ func (this *PromotionStatus) String() string { `Phase:` + fmt.Sprintf("%v", this.Phase) + `,`, `Message:` + fmt.Sprintf("%v", this.Message) + `,`, `Metadata:` + mapStringForMetadata + `,`, + `PromotedFreight:` + strings.Replace(this.PromotedFreight.String(), "FreightReference", "FreightReference", 1) + `,`, `}`, }, "") return s @@ -14043,6 +14062,42 @@ func (m *PromotionStatus) Unmarshal(dAtA []byte) error { } m.Metadata[mapkey] = mapvalue iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PromotedFreight", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.PromotedFreight == nil { + m.PromotedFreight = &FreightReference{} + } + if err := m.PromotedFreight.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) diff --git a/api/v1alpha1/generated.proto b/api/v1alpha1/generated.proto index 11f78bbc05..734ac66e43 100644 --- a/api/v1alpha1/generated.proto +++ b/api/v1alpha1/generated.proto @@ -892,6 +892,9 @@ message PromotionStatus { // Metadata holds arbitrary metadata set by promotion mechanisms // (e.g. for display purposes, or internal bookkeeping) map metadata = 3; + + // PromotedFreight is the detail of the piece of freight that was referenced by this promotion. + optional FreightReference promotedFreight = 4; } // PullRequestPromotionMechanism describes how to generate a pull request against the write branch during promotion diff --git a/api/v1alpha1/promotion_types.go b/api/v1alpha1/promotion_types.go index 438566cbdd..be66046e53 100644 --- a/api/v1alpha1/promotion_types.go +++ b/api/v1alpha1/promotion_types.go @@ -38,14 +38,14 @@ func (p *PromotionPhase) IsTerminal() bool { } } -//+kubebuilder:resource:shortName={promo,promos} -//+kubebuilder:object:root=true -//+kubebuilder:subresource:status -//+kubebuilder:printcolumn:name=Shard,type=string,JSONPath=`.metadata.labels.kargo\.akuity\.io/shard` -//+kubebuilder:printcolumn:name=Stage,type=string,JSONPath=`.spec.stage` -//+kubebuilder:printcolumn:name=Freight,type=string,JSONPath=`.spec.freight` -//+kubebuilder:printcolumn:name=Phase,type=string,JSONPath=`.status.phase` -//+kubebuilder:printcolumn:name=Age,type=date,JSONPath=`.metadata.creationTimestamp` +// +kubebuilder:resource:shortName={promo,promos} +// +kubebuilder:object:root=true +// +kubebuilder:subresource:status +// +kubebuilder:printcolumn:name=Shard,type=string,JSONPath=`.metadata.labels.kargo\.akuity\.io/shard` +// +kubebuilder:printcolumn:name=Stage,type=string,JSONPath=`.spec.stage` +// +kubebuilder:printcolumn:name=Freight,type=string,JSONPath=`.spec.freight` +// +kubebuilder:printcolumn:name=Phase,type=string,JSONPath=`.status.phase` +// +kubebuilder:printcolumn:name=Age,type=date,JSONPath=`.metadata.creationTimestamp` // Promotion represents a request to transition a particular Stage into a // particular Freight. @@ -55,7 +55,7 @@ type Promotion struct { // Spec describes the desired transition of a specific Stage into a specific // Freight. // - //+kubebuilder:validation:Required + // +kubebuilder:validation:Required Spec *PromotionSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` // Status describes the current state of the transition represented by this // Promotion. @@ -73,13 +73,13 @@ type PromotionSpec struct { // applies. The Stage referenced by this field MUST be in the same // namespace as the Promotion. // - //+kubebuilder:validation:MinLength=1 - //+kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ + // +kubebuilder:validation:MinLength=1 + // +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ Stage string `json:"stage" protobuf:"bytes,1,opt,name=stage"` // Freight specifies the piece of Freight to be promoted into the Stage // referenced by the Stage field. // - //+kubebuilder:validation:MinLength=1 + // +kubebuilder:validation:MinLength=1 Freight string `json:"freight" protobuf:"bytes,2,opt,name=freight"` } @@ -96,6 +96,8 @@ type PromotionStatus struct { // Metadata holds arbitrary metadata set by promotion mechanisms // (e.g. for display purposes, or internal bookkeeping) Metadata map[string]string `json:"metadata,omitempty" protobuf:"bytes,3,rep,name=metadata" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + // PromotedFreight is the detail of the piece of freight that was referenced by this promotion. + PromotedFreight *FreightReference `json:"promotedFreight,omitempty" protobuf:"bytes,4,opt,name=promotedFreight"` } // WithPhase returns a copy of PromotionStatus with the given phase @@ -105,7 +107,7 @@ func (p *PromotionStatus) WithPhase(phase PromotionPhase) *PromotionStatus { return status } -//+kubebuilder:object:root=true +// +kubebuilder:object:root=true // PromotionList contains a list of Promotion type PromotionList struct { diff --git a/api/v1alpha1/zz_generated.deepcopy.go b/api/v1alpha1/zz_generated.deepcopy.go index e2a902de89..854526c139 100644 --- a/api/v1alpha1/zz_generated.deepcopy.go +++ b/api/v1alpha1/zz_generated.deepcopy.go @@ -994,6 +994,11 @@ func (in *PromotionStatus) DeepCopyInto(out *PromotionStatus) { (*out)[key] = val } } + if in.PromotedFreight != nil { + in, out := &in.PromotedFreight, &out.PromotedFreight + *out = new(FreightReference) + (*in).DeepCopyInto(*out) + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PromotionStatus. diff --git a/charts/kargo/resources/crds/kargo.akuity.io_promotions.yaml b/charts/kargo/resources/crds/kargo.akuity.io_promotions.yaml index 0da701b559..c63c202baa 100644 --- a/charts/kargo/resources/crds/kargo.akuity.io_promotions.yaml +++ b/charts/kargo/resources/crds/kargo.akuity.io_promotions.yaml @@ -103,6 +103,212 @@ spec: description: Phase describes where the Promotion currently is in its lifecycle. type: string + promotedFreight: + description: PromotedFreight is the detail of the piece of freight + that was referenced by this promotion. + properties: + charts: + description: Charts describes specific versions of specific Helm + charts. + items: + description: Chart describes a specific version of a Helm chart. + properties: + name: + description: Name specifies the name of the chart. + type: string + repoURL: + description: |- + RepoURL specifies the URL of a Helm chart repository. Classic chart + repositories (using HTTP/S) can contain differently named charts. When this + field points to such a repository, the Name field will specify the name of + the chart within the repository. In the case of a repository within an OCI + registry, the URL implicitly points to a specific chart and the Name field + will be empty. + type: string + version: + description: Version specifies a particular version of the + chart. + type: string + type: object + type: array + commits: + description: Commits describes specific Git repository commits. + items: + description: GitCommit describes a specific commit from a specific + Git repository. + properties: + author: + description: Author is the git commit author + type: string + branch: + description: Branch denotes the branch of the repository + where this commit was found. + type: string + healthCheckCommit: + description: |- + HealthCheckCommit is the ID of a specific commit. When specified, + assessments of Stage health will used this value (instead of ID) when + determining if applicable sources of Argo CD Application resources + associated with the Stage are or are not synced to this commit. Note that + there are cases (as in that of Kargo Render being utilized as a promotion + mechanism) wherein the value of this field may differ from the commit ID + found in the ID field. + type: string + id: + description: |- + ID is the ID of a specific commit in the Git repository specified by + RepoURL. + type: string + message: + description: Message is the git commit message + type: string + repoURL: + description: RepoURL is the URL of a Git repository. + type: string + tag: + description: |- + Tag denotes a tag in the repository that matched selection criteria and + resolved to this commit. + type: string + type: object + type: array + images: + description: Images describes specific versions of specific container + images. + items: + description: Image describes a specific version of a container + image. + properties: + digest: + description: |- + Digest identifies a specific version of the image in the repository + specified by RepoURL. This is a more precise identifier than Tag. + type: string + gitRepoURL: + description: |- + GitRepoURL specifies the URL of a Git repository that contains the source + code for the image repository referenced by the RepoURL field if Kargo was + able to infer it. + type: string + repoURL: + description: RepoURL describes the repository in which the + image can be found. + type: string + tag: + description: |- + Tag identifies a specific version of the image in the repository specified + by RepoURL. + type: string + type: object + type: array + name: + description: |- + Name is system-assigned identifier that is derived deterministically from + the contents of the Freight. i.e. Two pieces of Freight can be compared for + equality by comparing their Names. + type: string + verificationHistory: + description: |- + VerificationHistory is a stack of recent VerificationInfo. By default, + the last ten VerificationInfo are stored. + items: + description: |- + VerificationInfo contains information about the currently running + Verification process. + properties: + analysisRun: + description: |- + AnalysisRun is a reference to the Argo Rollouts AnalysisRun that implements + the Verification process. + properties: + name: + description: Name is the name of the AnalysisRun. + type: string + namespace: + description: Namespace is the namespace of the AnalysisRun. + type: string + phase: + description: Phase is the last observed phase of the + AnalysisRun referenced by Name. + type: string + required: + - name + - namespace + - phase + type: object + id: + description: ID is the identifier of the Verification process. + type: string + message: + description: |- + Message may contain additional information about why the verification + process is in its current phase. + type: string + phase: + description: |- + Phase describes the current phase of the Verification process. Generally, + this will be a reflection of the underlying AnalysisRun's phase, however, + there are exceptions to this, such as in the case where an AnalysisRun + cannot be launched successfully. + type: string + startTime: + description: StartTime is the time at which the Verification + process was started. + format: date-time + type: string + type: object + type: array + verificationInfo: + description: |- + VerificationInfo is information about any verification process that was + associated with this Freight for this Stage. + properties: + analysisRun: + description: |- + AnalysisRun is a reference to the Argo Rollouts AnalysisRun that implements + the Verification process. + properties: + name: + description: Name is the name of the AnalysisRun. + type: string + namespace: + description: Namespace is the namespace of the AnalysisRun. + type: string + phase: + description: Phase is the last observed phase of the AnalysisRun + referenced by Name. + type: string + required: + - name + - namespace + - phase + type: object + id: + description: ID is the identifier of the Verification process. + type: string + message: + description: |- + Message may contain additional information about why the verification + process is in its current phase. + type: string + phase: + description: |- + Phase describes the current phase of the Verification process. Generally, + this will be a reflection of the underlying AnalysisRun's phase, however, + there are exceptions to this, such as in the case where an AnalysisRun + cannot be launched successfully. + type: string + startTime: + description: StartTime is the time at which the Verification + process was started. + format: date-time + type: string + type: object + warehouse: + description: Warehouse is the name of the Warehouse that created + this Freight. + type: string + type: object type: object required: - spec diff --git a/charts/kargo/resources/crds/kargo.akuity.io_stages.yaml b/charts/kargo/resources/crds/kargo.akuity.io_stages.yaml index 294db29991..3e2e81267d 100644 --- a/charts/kargo/resources/crds/kargo.akuity.io_stages.yaml +++ b/charts/kargo/resources/crds/kargo.akuity.io_stages.yaml @@ -1000,6 +1000,218 @@ spec: description: Phase describes where the Promotion currently is in its lifecycle. type: string + promotedFreight: + description: PromotedFreight is the detail of the piece of + freight that was referenced by this promotion. + properties: + charts: + description: Charts describes specific versions of specific + Helm charts. + items: + description: Chart describes a specific version of a + Helm chart. + properties: + name: + description: Name specifies the name of the chart. + type: string + repoURL: + description: |- + RepoURL specifies the URL of a Helm chart repository. Classic chart + repositories (using HTTP/S) can contain differently named charts. When this + field points to such a repository, the Name field will specify the name of + the chart within the repository. In the case of a repository within an OCI + registry, the URL implicitly points to a specific chart and the Name field + will be empty. + type: string + version: + description: Version specifies a particular version + of the chart. + type: string + type: object + type: array + commits: + description: Commits describes specific Git repository + commits. + items: + description: GitCommit describes a specific commit from + a specific Git repository. + properties: + author: + description: Author is the git commit author + type: string + branch: + description: Branch denotes the branch of the repository + where this commit was found. + type: string + healthCheckCommit: + description: |- + HealthCheckCommit is the ID of a specific commit. When specified, + assessments of Stage health will used this value (instead of ID) when + determining if applicable sources of Argo CD Application resources + associated with the Stage are or are not synced to this commit. Note that + there are cases (as in that of Kargo Render being utilized as a promotion + mechanism) wherein the value of this field may differ from the commit ID + found in the ID field. + type: string + id: + description: |- + ID is the ID of a specific commit in the Git repository specified by + RepoURL. + type: string + message: + description: Message is the git commit message + type: string + repoURL: + description: RepoURL is the URL of a Git repository. + type: string + tag: + description: |- + Tag denotes a tag in the repository that matched selection criteria and + resolved to this commit. + type: string + type: object + type: array + images: + description: Images describes specific versions of specific + container images. + items: + description: Image describes a specific version of a + container image. + properties: + digest: + description: |- + Digest identifies a specific version of the image in the repository + specified by RepoURL. This is a more precise identifier than Tag. + type: string + gitRepoURL: + description: |- + GitRepoURL specifies the URL of a Git repository that contains the source + code for the image repository referenced by the RepoURL field if Kargo was + able to infer it. + type: string + repoURL: + description: RepoURL describes the repository in + which the image can be found. + type: string + tag: + description: |- + Tag identifies a specific version of the image in the repository specified + by RepoURL. + type: string + type: object + type: array + name: + description: |- + Name is system-assigned identifier that is derived deterministically from + the contents of the Freight. i.e. Two pieces of Freight can be compared for + equality by comparing their Names. + type: string + verificationHistory: + description: |- + VerificationHistory is a stack of recent VerificationInfo. By default, + the last ten VerificationInfo are stored. + items: + description: |- + VerificationInfo contains information about the currently running + Verification process. + properties: + analysisRun: + description: |- + AnalysisRun is a reference to the Argo Rollouts AnalysisRun that implements + the Verification process. + properties: + name: + description: Name is the name of the AnalysisRun. + type: string + namespace: + description: Namespace is the namespace of the + AnalysisRun. + type: string + phase: + description: Phase is the last observed phase + of the AnalysisRun referenced by Name. + type: string + required: + - name + - namespace + - phase + type: object + id: + description: ID is the identifier of the Verification + process. + type: string + message: + description: |- + Message may contain additional information about why the verification + process is in its current phase. + type: string + phase: + description: |- + Phase describes the current phase of the Verification process. Generally, + this will be a reflection of the underlying AnalysisRun's phase, however, + there are exceptions to this, such as in the case where an AnalysisRun + cannot be launched successfully. + type: string + startTime: + description: StartTime is the time at which the + Verification process was started. + format: date-time + type: string + type: object + type: array + verificationInfo: + description: |- + VerificationInfo is information about any verification process that was + associated with this Freight for this Stage. + properties: + analysisRun: + description: |- + AnalysisRun is a reference to the Argo Rollouts AnalysisRun that implements + the Verification process. + properties: + name: + description: Name is the name of the AnalysisRun. + type: string + namespace: + description: Namespace is the namespace of the + AnalysisRun. + type: string + phase: + description: Phase is the last observed phase + of the AnalysisRun referenced by Name. + type: string + required: + - name + - namespace + - phase + type: object + id: + description: ID is the identifier of the Verification + process. + type: string + message: + description: |- + Message may contain additional information about why the verification + process is in its current phase. + type: string + phase: + description: |- + Phase describes the current phase of the Verification process. Generally, + this will be a reflection of the underlying AnalysisRun's phase, however, + there are exceptions to this, such as in the case where an AnalysisRun + cannot be launched successfully. + type: string + startTime: + description: StartTime is the time at which the Verification + process was started. + format: date-time + type: string + type: object + warehouse: + description: Warehouse is the name of the Warehouse that + created this Freight. + type: string + type: object type: object required: - freight @@ -1511,6 +1723,218 @@ spec: description: Phase describes where the Promotion currently is in its lifecycle. type: string + promotedFreight: + description: PromotedFreight is the detail of the piece of + freight that was referenced by this promotion. + properties: + charts: + description: Charts describes specific versions of specific + Helm charts. + items: + description: Chart describes a specific version of a + Helm chart. + properties: + name: + description: Name specifies the name of the chart. + type: string + repoURL: + description: |- + RepoURL specifies the URL of a Helm chart repository. Classic chart + repositories (using HTTP/S) can contain differently named charts. When this + field points to such a repository, the Name field will specify the name of + the chart within the repository. In the case of a repository within an OCI + registry, the URL implicitly points to a specific chart and the Name field + will be empty. + type: string + version: + description: Version specifies a particular version + of the chart. + type: string + type: object + type: array + commits: + description: Commits describes specific Git repository + commits. + items: + description: GitCommit describes a specific commit from + a specific Git repository. + properties: + author: + description: Author is the git commit author + type: string + branch: + description: Branch denotes the branch of the repository + where this commit was found. + type: string + healthCheckCommit: + description: |- + HealthCheckCommit is the ID of a specific commit. When specified, + assessments of Stage health will used this value (instead of ID) when + determining if applicable sources of Argo CD Application resources + associated with the Stage are or are not synced to this commit. Note that + there are cases (as in that of Kargo Render being utilized as a promotion + mechanism) wherein the value of this field may differ from the commit ID + found in the ID field. + type: string + id: + description: |- + ID is the ID of a specific commit in the Git repository specified by + RepoURL. + type: string + message: + description: Message is the git commit message + type: string + repoURL: + description: RepoURL is the URL of a Git repository. + type: string + tag: + description: |- + Tag denotes a tag in the repository that matched selection criteria and + resolved to this commit. + type: string + type: object + type: array + images: + description: Images describes specific versions of specific + container images. + items: + description: Image describes a specific version of a + container image. + properties: + digest: + description: |- + Digest identifies a specific version of the image in the repository + specified by RepoURL. This is a more precise identifier than Tag. + type: string + gitRepoURL: + description: |- + GitRepoURL specifies the URL of a Git repository that contains the source + code for the image repository referenced by the RepoURL field if Kargo was + able to infer it. + type: string + repoURL: + description: RepoURL describes the repository in + which the image can be found. + type: string + tag: + description: |- + Tag identifies a specific version of the image in the repository specified + by RepoURL. + type: string + type: object + type: array + name: + description: |- + Name is system-assigned identifier that is derived deterministically from + the contents of the Freight. i.e. Two pieces of Freight can be compared for + equality by comparing their Names. + type: string + verificationHistory: + description: |- + VerificationHistory is a stack of recent VerificationInfo. By default, + the last ten VerificationInfo are stored. + items: + description: |- + VerificationInfo contains information about the currently running + Verification process. + properties: + analysisRun: + description: |- + AnalysisRun is a reference to the Argo Rollouts AnalysisRun that implements + the Verification process. + properties: + name: + description: Name is the name of the AnalysisRun. + type: string + namespace: + description: Namespace is the namespace of the + AnalysisRun. + type: string + phase: + description: Phase is the last observed phase + of the AnalysisRun referenced by Name. + type: string + required: + - name + - namespace + - phase + type: object + id: + description: ID is the identifier of the Verification + process. + type: string + message: + description: |- + Message may contain additional information about why the verification + process is in its current phase. + type: string + phase: + description: |- + Phase describes the current phase of the Verification process. Generally, + this will be a reflection of the underlying AnalysisRun's phase, however, + there are exceptions to this, such as in the case where an AnalysisRun + cannot be launched successfully. + type: string + startTime: + description: StartTime is the time at which the + Verification process was started. + format: date-time + type: string + type: object + type: array + verificationInfo: + description: |- + VerificationInfo is information about any verification process that was + associated with this Freight for this Stage. + properties: + analysisRun: + description: |- + AnalysisRun is a reference to the Argo Rollouts AnalysisRun that implements + the Verification process. + properties: + name: + description: Name is the name of the AnalysisRun. + type: string + namespace: + description: Namespace is the namespace of the + AnalysisRun. + type: string + phase: + description: Phase is the last observed phase + of the AnalysisRun referenced by Name. + type: string + required: + - name + - namespace + - phase + type: object + id: + description: ID is the identifier of the Verification + process. + type: string + message: + description: |- + Message may contain additional information about why the verification + process is in its current phase. + type: string + phase: + description: |- + Phase describes the current phase of the Verification process. Generally, + this will be a reflection of the underlying AnalysisRun's phase, however, + there are exceptions to this, such as in the case where an AnalysisRun + cannot be launched successfully. + type: string + startTime: + description: StartTime is the time at which the Verification + process was started. + format: date-time + type: string + type: object + warehouse: + description: Warehouse is the name of the Warehouse that + created this Freight. + type: string + type: object type: object required: - freight diff --git a/internal/controller/promotions/promotions.go b/internal/controller/promotions/promotions.go index 04ab966878..cfbecb13f9 100644 --- a/internal/controller/promotions/promotions.go +++ b/internal/controller/promotions/promotions.go @@ -232,7 +232,7 @@ func (r *reconciler) Reconcile( } return ctrl.Result{}, nil } - logger.Infof("began promotion") + logger.Info("began promotion") } // Update promo status as Running to give visibility in UI. Also, a promo which @@ -389,7 +389,7 @@ func (r *reconciler) promote( ) } if targetFreight == nil { - return nil, fmt.Errorf("Freight %q not found in namespace %q", promo.Spec.Freight, promo.Namespace) + return nil, fmt.Errorf("freight %q not found in namespace %q", promo.Spec.Freight, promo.Namespace) } upstreamStages := make([]string, len(stage.Spec.Subscriptions.UpstreamStages)) for i, upstreamStage := range stage.Spec.Subscriptions.UpstreamStages { @@ -411,7 +411,6 @@ func (r *reconciler) promote( Charts: targetFreight.Charts, Warehouse: targetFreight.Warehouse, } - err = kubeclient.PatchStatus(ctx, r.kargoClient, stage, func(status *kargoapi.StageStatus) { status.Phase = kargoapi.StagePhasePromoting status.CurrentPromotion = &kargoapi.PromotionInfo{ @@ -422,6 +421,13 @@ func (r *reconciler) promote( if err != nil { return nil, err } + // record the freight reference to the promotion's status + err = kubeclient.PatchStatus(ctx, r.kargoClient, &promo, func(status *kargoapi.PromotionStatus) { + status.PromotedFreight = &targetFreightRef + }) + if err != nil { + return nil, err + } newStatus, nextFreight, err := r.promoMechanisms.Promote(ctx, stage, &promo, targetFreightRef) if err != nil { diff --git a/ui/src/gen/schema/promotions.kargo.akuity.io_v1alpha1.json b/ui/src/gen/schema/promotions.kargo.akuity.io_v1alpha1.json index 3a096a96fd..04d48f592c 100644 --- a/ui/src/gen/schema/promotions.kargo.akuity.io_v1alpha1.json +++ b/ui/src/gen/schema/promotions.kargo.akuity.io_v1alpha1.json @@ -51,6 +51,202 @@ "phase": { "description": "Phase describes where the Promotion currently is in its lifecycle.", "type": "string" + }, + "promotedFreight": { + "description": "PromotedFreight is the detail of the piece of freight that was referenced by this promotion.", + "properties": { + "charts": { + "description": "Charts describes specific versions of specific Helm charts.", + "items": { + "description": "Chart describes a specific version of a Helm chart.", + "properties": { + "name": { + "description": "Name specifies the name of the chart.", + "type": "string" + }, + "repoURL": { + "description": "RepoURL specifies the URL of a Helm chart repository. Classic chart\nrepositories (using HTTP/S) can contain differently named charts. When this\nfield points to such a repository, the Name field will specify the name of\nthe chart within the repository. In the case of a repository within an OCI\nregistry, the URL implicitly points to a specific chart and the Name field\nwill be empty.", + "type": "string" + }, + "version": { + "description": "Version specifies a particular version of the chart.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "commits": { + "description": "Commits describes specific Git repository commits.", + "items": { + "description": "GitCommit describes a specific commit from a specific Git repository.", + "properties": { + "author": { + "description": "Author is the git commit author", + "type": "string" + }, + "branch": { + "description": "Branch denotes the branch of the repository where this commit was found.", + "type": "string" + }, + "healthCheckCommit": { + "description": "HealthCheckCommit is the ID of a specific commit. When specified,\nassessments of Stage health will used this value (instead of ID) when\ndetermining if applicable sources of Argo CD Application resources\nassociated with the Stage are or are not synced to this commit. Note that\nthere are cases (as in that of Kargo Render being utilized as a promotion\nmechanism) wherein the value of this field may differ from the commit ID\nfound in the ID field.", + "type": "string" + }, + "id": { + "description": "ID is the ID of a specific commit in the Git repository specified by\nRepoURL.", + "type": "string" + }, + "message": { + "description": "Message is the git commit message", + "type": "string" + }, + "repoURL": { + "description": "RepoURL is the URL of a Git repository.", + "type": "string" + }, + "tag": { + "description": "Tag denotes a tag in the repository that matched selection criteria and\nresolved to this commit.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "images": { + "description": "Images describes specific versions of specific container images.", + "items": { + "description": "Image describes a specific version of a container image.", + "properties": { + "digest": { + "description": "Digest identifies a specific version of the image in the repository\nspecified by RepoURL. This is a more precise identifier than Tag.", + "type": "string" + }, + "gitRepoURL": { + "description": "GitRepoURL specifies the URL of a Git repository that contains the source\ncode for the image repository referenced by the RepoURL field if Kargo was\nable to infer it.", + "type": "string" + }, + "repoURL": { + "description": "RepoURL describes the repository in which the image can be found.", + "type": "string" + }, + "tag": { + "description": "Tag identifies a specific version of the image in the repository specified\nby RepoURL.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "Name is system-assigned identifier that is derived deterministically from\nthe contents of the Freight. i.e. Two pieces of Freight can be compared for\nequality by comparing their Names.", + "type": "string" + }, + "verificationHistory": { + "description": "VerificationHistory is a stack of recent VerificationInfo. By default,\nthe last ten VerificationInfo are stored.", + "items": { + "description": "VerificationInfo contains information about the currently running\nVerification process.", + "properties": { + "analysisRun": { + "description": "AnalysisRun is a reference to the Argo Rollouts AnalysisRun that implements\nthe Verification process.", + "properties": { + "name": { + "description": "Name is the name of the AnalysisRun.", + "type": "string" + }, + "namespace": { + "description": "Namespace is the namespace of the AnalysisRun.", + "type": "string" + }, + "phase": { + "description": "Phase is the last observed phase of the AnalysisRun referenced by Name.", + "type": "string" + } + }, + "required": [ + "name", + "namespace", + "phase" + ], + "type": "object" + }, + "id": { + "description": "ID is the identifier of the Verification process.", + "type": "string" + }, + "message": { + "description": "Message may contain additional information about why the verification\nprocess is in its current phase.", + "type": "string" + }, + "phase": { + "description": "Phase describes the current phase of the Verification process. Generally,\nthis will be a reflection of the underlying AnalysisRun's phase, however,\nthere are exceptions to this, such as in the case where an AnalysisRun\ncannot be launched successfully.", + "type": "string" + }, + "startTime": { + "description": "StartTime is the time at which the Verification process was started.", + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "verificationInfo": { + "description": "VerificationInfo is information about any verification process that was\nassociated with this Freight for this Stage.", + "properties": { + "analysisRun": { + "description": "AnalysisRun is a reference to the Argo Rollouts AnalysisRun that implements\nthe Verification process.", + "properties": { + "name": { + "description": "Name is the name of the AnalysisRun.", + "type": "string" + }, + "namespace": { + "description": "Namespace is the namespace of the AnalysisRun.", + "type": "string" + }, + "phase": { + "description": "Phase is the last observed phase of the AnalysisRun referenced by Name.", + "type": "string" + } + }, + "required": [ + "name", + "namespace", + "phase" + ], + "type": "object" + }, + "id": { + "description": "ID is the identifier of the Verification process.", + "type": "string" + }, + "message": { + "description": "Message may contain additional information about why the verification\nprocess is in its current phase.", + "type": "string" + }, + "phase": { + "description": "Phase describes the current phase of the Verification process. Generally,\nthis will be a reflection of the underlying AnalysisRun's phase, however,\nthere are exceptions to this, such as in the case where an AnalysisRun\ncannot be launched successfully.", + "type": "string" + }, + "startTime": { + "description": "StartTime is the time at which the Verification process was started.", + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "warehouse": { + "description": "Warehouse is the name of the Warehouse that created this Freight.", + "type": "string" + } + }, + "type": "object" } }, "type": "object" diff --git a/ui/src/gen/schema/stages.kargo.akuity.io_v1alpha1.json b/ui/src/gen/schema/stages.kargo.akuity.io_v1alpha1.json index 88c81a17eb..883875ef08 100644 --- a/ui/src/gen/schema/stages.kargo.akuity.io_v1alpha1.json +++ b/ui/src/gen/schema/stages.kargo.akuity.io_v1alpha1.json @@ -864,6 +864,202 @@ "phase": { "description": "Phase describes where the Promotion currently is in its lifecycle.", "type": "string" + }, + "promotedFreight": { + "description": "PromotedFreight is the detail of the piece of freight that was referenced by this promotion.", + "properties": { + "charts": { + "description": "Charts describes specific versions of specific Helm charts.", + "items": { + "description": "Chart describes a specific version of a Helm chart.", + "properties": { + "name": { + "description": "Name specifies the name of the chart.", + "type": "string" + }, + "repoURL": { + "description": "RepoURL specifies the URL of a Helm chart repository. Classic chart\nrepositories (using HTTP/S) can contain differently named charts. When this\nfield points to such a repository, the Name field will specify the name of\nthe chart within the repository. In the case of a repository within an OCI\nregistry, the URL implicitly points to a specific chart and the Name field\nwill be empty.", + "type": "string" + }, + "version": { + "description": "Version specifies a particular version of the chart.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "commits": { + "description": "Commits describes specific Git repository commits.", + "items": { + "description": "GitCommit describes a specific commit from a specific Git repository.", + "properties": { + "author": { + "description": "Author is the git commit author", + "type": "string" + }, + "branch": { + "description": "Branch denotes the branch of the repository where this commit was found.", + "type": "string" + }, + "healthCheckCommit": { + "description": "HealthCheckCommit is the ID of a specific commit. When specified,\nassessments of Stage health will used this value (instead of ID) when\ndetermining if applicable sources of Argo CD Application resources\nassociated with the Stage are or are not synced to this commit. Note that\nthere are cases (as in that of Kargo Render being utilized as a promotion\nmechanism) wherein the value of this field may differ from the commit ID\nfound in the ID field.", + "type": "string" + }, + "id": { + "description": "ID is the ID of a specific commit in the Git repository specified by\nRepoURL.", + "type": "string" + }, + "message": { + "description": "Message is the git commit message", + "type": "string" + }, + "repoURL": { + "description": "RepoURL is the URL of a Git repository.", + "type": "string" + }, + "tag": { + "description": "Tag denotes a tag in the repository that matched selection criteria and\nresolved to this commit.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "images": { + "description": "Images describes specific versions of specific container images.", + "items": { + "description": "Image describes a specific version of a container image.", + "properties": { + "digest": { + "description": "Digest identifies a specific version of the image in the repository\nspecified by RepoURL. This is a more precise identifier than Tag.", + "type": "string" + }, + "gitRepoURL": { + "description": "GitRepoURL specifies the URL of a Git repository that contains the source\ncode for the image repository referenced by the RepoURL field if Kargo was\nable to infer it.", + "type": "string" + }, + "repoURL": { + "description": "RepoURL describes the repository in which the image can be found.", + "type": "string" + }, + "tag": { + "description": "Tag identifies a specific version of the image in the repository specified\nby RepoURL.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "Name is system-assigned identifier that is derived deterministically from\nthe contents of the Freight. i.e. Two pieces of Freight can be compared for\nequality by comparing their Names.", + "type": "string" + }, + "verificationHistory": { + "description": "VerificationHistory is a stack of recent VerificationInfo. By default,\nthe last ten VerificationInfo are stored.", + "items": { + "description": "VerificationInfo contains information about the currently running\nVerification process.", + "properties": { + "analysisRun": { + "description": "AnalysisRun is a reference to the Argo Rollouts AnalysisRun that implements\nthe Verification process.", + "properties": { + "name": { + "description": "Name is the name of the AnalysisRun.", + "type": "string" + }, + "namespace": { + "description": "Namespace is the namespace of the AnalysisRun.", + "type": "string" + }, + "phase": { + "description": "Phase is the last observed phase of the AnalysisRun referenced by Name.", + "type": "string" + } + }, + "required": [ + "name", + "namespace", + "phase" + ], + "type": "object" + }, + "id": { + "description": "ID is the identifier of the Verification process.", + "type": "string" + }, + "message": { + "description": "Message may contain additional information about why the verification\nprocess is in its current phase.", + "type": "string" + }, + "phase": { + "description": "Phase describes the current phase of the Verification process. Generally,\nthis will be a reflection of the underlying AnalysisRun's phase, however,\nthere are exceptions to this, such as in the case where an AnalysisRun\ncannot be launched successfully.", + "type": "string" + }, + "startTime": { + "description": "StartTime is the time at which the Verification process was started.", + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "verificationInfo": { + "description": "VerificationInfo is information about any verification process that was\nassociated with this Freight for this Stage.", + "properties": { + "analysisRun": { + "description": "AnalysisRun is a reference to the Argo Rollouts AnalysisRun that implements\nthe Verification process.", + "properties": { + "name": { + "description": "Name is the name of the AnalysisRun.", + "type": "string" + }, + "namespace": { + "description": "Namespace is the namespace of the AnalysisRun.", + "type": "string" + }, + "phase": { + "description": "Phase is the last observed phase of the AnalysisRun referenced by Name.", + "type": "string" + } + }, + "required": [ + "name", + "namespace", + "phase" + ], + "type": "object" + }, + "id": { + "description": "ID is the identifier of the Verification process.", + "type": "string" + }, + "message": { + "description": "Message may contain additional information about why the verification\nprocess is in its current phase.", + "type": "string" + }, + "phase": { + "description": "Phase describes the current phase of the Verification process. Generally,\nthis will be a reflection of the underlying AnalysisRun's phase, however,\nthere are exceptions to this, such as in the case where an AnalysisRun\ncannot be launched successfully.", + "type": "string" + }, + "startTime": { + "description": "StartTime is the time at which the Verification process was started.", + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "warehouse": { + "description": "Warehouse is the name of the Warehouse that created this Freight.", + "type": "string" + } + }, + "type": "object" } }, "type": "object" @@ -1370,6 +1566,202 @@ "phase": { "description": "Phase describes where the Promotion currently is in its lifecycle.", "type": "string" + }, + "promotedFreight": { + "description": "PromotedFreight is the detail of the piece of freight that was referenced by this promotion.", + "properties": { + "charts": { + "description": "Charts describes specific versions of specific Helm charts.", + "items": { + "description": "Chart describes a specific version of a Helm chart.", + "properties": { + "name": { + "description": "Name specifies the name of the chart.", + "type": "string" + }, + "repoURL": { + "description": "RepoURL specifies the URL of a Helm chart repository. Classic chart\nrepositories (using HTTP/S) can contain differently named charts. When this\nfield points to such a repository, the Name field will specify the name of\nthe chart within the repository. In the case of a repository within an OCI\nregistry, the URL implicitly points to a specific chart and the Name field\nwill be empty.", + "type": "string" + }, + "version": { + "description": "Version specifies a particular version of the chart.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "commits": { + "description": "Commits describes specific Git repository commits.", + "items": { + "description": "GitCommit describes a specific commit from a specific Git repository.", + "properties": { + "author": { + "description": "Author is the git commit author", + "type": "string" + }, + "branch": { + "description": "Branch denotes the branch of the repository where this commit was found.", + "type": "string" + }, + "healthCheckCommit": { + "description": "HealthCheckCommit is the ID of a specific commit. When specified,\nassessments of Stage health will used this value (instead of ID) when\ndetermining if applicable sources of Argo CD Application resources\nassociated with the Stage are or are not synced to this commit. Note that\nthere are cases (as in that of Kargo Render being utilized as a promotion\nmechanism) wherein the value of this field may differ from the commit ID\nfound in the ID field.", + "type": "string" + }, + "id": { + "description": "ID is the ID of a specific commit in the Git repository specified by\nRepoURL.", + "type": "string" + }, + "message": { + "description": "Message is the git commit message", + "type": "string" + }, + "repoURL": { + "description": "RepoURL is the URL of a Git repository.", + "type": "string" + }, + "tag": { + "description": "Tag denotes a tag in the repository that matched selection criteria and\nresolved to this commit.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "images": { + "description": "Images describes specific versions of specific container images.", + "items": { + "description": "Image describes a specific version of a container image.", + "properties": { + "digest": { + "description": "Digest identifies a specific version of the image in the repository\nspecified by RepoURL. This is a more precise identifier than Tag.", + "type": "string" + }, + "gitRepoURL": { + "description": "GitRepoURL specifies the URL of a Git repository that contains the source\ncode for the image repository referenced by the RepoURL field if Kargo was\nable to infer it.", + "type": "string" + }, + "repoURL": { + "description": "RepoURL describes the repository in which the image can be found.", + "type": "string" + }, + "tag": { + "description": "Tag identifies a specific version of the image in the repository specified\nby RepoURL.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "Name is system-assigned identifier that is derived deterministically from\nthe contents of the Freight. i.e. Two pieces of Freight can be compared for\nequality by comparing their Names.", + "type": "string" + }, + "verificationHistory": { + "description": "VerificationHistory is a stack of recent VerificationInfo. By default,\nthe last ten VerificationInfo are stored.", + "items": { + "description": "VerificationInfo contains information about the currently running\nVerification process.", + "properties": { + "analysisRun": { + "description": "AnalysisRun is a reference to the Argo Rollouts AnalysisRun that implements\nthe Verification process.", + "properties": { + "name": { + "description": "Name is the name of the AnalysisRun.", + "type": "string" + }, + "namespace": { + "description": "Namespace is the namespace of the AnalysisRun.", + "type": "string" + }, + "phase": { + "description": "Phase is the last observed phase of the AnalysisRun referenced by Name.", + "type": "string" + } + }, + "required": [ + "name", + "namespace", + "phase" + ], + "type": "object" + }, + "id": { + "description": "ID is the identifier of the Verification process.", + "type": "string" + }, + "message": { + "description": "Message may contain additional information about why the verification\nprocess is in its current phase.", + "type": "string" + }, + "phase": { + "description": "Phase describes the current phase of the Verification process. Generally,\nthis will be a reflection of the underlying AnalysisRun's phase, however,\nthere are exceptions to this, such as in the case where an AnalysisRun\ncannot be launched successfully.", + "type": "string" + }, + "startTime": { + "description": "StartTime is the time at which the Verification process was started.", + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "verificationInfo": { + "description": "VerificationInfo is information about any verification process that was\nassociated with this Freight for this Stage.", + "properties": { + "analysisRun": { + "description": "AnalysisRun is a reference to the Argo Rollouts AnalysisRun that implements\nthe Verification process.", + "properties": { + "name": { + "description": "Name is the name of the AnalysisRun.", + "type": "string" + }, + "namespace": { + "description": "Namespace is the namespace of the AnalysisRun.", + "type": "string" + }, + "phase": { + "description": "Phase is the last observed phase of the AnalysisRun referenced by Name.", + "type": "string" + } + }, + "required": [ + "name", + "namespace", + "phase" + ], + "type": "object" + }, + "id": { + "description": "ID is the identifier of the Verification process.", + "type": "string" + }, + "message": { + "description": "Message may contain additional information about why the verification\nprocess is in its current phase.", + "type": "string" + }, + "phase": { + "description": "Phase describes the current phase of the Verification process. Generally,\nthis will be a reflection of the underlying AnalysisRun's phase, however,\nthere are exceptions to this, such as in the case where an AnalysisRun\ncannot be launched successfully.", + "type": "string" + }, + "startTime": { + "description": "StartTime is the time at which the Verification process was started.", + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "warehouse": { + "description": "Warehouse is the name of the Warehouse that created this Freight.", + "type": "string" + } + }, + "type": "object" } }, "type": "object" diff --git a/ui/src/gen/v1alpha1/generated_pb.ts b/ui/src/gen/v1alpha1/generated_pb.ts index 3c53d4018b..b79e325e13 100644 --- a/ui/src/gen/v1alpha1/generated_pb.ts +++ b/ui/src/gen/v1alpha1/generated_pb.ts @@ -2873,6 +2873,13 @@ export class PromotionStatus extends Message { */ metadata: { [key: string]: string } = {}; + /** + * PromotedFreight is the detail of the piece of freight that was referenced by this promotion. + * + * @generated from field: optional github.com.akuity.kargo.api.v1alpha1.FreightReference promotedFreight = 4; + */ + promotedFreight?: FreightReference; + constructor(data?: PartialMessage) { super(); proto2.util.initPartial(data, this); @@ -2884,6 +2891,7 @@ export class PromotionStatus extends Message { { no: 1, name: "phase", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, { no: 2, name: "message", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, { no: 3, name: "metadata", kind: "map", K: 9 /* ScalarType.STRING */, V: {kind: "scalar", T: 9 /* ScalarType.STRING */} }, + { no: 4, name: "promotedFreight", kind: "message", T: FreightReference, opt: true }, ]); static fromBinary(bytes: Uint8Array, options?: Partial): PromotionStatus {