diff --git a/api/external/infra_proxy/infra_proxy.pb.go b/api/external/infra_proxy/infra_proxy.pb.go index a3896bc8746..2a3955f855d 100644 --- a/api/external/infra_proxy/infra_proxy.pb.go +++ b/api/external/infra_proxy/infra_proxy.pb.go @@ -94,7 +94,7 @@ var file_external_infra_proxy_infra_proxy_proto_rawDesc = []byte{ 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x69, 0x61, 0x6d, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0xa7, 0x57, 0x0a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0xf3, 0x5d, 0x0a, 0x0a, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0xc7, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x31, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, @@ -447,357 +447,409 @@ var file_external_infra_proxy_infra_proxy_proto_rawDesc = []byte{ 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x8a, 0xb5, 0x18, 0x18, 0x12, 0x16, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x67, 0x65, 0x74, 0x12, - 0x8c, 0x02, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x73, 0x12, - 0x2f, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x73, - 0x1a, 0x30, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, + 0x98, 0x02, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x12, 0x33, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, - 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, - 0x67, 0x73, 0x22, 0x99, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x12, 0x39, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, - 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x61, 0x74, - 0x61, 0x5f, 0x62, 0x61, 0x67, 0x73, 0x8a, 0xb5, 0x18, 0x38, 0x0a, 0x36, 0x69, 0x6e, 0x66, 0x72, - 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, - 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x61, - 0x67, 0x73, 0x8a, 0xb5, 0x18, 0x18, 0x12, 0x16, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, - 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x67, 0x65, 0x74, 0x12, 0x9b, - 0x02, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, - 0x6d, 0x12, 0x2e, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, - 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, - 0x67, 0x1a, 0x2f, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, - 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, - 0x61, 0x67, 0x22, 0xa7, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x12, 0x47, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, - 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x61, 0x74, - 0x61, 0x5f, 0x62, 0x61, 0x67, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x7b, 0x69, - 0x74, 0x65, 0x6d, 0x7d, 0x8a, 0xb5, 0x18, 0x38, 0x0a, 0x36, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, - 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, - 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x61, 0x67, 0x73, - 0x8a, 0xb5, 0x18, 0x18, 0x12, 0x16, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, - 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x67, 0x65, 0x74, 0x12, 0xa4, 0x02, 0x0a, - 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x12, 0x34, - 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x42, 0x61, 0x67, 0x1a, 0x35, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, - 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, - 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x22, 0xa5, 0x01, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x3b, 0x22, 0x39, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, + 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x1a, 0x34, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, + 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x9c, 0x01, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x39, 0x22, 0x37, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, - 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x61, 0x67, 0x73, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x03, 0x3a, 0x01, 0x2a, 0x8a, 0xb5, 0x18, 0x38, 0x0a, 0x36, 0x69, 0x6e, + 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x03, 0x3a, 0x01, 0x2a, 0x8a, 0xb5, 0x18, 0x31, 0x0a, 0x2f, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x3a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, + 0x69, 0x64, 0x7d, 0x3a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x8a, 0xb5, 0x18, 0x1b, 0x12, + 0x19, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x8a, 0x02, 0x0a, 0x0c, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x2d, 0x2e, 0x63, 0x68, + 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x68, 0x65, + 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, + 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x9a, 0x01, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x40, 0x2a, 0x3e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, + 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, + 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x7d, 0x8a, 0xb5, 0x18, 0x31, 0x0a, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, + 0x3a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x8a, 0xb5, 0x18, 0x1b, 0x12, 0x19, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, - 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, - 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x64, 0x61, 0x74, 0x61, 0x5f, - 0x62, 0x61, 0x67, 0x73, 0x8a, 0xb5, 0x18, 0x1b, 0x12, 0x19, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, - 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x12, 0xb7, 0x02, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x38, 0x2e, 0x63, 0x68, 0x65, 0x66, - 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, - 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, - 0x74, 0x65, 0x6d, 0x1a, 0x39, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, - 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, - 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x22, 0xac, - 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x22, 0x40, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, + 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0xa1, 0x02, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x65, + 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x30, 0x2e, 0x63, 0x68, 0x65, + 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, + 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x1a, 0x31, 0x2e, 0x63, + 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, + 0xa9, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x46, 0x1a, 0x44, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, + 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, + 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x03, 0x3a, 0x01, 0x2a, 0x8a, 0xb5, 0x18, 0x31, 0x0a, 0x2f, 0x69, 0x6e, 0x66, + 0x72, 0x61, 0x3a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, + 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x8a, 0xb5, 0x18, 0x1b, + 0x12, 0x19, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x8c, 0x02, 0x0a, 0x0b, + 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x73, 0x12, 0x2f, 0x2e, 0x63, 0x68, + 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x73, 0x1a, 0x30, 0x2e, 0x63, + 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x73, 0x22, 0x99, + 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x12, 0x39, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x61, - 0x67, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x03, 0x3a, - 0x01, 0x2a, 0x8a, 0xb5, 0x18, 0x38, 0x0a, 0x36, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, + 0x67, 0x73, 0x8a, 0xb5, 0x18, 0x38, 0x0a, 0x36, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x61, 0x67, 0x73, 0x8a, 0xb5, - 0x18, 0x1b, 0x12, 0x19, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x96, 0x02, - 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x12, - 0x2e, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x1a, - 0x2f, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, + 0x18, 0x18, 0x12, 0x16, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x67, 0x65, 0x74, 0x12, 0x9b, 0x02, 0x0a, 0x0e, 0x47, + 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x2e, 0x2e, + 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x1a, 0x2f, 0x2e, + 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x22, 0xa7, + 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x12, 0x47, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, + 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, + 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x61, + 0x67, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x7b, 0x69, 0x74, 0x65, 0x6d, 0x7d, + 0x8a, 0xb5, 0x18, 0x38, 0x0a, 0x36, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, + 0x64, 0x7d, 0x3a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x61, 0x67, 0x73, 0x8a, 0xb5, 0x18, 0x18, + 0x12, 0x16, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x73, 0x3a, 0x67, 0x65, 0x74, 0x12, 0xa4, 0x02, 0x0a, 0x0d, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x12, 0x34, 0x2e, 0x63, 0x68, 0x65, + 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, + 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, + 0x1a, 0x35, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, + 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x22, 0xa5, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, + 0x22, 0x39, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, + 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x61, 0x67, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x03, 0x3a, 0x01, 0x2a, 0x8a, 0xb5, 0x18, 0x38, 0x0a, 0x36, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, + 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, + 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x61, 0x67, 0x73, + 0x8a, 0xb5, 0x18, 0x1b, 0x12, 0x19, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, + 0xb7, 0x02, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, + 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x38, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, + 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x1a, + 0x39, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, - 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, - 0x22, 0xa3, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x2a, 0x40, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, - 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, - 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x5f, - 0x62, 0x61, 0x67, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x8a, 0xb5, 0x18, 0x38, 0x0a, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x22, 0xac, 0x01, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x42, 0x22, 0x40, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, + 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, + 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x61, 0x67, 0x73, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x03, 0x3a, 0x01, 0x2a, 0x8a, 0xb5, + 0x18, 0x38, 0x0a, 0x36, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, + 0x3a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x61, 0x67, 0x73, 0x8a, 0xb5, 0x18, 0x1b, 0x12, 0x19, + 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x96, 0x02, 0x0a, 0x0d, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x12, 0x2e, 0x2e, 0x63, 0x68, + 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x1a, 0x2f, 0x2e, 0x63, 0x68, + 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x22, 0xa3, 0x01, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x2a, 0x40, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, + 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, + 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x61, 0x67, 0x73, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x8a, 0xb5, 0x18, 0x38, 0x0a, 0x36, 0x69, 0x6e, 0x66, + 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, + 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, + 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, + 0x61, 0x67, 0x73, 0x8a, 0xb5, 0x18, 0x1b, 0x12, 0x19, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, + 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x12, 0xc1, 0x02, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x38, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, + 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, + 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, + 0x65, 0x6d, 0x1a, 0x39, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, + 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, + 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x22, 0xb6, 0x01, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4c, 0x1a, 0x4a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, + 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, + 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x61, 0x67, + 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x7b, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, + 0x64, 0x7d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x03, 0x3a, 0x01, 0x2a, 0x8a, 0xb5, 0x18, 0x38, 0x0a, 0x36, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x61, 0x67, 0x73, 0x8a, 0xb5, 0x18, 0x1b, 0x12, 0x19, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0xc1, 0x02, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x38, 0x2e, 0x63, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x9e, 0x02, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x45, 0x6e, + 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x33, 0x2e, 0x63, 0x68, 0x65, + 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, + 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, + 0x34, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x9f, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, + 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x8a, 0xb5, 0x18, 0x3b, + 0x0a, 0x39, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, + 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x65, + 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x8a, 0xb5, 0x18, 0x18, 0x12, + 0x16, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x73, 0x3a, 0x67, 0x65, 0x74, 0x12, 0xa2, 0x02, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x45, + 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x32, 0x2e, 0x63, 0x68, 0x65, + 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, + 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x33, + 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x22, 0xa6, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x12, 0x43, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, + 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x65, 0x6e, + 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, + 0x7d, 0x8a, 0xb5, 0x18, 0x3b, 0x0a, 0x39, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, + 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, + 0x69, 0x64, 0x7d, 0x3a, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x8a, 0xb5, 0x18, 0x18, 0x12, 0x16, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x67, 0x65, 0x74, 0x12, 0xb0, 0x02, 0x0a, + 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x38, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, + 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, + 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, - 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x1a, 0x39, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, - 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, - 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, - 0x6d, 0x22, 0xb6, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4c, 0x1a, 0x4a, 0x2f, 0x61, 0x70, 0x69, + 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x22, 0xab, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x22, 0x3c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, - 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, - 0x5f, 0x62, 0x61, 0x67, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x7b, 0x69, 0x74, - 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x7d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x03, 0x3a, 0x01, 0x2a, 0x8a, - 0xb5, 0x18, 0x38, 0x0a, 0x36, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, - 0x7d, 0x3a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x61, 0x67, 0x73, 0x8a, 0xb5, 0x18, 0x1b, 0x12, + 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x65, 0x6e, 0x76, 0x69, + 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x03, 0x3a, 0x01, + 0x2a, 0x8a, 0xb5, 0x18, 0x3b, 0x0a, 0x39, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, + 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, + 0x69, 0x64, 0x7d, 0x3a, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x8a, 0xb5, 0x18, 0x1b, 0x12, 0x19, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, + 0xa8, 0x02, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x32, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, + 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x6e, + 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x68, 0x65, 0x66, + 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, + 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xa9, + 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x2a, 0x43, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, + 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, + 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x8a, 0xb5, 0x18, 0x3b, + 0x0a, 0x39, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, + 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x65, + 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x8a, 0xb5, 0x18, 0x1b, 0x12, 0x19, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x9e, 0x02, 0x0a, 0x0f, 0x47, - 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x33, - 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x1a, 0x34, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, - 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, - 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, - 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x9f, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x3e, 0x12, 0x3c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, - 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, - 0x69, 0x64, 0x7d, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x8a, 0xb5, 0x18, 0x3b, 0x0a, 0x39, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, - 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, - 0x64, 0x7d, 0x3a, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x8a, - 0xb5, 0x18, 0x18, 0x12, 0x16, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x67, 0x65, 0x74, 0x12, 0xa2, 0x02, 0x0a, 0x0e, - 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x32, + 0x65, 0x72, 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0xb7, 0x02, 0x0a, 0x11, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x38, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, + 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, + 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x68, 0x65, + 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, + 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0xb2, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x1a, 0x43, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, + 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, + 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x03, 0x3a, 0x01, 0x2a, 0x8a, 0xb5, 0x18, 0x3b, 0x0a, 0x39, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, + 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x8a, 0xb5, 0x18, 0x1b, 0x12, 0x19, 0x69, 0x6e, 0x66, 0x72, 0x61, + 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x12, 0xbc, 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, + 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x63, 0x69, 0x70, 0x65, 0x73, 0x12, 0x32, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, + 0x6e, 0x74, 0x1a, 0x3e, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, - 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xa6, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, - 0x12, 0x43, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, - 0x7d, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, - 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x8a, 0xb5, 0x18, 0x3b, 0x0a, 0x39, 0x69, 0x6e, 0x66, 0x72, 0x61, - 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, - 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x8a, 0xb5, 0x18, 0x18, 0x12, 0x16, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, - 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x67, 0x65, 0x74, - 0x12, 0xb0, 0x02, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, - 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x38, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, - 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, - 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x1a, 0x33, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, - 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xab, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x22, 0x3c, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, - 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x03, 0x3a, 0x01, 0x2a, 0x8a, 0xb5, 0x18, 0x3b, 0x0a, 0x39, 0x69, 0x6e, 0x66, 0x72, 0x61, - 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, - 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x8a, 0xb5, 0x18, 0x1b, 0x12, 0x19, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, - 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x12, 0xa8, 0x02, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, - 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x32, 0x2e, 0x63, 0x68, 0x65, 0x66, - 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, - 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x33, 0x2e, - 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0xa9, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x2a, 0x43, 0x2f, 0x61, 0x70, + 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x63, 0x69, 0x70, 0x65, 0x73, 0x4c, 0x69, + 0x73, 0x74, 0x22, 0xae, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4d, 0x12, 0x4b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, - 0x8a, 0xb5, 0x18, 0x3b, 0x0a, 0x39, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, - 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, - 0x64, 0x7d, 0x3a, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x8a, - 0xb5, 0x18, 0x1b, 0x12, 0x19, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0xb7, - 0x02, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x38, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, - 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, - 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x33, + 0x2f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x3b, 0x0a, 0x39, 0x69, 0x6e, + 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, + 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, + 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x65, 0x6e, 0x76, 0x69, 0x72, + 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x8a, 0xb5, 0x18, 0x18, 0x12, 0x16, 0x69, 0x6e, 0x66, + 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, + 0x67, 0x65, 0x74, 0x12, 0xfb, 0x01, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, + 0x12, 0x2c, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, + 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x1a, 0x2d, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0xb2, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x1a, 0x43, 0x2f, 0x61, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x91, 0x01, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x12, 0x35, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, + 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, + 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x8a, 0xb5, 0x18, + 0x34, 0x0a, 0x32, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, + 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x18, 0x12, 0x16, 0x69, 0x6e, 0x66, 0x72, 0x61, + 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x67, 0x65, + 0x74, 0x12, 0xaf, 0x02, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x34, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, + 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, + 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, + 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x1a, 0x35, 0x2e, 0x63, + 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4e, 0x6f, + 0x64, 0x65, 0x73, 0x22, 0xad, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x53, 0x12, 0x51, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, - 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x65, 0x6e, - 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, - 0x7d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x03, 0x3a, 0x01, 0x2a, 0x8a, 0xb5, 0x18, 0x3b, 0x0a, 0x39, - 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, - 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x65, 0x6e, 0x76, - 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x8a, 0xb5, 0x18, 0x1b, 0x12, 0x19, 0x69, - 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0xbc, 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, - 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x63, 0x69, 0x70, - 0x65, 0x73, 0x12, 0x32, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, - 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, - 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, - 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x3e, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, - 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, - 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, - 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x63, 0x69, 0x70, - 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xae, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4d, 0x12, - 0x4b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, - 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x3b, - 0x0a, 0x39, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, - 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x65, - 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x8a, 0xb5, 0x18, 0x18, 0x12, - 0x16, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x73, 0x3a, 0x67, 0x65, 0x74, 0x12, 0xfb, 0x01, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x4e, - 0x6f, 0x64, 0x65, 0x73, 0x12, 0x2c, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, - 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, - 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4e, 0x6f, 0x64, - 0x65, 0x73, 0x1a, 0x2d, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, + 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x66, + 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x2d, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2f, 0x7b, 0x63, 0x68, + 0x65, 0x66, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x7d, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x8a, + 0xb5, 0x18, 0x34, 0x0a, 0x32, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, + 0x7d, 0x3a, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x18, 0x12, 0x16, 0x69, 0x6e, 0x66, + 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, + 0x67, 0x65, 0x74, 0x12, 0x91, 0x02, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, + 0x64, 0x65, 0x12, 0x31, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, - 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, - 0x73, 0x22, 0x91, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x12, 0x35, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, - 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6e, 0x6f, 0x64, 0x65, - 0x73, 0x8a, 0xb5, 0x18, 0x34, 0x0a, 0x32, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, - 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, - 0x69, 0x64, 0x7d, 0x3a, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x18, 0x12, 0x16, 0x69, - 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x73, 0x3a, 0x67, 0x65, 0x74, 0x12, 0xaf, 0x02, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x41, 0x66, 0x66, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x34, 0x2e, 0x63, 0x68, 0x65, - 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, - 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x2e, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, - 0x1a, 0x35, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, - 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0xad, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x53, - 0x12, 0x51, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, - 0x7d, 0x2f, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x2d, 0x6e, 0x6f, 0x64, 0x65, 0x73, - 0x2f, 0x7b, 0x63, 0x68, 0x65, 0x66, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x7d, 0x2f, 0x7b, 0x6e, 0x61, - 0x6d, 0x65, 0x7d, 0x8a, 0xb5, 0x18, 0x34, 0x0a, 0x32, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, - 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, - 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x18, 0x12, - 0x16, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x73, 0x3a, 0x67, 0x65, 0x74, 0x12, 0x91, 0x02, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, + 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x1a, 0x32, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, + 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x22, 0x9b, 0x01, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x3e, 0x2a, 0x3c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, + 0x69, 0x64, 0x7d, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, + 0x8a, 0xb5, 0x18, 0x34, 0x0a, 0x32, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, + 0x64, 0x7d, 0x3a, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x1b, 0x12, 0x19, 0x69, 0x6e, + 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, + 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x9a, 0x02, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x31, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, - 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x1a, 0x32, 0x2e, 0x63, 0x68, 0x65, 0x66, + 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x1a, 0x32, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x22, 0x9b, 0x01, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x2a, 0x3c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, + 0x73, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x22, 0xa4, 0x01, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x1a, 0x3c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x7d, 0x8a, 0xb5, 0x18, 0x34, 0x0a, 0x32, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, - 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, - 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x1b, - 0x12, 0x19, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x9a, 0x02, 0x0a, 0x0a, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x31, 0x2e, 0x63, 0x68, 0x65, - 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, - 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x1a, 0x32, 0x2e, + 0x61, 0x6d, 0x65, 0x7d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x03, 0x3a, 0x01, 0x2a, 0x8a, 0xb5, 0x18, + 0x34, 0x0a, 0x32, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, + 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x1b, 0x12, 0x19, 0x69, 0x6e, 0x66, 0x72, 0x61, + 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x12, 0xff, 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, + 0x12, 0x2b, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, + 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x1a, 0x2c, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, - 0x65, 0x22, 0xa4, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x1a, 0x3c, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, - 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6e, 0x6f, 0x64, 0x65, - 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x03, 0x3a, 0x01, - 0x2a, 0x8a, 0xb5, 0x18, 0x34, 0x0a, 0x32, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, - 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, - 0x69, 0x64, 0x7d, 0x3a, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x1b, 0x12, 0x19, 0x69, - 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0xff, 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, - 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x2b, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, - 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, - 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4e, 0x6f, 0x64, - 0x65, 0x1a, 0x2c, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, - 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x22, - 0x98, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, - 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, - 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2f, - 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x8a, 0xb5, 0x18, 0x34, 0x0a, 0x32, 0x69, 0x6e, 0x66, 0x72, - 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, - 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x8a, 0xb5, - 0x18, 0x18, 0x12, 0x16, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x67, 0x65, 0x74, 0x12, 0x99, 0x02, 0x0a, 0x0e, 0x47, - 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x32, 0x2e, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x22, 0x98, 0x01, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, + 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, + 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, + 0x65, 0x7d, 0x8a, 0xb5, 0x18, 0x34, 0x0a, 0x32, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, + 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, + 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x18, 0x12, 0x16, + 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x73, 0x3a, 0x67, 0x65, 0x74, 0x12, 0x99, 0x02, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x32, 0x2e, 0x63, 0x68, 0x65, 0x66, + 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, + 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x1a, 0x33, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x1a, 0x33, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, - 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, 0x9d, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x12, - 0x3b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, - 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x3a, - 0x0a, 0x38, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, - 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x18, 0x12, 0x16, - 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x73, 0x3a, 0x67, 0x65, 0x74, 0x12, 0x9d, 0x02, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x31, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, - 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, - 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x32, 0x2e, 0x63, 0x68, - 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x22, - 0xa4, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x44, 0x12, 0x42, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, - 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, - 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x8a, 0xb5, 0x18, 0x3a, - 0x0a, 0x38, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, - 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x18, 0x12, 0x16, - 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x73, 0x3a, 0x67, 0x65, 0x74, 0x42, 0x33, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, - 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, - 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x22, 0x9d, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x12, 0x3b, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, + 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x3a, 0x0a, 0x38, 0x69, 0x6e, + 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, + 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, + 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x18, 0x12, 0x16, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x67, + 0x65, 0x74, 0x12, 0x9d, 0x02, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x66, 0x69, 0x6c, 0x65, 0x12, 0x31, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, + 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, + 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x32, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, + 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x22, 0xa4, 0x01, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x44, 0x12, 0x42, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, + 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, + 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x8a, 0xb5, 0x18, 0x3a, 0x0a, 0x38, 0x69, 0x6e, + 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, + 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, + 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x18, 0x12, 0x16, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x67, + 0x65, 0x74, 0x42, 0x33, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_external_infra_proxy_infra_proxy_proto_goTypes = []interface{}{ @@ -822,56 +874,60 @@ var file_external_infra_proxy_infra_proxy_proto_goTypes = []interface{}{ (*request.UpdateRole)(nil), // 18: chef.automate.api.infra_proxy.request.UpdateRole (*request.Clients)(nil), // 19: chef.automate.api.infra_proxy.request.Clients (*request.Client)(nil), // 20: chef.automate.api.infra_proxy.request.Client - (*request.DataBags)(nil), // 21: chef.automate.api.infra_proxy.request.DataBags - (*request.DataBag)(nil), // 22: chef.automate.api.infra_proxy.request.DataBag - (*request.CreateDataBag)(nil), // 23: chef.automate.api.infra_proxy.request.CreateDataBag - (*request.CreateDataBagItem)(nil), // 24: chef.automate.api.infra_proxy.request.CreateDataBagItem - (*request.UpdateDataBagItem)(nil), // 25: chef.automate.api.infra_proxy.request.UpdateDataBagItem - (*request.Environments)(nil), // 26: chef.automate.api.infra_proxy.request.Environments - (*request.Environment)(nil), // 27: chef.automate.api.infra_proxy.request.Environment - (*request.CreateEnvironment)(nil), // 28: chef.automate.api.infra_proxy.request.CreateEnvironment - (*request.UpdateEnvironment)(nil), // 29: chef.automate.api.infra_proxy.request.UpdateEnvironment - (*request.Nodes)(nil), // 30: chef.automate.api.infra_proxy.request.Nodes - (*request.AffectedNodes)(nil), // 31: chef.automate.api.infra_proxy.request.AffectedNodes - (*request.DeleteNode)(nil), // 32: chef.automate.api.infra_proxy.request.DeleteNode - (*request.UpdateNode)(nil), // 33: chef.automate.api.infra_proxy.request.UpdateNode - (*request.Node)(nil), // 34: chef.automate.api.infra_proxy.request.Node - (*request.Policyfiles)(nil), // 35: chef.automate.api.infra_proxy.request.Policyfiles - (*request.Policyfile)(nil), // 36: chef.automate.api.infra_proxy.request.Policyfile - (*response.GetServers)(nil), // 37: chef.automate.api.infra_proxy.response.GetServers - (*response.GetServer)(nil), // 38: chef.automate.api.infra_proxy.response.GetServer - (*response.CreateServer)(nil), // 39: chef.automate.api.infra_proxy.response.CreateServer - (*response.UpdateServer)(nil), // 40: chef.automate.api.infra_proxy.response.UpdateServer - (*response.DeleteServer)(nil), // 41: chef.automate.api.infra_proxy.response.DeleteServer - (*response.GetOrgs)(nil), // 42: chef.automate.api.infra_proxy.response.GetOrgs - (*response.GetOrg)(nil), // 43: chef.automate.api.infra_proxy.response.GetOrg - (*response.CreateOrg)(nil), // 44: chef.automate.api.infra_proxy.response.CreateOrg - (*response.UpdateOrg)(nil), // 45: chef.automate.api.infra_proxy.response.UpdateOrg - (*response.DeleteOrg)(nil), // 46: chef.automate.api.infra_proxy.response.DeleteOrg - (*response.ResetOrgAdminKey)(nil), // 47: chef.automate.api.infra_proxy.response.ResetOrgAdminKey - (*response.Cookbooks)(nil), // 48: chef.automate.api.infra_proxy.response.Cookbooks - (*response.CookbookVersions)(nil), // 49: chef.automate.api.infra_proxy.response.CookbookVersions - (*response.Cookbook)(nil), // 50: chef.automate.api.infra_proxy.response.Cookbook - (*response.CookbookFileContent)(nil), // 51: chef.automate.api.infra_proxy.response.CookbookFileContent - (*response.Roles)(nil), // 52: chef.automate.api.infra_proxy.response.Roles - (*response.Role)(nil), // 53: chef.automate.api.infra_proxy.response.Role - (*response.Clients)(nil), // 54: chef.automate.api.infra_proxy.response.Clients - (*response.Client)(nil), // 55: chef.automate.api.infra_proxy.response.Client - (*response.DataBags)(nil), // 56: chef.automate.api.infra_proxy.response.DataBags - (*response.DataBag)(nil), // 57: chef.automate.api.infra_proxy.response.DataBag - (*response.CreateDataBag)(nil), // 58: chef.automate.api.infra_proxy.response.CreateDataBag - (*response.CreateDataBagItem)(nil), // 59: chef.automate.api.infra_proxy.response.CreateDataBagItem - (*response.UpdateDataBagItem)(nil), // 60: chef.automate.api.infra_proxy.response.UpdateDataBagItem - (*response.Environments)(nil), // 61: chef.automate.api.infra_proxy.response.Environments - (*response.Environment)(nil), // 62: chef.automate.api.infra_proxy.response.Environment - (*response.EnvironmentRecipesList)(nil), // 63: chef.automate.api.infra_proxy.response.EnvironmentRecipesList - (*response.Nodes)(nil), // 64: chef.automate.api.infra_proxy.response.Nodes - (*response.AffectedNodes)(nil), // 65: chef.automate.api.infra_proxy.response.AffectedNodes - (*response.DeleteNode)(nil), // 66: chef.automate.api.infra_proxy.response.DeleteNode - (*response.UpdateNode)(nil), // 67: chef.automate.api.infra_proxy.response.UpdateNode - (*response.Node)(nil), // 68: chef.automate.api.infra_proxy.response.Node - (*response.Policyfiles)(nil), // 69: chef.automate.api.infra_proxy.response.Policyfiles - (*response.Policyfile)(nil), // 70: chef.automate.api.infra_proxy.response.Policyfile + (*request.CreateClient)(nil), // 21: chef.automate.api.infra_proxy.request.CreateClient + (*request.ClientKey)(nil), // 22: chef.automate.api.infra_proxy.request.ClientKey + (*request.DataBags)(nil), // 23: chef.automate.api.infra_proxy.request.DataBags + (*request.DataBag)(nil), // 24: chef.automate.api.infra_proxy.request.DataBag + (*request.CreateDataBag)(nil), // 25: chef.automate.api.infra_proxy.request.CreateDataBag + (*request.CreateDataBagItem)(nil), // 26: chef.automate.api.infra_proxy.request.CreateDataBagItem + (*request.UpdateDataBagItem)(nil), // 27: chef.automate.api.infra_proxy.request.UpdateDataBagItem + (*request.Environments)(nil), // 28: chef.automate.api.infra_proxy.request.Environments + (*request.Environment)(nil), // 29: chef.automate.api.infra_proxy.request.Environment + (*request.CreateEnvironment)(nil), // 30: chef.automate.api.infra_proxy.request.CreateEnvironment + (*request.UpdateEnvironment)(nil), // 31: chef.automate.api.infra_proxy.request.UpdateEnvironment + (*request.Nodes)(nil), // 32: chef.automate.api.infra_proxy.request.Nodes + (*request.AffectedNodes)(nil), // 33: chef.automate.api.infra_proxy.request.AffectedNodes + (*request.DeleteNode)(nil), // 34: chef.automate.api.infra_proxy.request.DeleteNode + (*request.UpdateNode)(nil), // 35: chef.automate.api.infra_proxy.request.UpdateNode + (*request.Node)(nil), // 36: chef.automate.api.infra_proxy.request.Node + (*request.Policyfiles)(nil), // 37: chef.automate.api.infra_proxy.request.Policyfiles + (*request.Policyfile)(nil), // 38: chef.automate.api.infra_proxy.request.Policyfile + (*response.GetServers)(nil), // 39: chef.automate.api.infra_proxy.response.GetServers + (*response.GetServer)(nil), // 40: chef.automate.api.infra_proxy.response.GetServer + (*response.CreateServer)(nil), // 41: chef.automate.api.infra_proxy.response.CreateServer + (*response.UpdateServer)(nil), // 42: chef.automate.api.infra_proxy.response.UpdateServer + (*response.DeleteServer)(nil), // 43: chef.automate.api.infra_proxy.response.DeleteServer + (*response.GetOrgs)(nil), // 44: chef.automate.api.infra_proxy.response.GetOrgs + (*response.GetOrg)(nil), // 45: chef.automate.api.infra_proxy.response.GetOrg + (*response.CreateOrg)(nil), // 46: chef.automate.api.infra_proxy.response.CreateOrg + (*response.UpdateOrg)(nil), // 47: chef.automate.api.infra_proxy.response.UpdateOrg + (*response.DeleteOrg)(nil), // 48: chef.automate.api.infra_proxy.response.DeleteOrg + (*response.ResetOrgAdminKey)(nil), // 49: chef.automate.api.infra_proxy.response.ResetOrgAdminKey + (*response.Cookbooks)(nil), // 50: chef.automate.api.infra_proxy.response.Cookbooks + (*response.CookbookVersions)(nil), // 51: chef.automate.api.infra_proxy.response.CookbookVersions + (*response.Cookbook)(nil), // 52: chef.automate.api.infra_proxy.response.Cookbook + (*response.CookbookFileContent)(nil), // 53: chef.automate.api.infra_proxy.response.CookbookFileContent + (*response.Roles)(nil), // 54: chef.automate.api.infra_proxy.response.Roles + (*response.Role)(nil), // 55: chef.automate.api.infra_proxy.response.Role + (*response.Clients)(nil), // 56: chef.automate.api.infra_proxy.response.Clients + (*response.Client)(nil), // 57: chef.automate.api.infra_proxy.response.Client + (*response.CreateClient)(nil), // 58: chef.automate.api.infra_proxy.response.CreateClient + (*response.ClientKey)(nil), // 59: chef.automate.api.infra_proxy.response.ClientKey + (*response.DataBags)(nil), // 60: chef.automate.api.infra_proxy.response.DataBags + (*response.DataBag)(nil), // 61: chef.automate.api.infra_proxy.response.DataBag + (*response.CreateDataBag)(nil), // 62: chef.automate.api.infra_proxy.response.CreateDataBag + (*response.CreateDataBagItem)(nil), // 63: chef.automate.api.infra_proxy.response.CreateDataBagItem + (*response.UpdateDataBagItem)(nil), // 64: chef.automate.api.infra_proxy.response.UpdateDataBagItem + (*response.Environments)(nil), // 65: chef.automate.api.infra_proxy.response.Environments + (*response.Environment)(nil), // 66: chef.automate.api.infra_proxy.response.Environment + (*response.EnvironmentRecipesList)(nil), // 67: chef.automate.api.infra_proxy.response.EnvironmentRecipesList + (*response.Nodes)(nil), // 68: chef.automate.api.infra_proxy.response.Nodes + (*response.AffectedNodes)(nil), // 69: chef.automate.api.infra_proxy.response.AffectedNodes + (*response.DeleteNode)(nil), // 70: chef.automate.api.infra_proxy.response.DeleteNode + (*response.UpdateNode)(nil), // 71: chef.automate.api.infra_proxy.response.UpdateNode + (*response.Node)(nil), // 72: chef.automate.api.infra_proxy.response.Node + (*response.Policyfiles)(nil), // 73: chef.automate.api.infra_proxy.response.Policyfiles + (*response.Policyfile)(nil), // 74: chef.automate.api.infra_proxy.response.Policyfile } var file_external_infra_proxy_infra_proxy_proto_depIdxs = []int32{ 0, // 0: chef.automate.api.infra_proxy.InfraProxy.GetServers:input_type -> chef.automate.api.infra_proxy.request.GetServers @@ -896,68 +952,74 @@ var file_external_infra_proxy_infra_proxy_proto_depIdxs = []int32{ 18, // 19: chef.automate.api.infra_proxy.InfraProxy.UpdateRole:input_type -> chef.automate.api.infra_proxy.request.UpdateRole 19, // 20: chef.automate.api.infra_proxy.InfraProxy.GetClients:input_type -> chef.automate.api.infra_proxy.request.Clients 20, // 21: chef.automate.api.infra_proxy.InfraProxy.GetClient:input_type -> chef.automate.api.infra_proxy.request.Client - 21, // 22: chef.automate.api.infra_proxy.InfraProxy.GetDataBags:input_type -> chef.automate.api.infra_proxy.request.DataBags - 22, // 23: chef.automate.api.infra_proxy.InfraProxy.GetDataBagItem:input_type -> chef.automate.api.infra_proxy.request.DataBag - 23, // 24: chef.automate.api.infra_proxy.InfraProxy.CreateDataBag:input_type -> chef.automate.api.infra_proxy.request.CreateDataBag - 24, // 25: chef.automate.api.infra_proxy.InfraProxy.CreateDataBagItem:input_type -> chef.automate.api.infra_proxy.request.CreateDataBagItem - 22, // 26: chef.automate.api.infra_proxy.InfraProxy.DeleteDataBag:input_type -> chef.automate.api.infra_proxy.request.DataBag - 25, // 27: chef.automate.api.infra_proxy.InfraProxy.UpdateDataBagItem:input_type -> chef.automate.api.infra_proxy.request.UpdateDataBagItem - 26, // 28: chef.automate.api.infra_proxy.InfraProxy.GetEnvironments:input_type -> chef.automate.api.infra_proxy.request.Environments - 27, // 29: chef.automate.api.infra_proxy.InfraProxy.GetEnvironment:input_type -> chef.automate.api.infra_proxy.request.Environment - 28, // 30: chef.automate.api.infra_proxy.InfraProxy.CreateEnvironment:input_type -> chef.automate.api.infra_proxy.request.CreateEnvironment - 27, // 31: chef.automate.api.infra_proxy.InfraProxy.DeleteEnvironment:input_type -> chef.automate.api.infra_proxy.request.Environment - 29, // 32: chef.automate.api.infra_proxy.InfraProxy.UpdateEnvironment:input_type -> chef.automate.api.infra_proxy.request.UpdateEnvironment - 27, // 33: chef.automate.api.infra_proxy.InfraProxy.GetEnvironmentRecipes:input_type -> chef.automate.api.infra_proxy.request.Environment - 30, // 34: chef.automate.api.infra_proxy.InfraProxy.GetNodes:input_type -> chef.automate.api.infra_proxy.request.Nodes - 31, // 35: chef.automate.api.infra_proxy.InfraProxy.GetAffectedNodes:input_type -> chef.automate.api.infra_proxy.request.AffectedNodes - 32, // 36: chef.automate.api.infra_proxy.InfraProxy.DeleteNode:input_type -> chef.automate.api.infra_proxy.request.DeleteNode - 33, // 37: chef.automate.api.infra_proxy.InfraProxy.UpdateNode:input_type -> chef.automate.api.infra_proxy.request.UpdateNode - 34, // 38: chef.automate.api.infra_proxy.InfraProxy.GetNode:input_type -> chef.automate.api.infra_proxy.request.Node - 35, // 39: chef.automate.api.infra_proxy.InfraProxy.GetPolicyfiles:input_type -> chef.automate.api.infra_proxy.request.Policyfiles - 36, // 40: chef.automate.api.infra_proxy.InfraProxy.GetPolicyfile:input_type -> chef.automate.api.infra_proxy.request.Policyfile - 37, // 41: chef.automate.api.infra_proxy.InfraProxy.GetServers:output_type -> chef.automate.api.infra_proxy.response.GetServers - 38, // 42: chef.automate.api.infra_proxy.InfraProxy.GetServer:output_type -> chef.automate.api.infra_proxy.response.GetServer - 39, // 43: chef.automate.api.infra_proxy.InfraProxy.CreateServer:output_type -> chef.automate.api.infra_proxy.response.CreateServer - 40, // 44: chef.automate.api.infra_proxy.InfraProxy.UpdateServer:output_type -> chef.automate.api.infra_proxy.response.UpdateServer - 41, // 45: chef.automate.api.infra_proxy.InfraProxy.DeleteServer:output_type -> chef.automate.api.infra_proxy.response.DeleteServer - 42, // 46: chef.automate.api.infra_proxy.InfraProxy.GetOrgs:output_type -> chef.automate.api.infra_proxy.response.GetOrgs - 43, // 47: chef.automate.api.infra_proxy.InfraProxy.GetOrg:output_type -> chef.automate.api.infra_proxy.response.GetOrg - 44, // 48: chef.automate.api.infra_proxy.InfraProxy.CreateOrg:output_type -> chef.automate.api.infra_proxy.response.CreateOrg - 45, // 49: chef.automate.api.infra_proxy.InfraProxy.UpdateOrg:output_type -> chef.automate.api.infra_proxy.response.UpdateOrg - 46, // 50: chef.automate.api.infra_proxy.InfraProxy.DeleteOrg:output_type -> chef.automate.api.infra_proxy.response.DeleteOrg - 47, // 51: chef.automate.api.infra_proxy.InfraProxy.ResetOrgAdminKey:output_type -> chef.automate.api.infra_proxy.response.ResetOrgAdminKey - 48, // 52: chef.automate.api.infra_proxy.InfraProxy.GetCookbooks:output_type -> chef.automate.api.infra_proxy.response.Cookbooks - 49, // 53: chef.automate.api.infra_proxy.InfraProxy.GetCookbookVersions:output_type -> chef.automate.api.infra_proxy.response.CookbookVersions - 50, // 54: chef.automate.api.infra_proxy.InfraProxy.GetCookbook:output_type -> chef.automate.api.infra_proxy.response.Cookbook - 51, // 55: chef.automate.api.infra_proxy.InfraProxy.GetCookbookFileContent:output_type -> chef.automate.api.infra_proxy.response.CookbookFileContent - 52, // 56: chef.automate.api.infra_proxy.InfraProxy.GetRoles:output_type -> chef.automate.api.infra_proxy.response.Roles - 53, // 57: chef.automate.api.infra_proxy.InfraProxy.GetRole:output_type -> chef.automate.api.infra_proxy.response.Role - 53, // 58: chef.automate.api.infra_proxy.InfraProxy.CreateRole:output_type -> chef.automate.api.infra_proxy.response.Role - 53, // 59: chef.automate.api.infra_proxy.InfraProxy.DeleteRole:output_type -> chef.automate.api.infra_proxy.response.Role - 53, // 60: chef.automate.api.infra_proxy.InfraProxy.UpdateRole:output_type -> chef.automate.api.infra_proxy.response.Role - 54, // 61: chef.automate.api.infra_proxy.InfraProxy.GetClients:output_type -> chef.automate.api.infra_proxy.response.Clients - 55, // 62: chef.automate.api.infra_proxy.InfraProxy.GetClient:output_type -> chef.automate.api.infra_proxy.response.Client - 56, // 63: chef.automate.api.infra_proxy.InfraProxy.GetDataBags:output_type -> chef.automate.api.infra_proxy.response.DataBags - 57, // 64: chef.automate.api.infra_proxy.InfraProxy.GetDataBagItem:output_type -> chef.automate.api.infra_proxy.response.DataBag - 58, // 65: chef.automate.api.infra_proxy.InfraProxy.CreateDataBag:output_type -> chef.automate.api.infra_proxy.response.CreateDataBag - 59, // 66: chef.automate.api.infra_proxy.InfraProxy.CreateDataBagItem:output_type -> chef.automate.api.infra_proxy.response.CreateDataBagItem - 57, // 67: chef.automate.api.infra_proxy.InfraProxy.DeleteDataBag:output_type -> chef.automate.api.infra_proxy.response.DataBag - 60, // 68: chef.automate.api.infra_proxy.InfraProxy.UpdateDataBagItem:output_type -> chef.automate.api.infra_proxy.response.UpdateDataBagItem - 61, // 69: chef.automate.api.infra_proxy.InfraProxy.GetEnvironments:output_type -> chef.automate.api.infra_proxy.response.Environments - 62, // 70: chef.automate.api.infra_proxy.InfraProxy.GetEnvironment:output_type -> chef.automate.api.infra_proxy.response.Environment - 62, // 71: chef.automate.api.infra_proxy.InfraProxy.CreateEnvironment:output_type -> chef.automate.api.infra_proxy.response.Environment - 62, // 72: chef.automate.api.infra_proxy.InfraProxy.DeleteEnvironment:output_type -> chef.automate.api.infra_proxy.response.Environment - 62, // 73: chef.automate.api.infra_proxy.InfraProxy.UpdateEnvironment:output_type -> chef.automate.api.infra_proxy.response.Environment - 63, // 74: chef.automate.api.infra_proxy.InfraProxy.GetEnvironmentRecipes:output_type -> chef.automate.api.infra_proxy.response.EnvironmentRecipesList - 64, // 75: chef.automate.api.infra_proxy.InfraProxy.GetNodes:output_type -> chef.automate.api.infra_proxy.response.Nodes - 65, // 76: chef.automate.api.infra_proxy.InfraProxy.GetAffectedNodes:output_type -> chef.automate.api.infra_proxy.response.AffectedNodes - 66, // 77: chef.automate.api.infra_proxy.InfraProxy.DeleteNode:output_type -> chef.automate.api.infra_proxy.response.DeleteNode - 67, // 78: chef.automate.api.infra_proxy.InfraProxy.UpdateNode:output_type -> chef.automate.api.infra_proxy.response.UpdateNode - 68, // 79: chef.automate.api.infra_proxy.InfraProxy.GetNode:output_type -> chef.automate.api.infra_proxy.response.Node - 69, // 80: chef.automate.api.infra_proxy.InfraProxy.GetPolicyfiles:output_type -> chef.automate.api.infra_proxy.response.Policyfiles - 70, // 81: chef.automate.api.infra_proxy.InfraProxy.GetPolicyfile:output_type -> chef.automate.api.infra_proxy.response.Policyfile - 41, // [41:82] is the sub-list for method output_type - 0, // [0:41] is the sub-list for method input_type + 21, // 22: chef.automate.api.infra_proxy.InfraProxy.CreateClient:input_type -> chef.automate.api.infra_proxy.request.CreateClient + 20, // 23: chef.automate.api.infra_proxy.InfraProxy.DeleteClient:input_type -> chef.automate.api.infra_proxy.request.Client + 22, // 24: chef.automate.api.infra_proxy.InfraProxy.ResetClientKey:input_type -> chef.automate.api.infra_proxy.request.ClientKey + 23, // 25: chef.automate.api.infra_proxy.InfraProxy.GetDataBags:input_type -> chef.automate.api.infra_proxy.request.DataBags + 24, // 26: chef.automate.api.infra_proxy.InfraProxy.GetDataBagItem:input_type -> chef.automate.api.infra_proxy.request.DataBag + 25, // 27: chef.automate.api.infra_proxy.InfraProxy.CreateDataBag:input_type -> chef.automate.api.infra_proxy.request.CreateDataBag + 26, // 28: chef.automate.api.infra_proxy.InfraProxy.CreateDataBagItem:input_type -> chef.automate.api.infra_proxy.request.CreateDataBagItem + 24, // 29: chef.automate.api.infra_proxy.InfraProxy.DeleteDataBag:input_type -> chef.automate.api.infra_proxy.request.DataBag + 27, // 30: chef.automate.api.infra_proxy.InfraProxy.UpdateDataBagItem:input_type -> chef.automate.api.infra_proxy.request.UpdateDataBagItem + 28, // 31: chef.automate.api.infra_proxy.InfraProxy.GetEnvironments:input_type -> chef.automate.api.infra_proxy.request.Environments + 29, // 32: chef.automate.api.infra_proxy.InfraProxy.GetEnvironment:input_type -> chef.automate.api.infra_proxy.request.Environment + 30, // 33: chef.automate.api.infra_proxy.InfraProxy.CreateEnvironment:input_type -> chef.automate.api.infra_proxy.request.CreateEnvironment + 29, // 34: chef.automate.api.infra_proxy.InfraProxy.DeleteEnvironment:input_type -> chef.automate.api.infra_proxy.request.Environment + 31, // 35: chef.automate.api.infra_proxy.InfraProxy.UpdateEnvironment:input_type -> chef.automate.api.infra_proxy.request.UpdateEnvironment + 29, // 36: chef.automate.api.infra_proxy.InfraProxy.GetEnvironmentRecipes:input_type -> chef.automate.api.infra_proxy.request.Environment + 32, // 37: chef.automate.api.infra_proxy.InfraProxy.GetNodes:input_type -> chef.automate.api.infra_proxy.request.Nodes + 33, // 38: chef.automate.api.infra_proxy.InfraProxy.GetAffectedNodes:input_type -> chef.automate.api.infra_proxy.request.AffectedNodes + 34, // 39: chef.automate.api.infra_proxy.InfraProxy.DeleteNode:input_type -> chef.automate.api.infra_proxy.request.DeleteNode + 35, // 40: chef.automate.api.infra_proxy.InfraProxy.UpdateNode:input_type -> chef.automate.api.infra_proxy.request.UpdateNode + 36, // 41: chef.automate.api.infra_proxy.InfraProxy.GetNode:input_type -> chef.automate.api.infra_proxy.request.Node + 37, // 42: chef.automate.api.infra_proxy.InfraProxy.GetPolicyfiles:input_type -> chef.automate.api.infra_proxy.request.Policyfiles + 38, // 43: chef.automate.api.infra_proxy.InfraProxy.GetPolicyfile:input_type -> chef.automate.api.infra_proxy.request.Policyfile + 39, // 44: chef.automate.api.infra_proxy.InfraProxy.GetServers:output_type -> chef.automate.api.infra_proxy.response.GetServers + 40, // 45: chef.automate.api.infra_proxy.InfraProxy.GetServer:output_type -> chef.automate.api.infra_proxy.response.GetServer + 41, // 46: chef.automate.api.infra_proxy.InfraProxy.CreateServer:output_type -> chef.automate.api.infra_proxy.response.CreateServer + 42, // 47: chef.automate.api.infra_proxy.InfraProxy.UpdateServer:output_type -> chef.automate.api.infra_proxy.response.UpdateServer + 43, // 48: chef.automate.api.infra_proxy.InfraProxy.DeleteServer:output_type -> chef.automate.api.infra_proxy.response.DeleteServer + 44, // 49: chef.automate.api.infra_proxy.InfraProxy.GetOrgs:output_type -> chef.automate.api.infra_proxy.response.GetOrgs + 45, // 50: chef.automate.api.infra_proxy.InfraProxy.GetOrg:output_type -> chef.automate.api.infra_proxy.response.GetOrg + 46, // 51: chef.automate.api.infra_proxy.InfraProxy.CreateOrg:output_type -> chef.automate.api.infra_proxy.response.CreateOrg + 47, // 52: chef.automate.api.infra_proxy.InfraProxy.UpdateOrg:output_type -> chef.automate.api.infra_proxy.response.UpdateOrg + 48, // 53: chef.automate.api.infra_proxy.InfraProxy.DeleteOrg:output_type -> chef.automate.api.infra_proxy.response.DeleteOrg + 49, // 54: chef.automate.api.infra_proxy.InfraProxy.ResetOrgAdminKey:output_type -> chef.automate.api.infra_proxy.response.ResetOrgAdminKey + 50, // 55: chef.automate.api.infra_proxy.InfraProxy.GetCookbooks:output_type -> chef.automate.api.infra_proxy.response.Cookbooks + 51, // 56: chef.automate.api.infra_proxy.InfraProxy.GetCookbookVersions:output_type -> chef.automate.api.infra_proxy.response.CookbookVersions + 52, // 57: chef.automate.api.infra_proxy.InfraProxy.GetCookbook:output_type -> chef.automate.api.infra_proxy.response.Cookbook + 53, // 58: chef.automate.api.infra_proxy.InfraProxy.GetCookbookFileContent:output_type -> chef.automate.api.infra_proxy.response.CookbookFileContent + 54, // 59: chef.automate.api.infra_proxy.InfraProxy.GetRoles:output_type -> chef.automate.api.infra_proxy.response.Roles + 55, // 60: chef.automate.api.infra_proxy.InfraProxy.GetRole:output_type -> chef.automate.api.infra_proxy.response.Role + 55, // 61: chef.automate.api.infra_proxy.InfraProxy.CreateRole:output_type -> chef.automate.api.infra_proxy.response.Role + 55, // 62: chef.automate.api.infra_proxy.InfraProxy.DeleteRole:output_type -> chef.automate.api.infra_proxy.response.Role + 55, // 63: chef.automate.api.infra_proxy.InfraProxy.UpdateRole:output_type -> chef.automate.api.infra_proxy.response.Role + 56, // 64: chef.automate.api.infra_proxy.InfraProxy.GetClients:output_type -> chef.automate.api.infra_proxy.response.Clients + 57, // 65: chef.automate.api.infra_proxy.InfraProxy.GetClient:output_type -> chef.automate.api.infra_proxy.response.Client + 58, // 66: chef.automate.api.infra_proxy.InfraProxy.CreateClient:output_type -> chef.automate.api.infra_proxy.response.CreateClient + 57, // 67: chef.automate.api.infra_proxy.InfraProxy.DeleteClient:output_type -> chef.automate.api.infra_proxy.response.Client + 59, // 68: chef.automate.api.infra_proxy.InfraProxy.ResetClientKey:output_type -> chef.automate.api.infra_proxy.response.ClientKey + 60, // 69: chef.automate.api.infra_proxy.InfraProxy.GetDataBags:output_type -> chef.automate.api.infra_proxy.response.DataBags + 61, // 70: chef.automate.api.infra_proxy.InfraProxy.GetDataBagItem:output_type -> chef.automate.api.infra_proxy.response.DataBag + 62, // 71: chef.automate.api.infra_proxy.InfraProxy.CreateDataBag:output_type -> chef.automate.api.infra_proxy.response.CreateDataBag + 63, // 72: chef.automate.api.infra_proxy.InfraProxy.CreateDataBagItem:output_type -> chef.automate.api.infra_proxy.response.CreateDataBagItem + 61, // 73: chef.automate.api.infra_proxy.InfraProxy.DeleteDataBag:output_type -> chef.automate.api.infra_proxy.response.DataBag + 64, // 74: chef.automate.api.infra_proxy.InfraProxy.UpdateDataBagItem:output_type -> chef.automate.api.infra_proxy.response.UpdateDataBagItem + 65, // 75: chef.automate.api.infra_proxy.InfraProxy.GetEnvironments:output_type -> chef.automate.api.infra_proxy.response.Environments + 66, // 76: chef.automate.api.infra_proxy.InfraProxy.GetEnvironment:output_type -> chef.automate.api.infra_proxy.response.Environment + 66, // 77: chef.automate.api.infra_proxy.InfraProxy.CreateEnvironment:output_type -> chef.automate.api.infra_proxy.response.Environment + 66, // 78: chef.automate.api.infra_proxy.InfraProxy.DeleteEnvironment:output_type -> chef.automate.api.infra_proxy.response.Environment + 66, // 79: chef.automate.api.infra_proxy.InfraProxy.UpdateEnvironment:output_type -> chef.automate.api.infra_proxy.response.Environment + 67, // 80: chef.automate.api.infra_proxy.InfraProxy.GetEnvironmentRecipes:output_type -> chef.automate.api.infra_proxy.response.EnvironmentRecipesList + 68, // 81: chef.automate.api.infra_proxy.InfraProxy.GetNodes:output_type -> chef.automate.api.infra_proxy.response.Nodes + 69, // 82: chef.automate.api.infra_proxy.InfraProxy.GetAffectedNodes:output_type -> chef.automate.api.infra_proxy.response.AffectedNodes + 70, // 83: chef.automate.api.infra_proxy.InfraProxy.DeleteNode:output_type -> chef.automate.api.infra_proxy.response.DeleteNode + 71, // 84: chef.automate.api.infra_proxy.InfraProxy.UpdateNode:output_type -> chef.automate.api.infra_proxy.response.UpdateNode + 72, // 85: chef.automate.api.infra_proxy.InfraProxy.GetNode:output_type -> chef.automate.api.infra_proxy.response.Node + 73, // 86: chef.automate.api.infra_proxy.InfraProxy.GetPolicyfiles:output_type -> chef.automate.api.infra_proxy.response.Policyfiles + 74, // 87: chef.automate.api.infra_proxy.InfraProxy.GetPolicyfile:output_type -> chef.automate.api.infra_proxy.response.Policyfile + 44, // [44:88] is the sub-list for method output_type + 0, // [0:44] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name @@ -1021,6 +1083,9 @@ type InfraProxyClient interface { UpdateRole(ctx context.Context, in *request.UpdateRole, opts ...grpc.CallOption) (*response.Role, error) GetClients(ctx context.Context, in *request.Clients, opts ...grpc.CallOption) (*response.Clients, error) GetClient(ctx context.Context, in *request.Client, opts ...grpc.CallOption) (*response.Client, error) + CreateClient(ctx context.Context, in *request.CreateClient, opts ...grpc.CallOption) (*response.CreateClient, error) + DeleteClient(ctx context.Context, in *request.Client, opts ...grpc.CallOption) (*response.Client, error) + ResetClientKey(ctx context.Context, in *request.ClientKey, opts ...grpc.CallOption) (*response.ClientKey, error) GetDataBags(ctx context.Context, in *request.DataBags, opts ...grpc.CallOption) (*response.DataBags, error) GetDataBagItem(ctx context.Context, in *request.DataBag, opts ...grpc.CallOption) (*response.DataBag, error) CreateDataBag(ctx context.Context, in *request.CreateDataBag, opts ...grpc.CallOption) (*response.CreateDataBag, error) @@ -1248,6 +1313,33 @@ func (c *infraProxyClient) GetClient(ctx context.Context, in *request.Client, op return out, nil } +func (c *infraProxyClient) CreateClient(ctx context.Context, in *request.CreateClient, opts ...grpc.CallOption) (*response.CreateClient, error) { + out := new(response.CreateClient) + err := c.cc.Invoke(ctx, "/chef.automate.api.infra_proxy.InfraProxy/CreateClient", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *infraProxyClient) DeleteClient(ctx context.Context, in *request.Client, opts ...grpc.CallOption) (*response.Client, error) { + out := new(response.Client) + err := c.cc.Invoke(ctx, "/chef.automate.api.infra_proxy.InfraProxy/DeleteClient", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *infraProxyClient) ResetClientKey(ctx context.Context, in *request.ClientKey, opts ...grpc.CallOption) (*response.ClientKey, error) { + out := new(response.ClientKey) + err := c.cc.Invoke(ctx, "/chef.automate.api.infra_proxy.InfraProxy/ResetClientKey", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *infraProxyClient) GetDataBags(ctx context.Context, in *request.DataBags, opts ...grpc.CallOption) (*response.DataBags, error) { out := new(response.DataBags) err := c.cc.Invoke(ctx, "/chef.automate.api.infra_proxy.InfraProxy/GetDataBags", in, out, opts...) @@ -1443,6 +1535,9 @@ type InfraProxyServer interface { UpdateRole(context.Context, *request.UpdateRole) (*response.Role, error) GetClients(context.Context, *request.Clients) (*response.Clients, error) GetClient(context.Context, *request.Client) (*response.Client, error) + CreateClient(context.Context, *request.CreateClient) (*response.CreateClient, error) + DeleteClient(context.Context, *request.Client) (*response.Client, error) + ResetClientKey(context.Context, *request.ClientKey) (*response.ClientKey, error) GetDataBags(context.Context, *request.DataBags) (*response.DataBags, error) GetDataBagItem(context.Context, *request.DataBag) (*response.DataBag, error) CreateDataBag(context.Context, *request.CreateDataBag) (*response.CreateDataBag, error) @@ -1534,6 +1629,15 @@ func (*UnimplementedInfraProxyServer) GetClients(context.Context, *request.Clien func (*UnimplementedInfraProxyServer) GetClient(context.Context, *request.Client) (*response.Client, error) { return nil, status.Errorf(codes.Unimplemented, "method GetClient not implemented") } +func (*UnimplementedInfraProxyServer) CreateClient(context.Context, *request.CreateClient) (*response.CreateClient, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateClient not implemented") +} +func (*UnimplementedInfraProxyServer) DeleteClient(context.Context, *request.Client) (*response.Client, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteClient not implemented") +} +func (*UnimplementedInfraProxyServer) ResetClientKey(context.Context, *request.ClientKey) (*response.ClientKey, error) { + return nil, status.Errorf(codes.Unimplemented, "method ResetClientKey not implemented") +} func (*UnimplementedInfraProxyServer) GetDataBags(context.Context, *request.DataBags) (*response.DataBags, error) { return nil, status.Errorf(codes.Unimplemented, "method GetDataBags not implemented") } @@ -1992,6 +2096,60 @@ func _InfraProxy_GetClient_Handler(srv interface{}, ctx context.Context, dec fun return interceptor(ctx, in, info, handler) } +func _InfraProxy_CreateClient_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(request.CreateClient) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(InfraProxyServer).CreateClient(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/chef.automate.api.infra_proxy.InfraProxy/CreateClient", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(InfraProxyServer).CreateClient(ctx, req.(*request.CreateClient)) + } + return interceptor(ctx, in, info, handler) +} + +func _InfraProxy_DeleteClient_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(request.Client) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(InfraProxyServer).DeleteClient(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/chef.automate.api.infra_proxy.InfraProxy/DeleteClient", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(InfraProxyServer).DeleteClient(ctx, req.(*request.Client)) + } + return interceptor(ctx, in, info, handler) +} + +func _InfraProxy_ResetClientKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(request.ClientKey) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(InfraProxyServer).ResetClientKey(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/chef.automate.api.infra_proxy.InfraProxy/ResetClientKey", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(InfraProxyServer).ResetClientKey(ctx, req.(*request.ClientKey)) + } + return interceptor(ctx, in, info, handler) +} + func _InfraProxy_GetDataBags_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(request.DataBags) if err := dec(in); err != nil { @@ -2426,6 +2584,18 @@ var _InfraProxy_serviceDesc = grpc.ServiceDesc{ MethodName: "GetClient", Handler: _InfraProxy_GetClient_Handler, }, + { + MethodName: "CreateClient", + Handler: _InfraProxy_CreateClient_Handler, + }, + { + MethodName: "DeleteClient", + Handler: _InfraProxy_DeleteClient_Handler, + }, + { + MethodName: "ResetClientKey", + Handler: _InfraProxy_ResetClientKey_Handler, + }, { MethodName: "GetDataBags", Handler: _InfraProxy_GetDataBags_Handler, diff --git a/api/external/infra_proxy/infra_proxy.pb.gw.go b/api/external/infra_proxy/infra_proxy.pb.gw.go index 248d0aaf0f8..3a9d076708d 100644 --- a/api/external/infra_proxy/infra_proxy.pb.gw.go +++ b/api/external/infra_proxy/infra_proxy.pb.gw.go @@ -1806,6 +1806,310 @@ func local_request_InfraProxy_GetClient_0(ctx context.Context, marshaler runtime } +func request_InfraProxy_CreateClient_0(ctx context.Context, marshaler runtime.Marshaler, client InfraProxyClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq request.CreateClient + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["server_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "server_id") + } + + protoReq.ServerId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "server_id", err) + } + + val, ok = pathParams["org_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org_id") + } + + protoReq.OrgId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org_id", err) + } + + msg, err := client.CreateClient(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_InfraProxy_CreateClient_0(ctx context.Context, marshaler runtime.Marshaler, server InfraProxyServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq request.CreateClient + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["server_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "server_id") + } + + protoReq.ServerId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "server_id", err) + } + + val, ok = pathParams["org_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org_id") + } + + protoReq.OrgId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org_id", err) + } + + msg, err := server.CreateClient(ctx, &protoReq) + return msg, metadata, err + +} + +func request_InfraProxy_DeleteClient_0(ctx context.Context, marshaler runtime.Marshaler, client InfraProxyClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq request.Client + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["server_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "server_id") + } + + protoReq.ServerId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "server_id", err) + } + + val, ok = pathParams["org_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org_id") + } + + protoReq.OrgId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org_id", err) + } + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.DeleteClient(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_InfraProxy_DeleteClient_0(ctx context.Context, marshaler runtime.Marshaler, server InfraProxyServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq request.Client + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["server_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "server_id") + } + + protoReq.ServerId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "server_id", err) + } + + val, ok = pathParams["org_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org_id") + } + + protoReq.OrgId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org_id", err) + } + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.DeleteClient(ctx, &protoReq) + return msg, metadata, err + +} + +func request_InfraProxy_ResetClientKey_0(ctx context.Context, marshaler runtime.Marshaler, client InfraProxyClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq request.ClientKey + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["server_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "server_id") + } + + protoReq.ServerId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "server_id", err) + } + + val, ok = pathParams["org_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org_id") + } + + protoReq.OrgId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org_id", err) + } + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.ResetClientKey(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_InfraProxy_ResetClientKey_0(ctx context.Context, marshaler runtime.Marshaler, server InfraProxyServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq request.ClientKey + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["server_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "server_id") + } + + protoReq.ServerId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "server_id", err) + } + + val, ok = pathParams["org_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org_id") + } + + protoReq.OrgId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org_id", err) + } + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.ResetClientKey(ctx, &protoReq) + return msg, metadata, err + +} + var ( filter_InfraProxy_GetDataBags_0 = &utilities.DoubleArray{Encoding: map[string]int{"server_id": 0, "org_id": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} ) @@ -4215,6 +4519,66 @@ func RegisterInfraProxyHandlerServer(ctx context.Context, mux *runtime.ServeMux, }) + mux.Handle("POST", pattern_InfraProxy_CreateClient_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_InfraProxy_CreateClient_0(rctx, inboundMarshaler, server, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_InfraProxy_CreateClient_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_InfraProxy_DeleteClient_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_InfraProxy_DeleteClient_0(rctx, inboundMarshaler, server, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_InfraProxy_DeleteClient_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PUT", pattern_InfraProxy_ResetClientKey_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_InfraProxy_ResetClientKey_0(rctx, inboundMarshaler, server, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_InfraProxy_ResetClientKey_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_InfraProxy_GetDataBags_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -5076,6 +5440,66 @@ func RegisterInfraProxyHandlerClient(ctx context.Context, mux *runtime.ServeMux, }) + mux.Handle("POST", pattern_InfraProxy_CreateClient_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_InfraProxy_CreateClient_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_InfraProxy_CreateClient_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_InfraProxy_DeleteClient_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_InfraProxy_DeleteClient_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_InfraProxy_DeleteClient_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PUT", pattern_InfraProxy_ResetClientKey_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_InfraProxy_ResetClientKey_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_InfraProxy_ResetClientKey_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_InfraProxy_GetDataBags_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -5504,6 +5928,12 @@ var ( pattern_InfraProxy_GetClient_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5, 1, 0, 4, 1, 5, 6, 2, 7, 1, 0, 4, 1, 5, 8}, []string{"api", "v0", "infra", "servers", "server_id", "orgs", "org_id", "clients", "name"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_InfraProxy_CreateClient_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5, 1, 0, 4, 1, 5, 6, 2, 7}, []string{"api", "v0", "infra", "servers", "server_id", "orgs", "org_id", "clients"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_InfraProxy_DeleteClient_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5, 1, 0, 4, 1, 5, 6, 2, 7, 1, 0, 4, 1, 5, 8}, []string{"api", "v0", "infra", "servers", "server_id", "orgs", "org_id", "clients", "name"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_InfraProxy_ResetClientKey_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5, 1, 0, 4, 1, 5, 6, 2, 7, 1, 0, 4, 1, 5, 8, 2, 9}, []string{"api", "v0", "infra", "servers", "server_id", "orgs", "org_id", "clients", "name", "reset"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_InfraProxy_GetDataBags_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5, 1, 0, 4, 1, 5, 6, 2, 7}, []string{"api", "v0", "infra", "servers", "server_id", "orgs", "org_id", "data_bags"}, "", runtime.AssumeColonVerbOpt(true))) pattern_InfraProxy_GetDataBagItem_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5, 1, 0, 4, 1, 5, 6, 2, 7, 1, 0, 4, 1, 5, 8, 1, 0, 4, 1, 5, 9}, []string{"api", "v0", "infra", "servers", "server_id", "orgs", "org_id", "data_bags", "name", "item"}, "", runtime.AssumeColonVerbOpt(true))) @@ -5588,6 +6018,12 @@ var ( forward_InfraProxy_GetClient_0 = runtime.ForwardResponseMessage + forward_InfraProxy_CreateClient_0 = runtime.ForwardResponseMessage + + forward_InfraProxy_DeleteClient_0 = runtime.ForwardResponseMessage + + forward_InfraProxy_ResetClientKey_0 = runtime.ForwardResponseMessage + forward_InfraProxy_GetDataBags_0 = runtime.ForwardResponseMessage forward_InfraProxy_GetDataBagItem_0 = runtime.ForwardResponseMessage diff --git a/api/external/infra_proxy/infra_proxy.pb.policy.go b/api/external/infra_proxy/infra_proxy.pb.policy.go index 763679ecb43..2398fe2c641 100644 --- a/api/external/infra_proxy/infra_proxy.pb.policy.go +++ b/api/external/infra_proxy/infra_proxy.pb.policy.go @@ -367,6 +367,59 @@ func init() { } return "" }) + policy.MapMethodTo("/chef.automate.api.infra_proxy.InfraProxy/CreateClient", "infra:servers:{server_id}:orgs:{org_id}:clients", "infra:infraServers:update", "POST", "/api/v0/infra/servers/{server_id}/orgs/{org_id}/clients", func(unexpandedResource string, input interface{}) string { + if m, ok := input.(*request.CreateClient); ok { + return policy.ExpandParameterizedResource(unexpandedResource, func(want string) string { + switch want { + case "org_id": + return m.OrgId + case "server_id": + return m.ServerId + case "name": + return m.Name + default: + return "" + } + }) + } + return "" + }) + policy.MapMethodTo("/chef.automate.api.infra_proxy.InfraProxy/DeleteClient", "infra:servers:{server_id}:orgs:{org_id}:clients", "infra:infraServers:update", "DELETE", "/api/v0/infra/servers/{server_id}/orgs/{org_id}/clients/{name}", func(unexpandedResource string, input interface{}) string { + if m, ok := input.(*request.Client); ok { + return policy.ExpandParameterizedResource(unexpandedResource, func(want string) string { + switch want { + case "org_id": + return m.OrgId + case "server_id": + return m.ServerId + case "name": + return m.Name + default: + return "" + } + }) + } + return "" + }) + policy.MapMethodTo("/chef.automate.api.infra_proxy.InfraProxy/ResetClientKey", "infra:servers:{server_id}:orgs:{org_id}:clients", "infra:infraServers:update", "PUT", "/api/v0/infra/servers/{server_id}/orgs/{org_id}/clients/{name}/reset", func(unexpandedResource string, input interface{}) string { + if m, ok := input.(*request.ClientKey); ok { + return policy.ExpandParameterizedResource(unexpandedResource, func(want string) string { + switch want { + case "org_id": + return m.OrgId + case "server_id": + return m.ServerId + case "name": + return m.Name + case "key": + return m.Key + default: + return "" + } + }) + } + return "" + }) policy.MapMethodTo("/chef.automate.api.infra_proxy.InfraProxy/GetDataBags", "infra:infraServers:{server_id}:orgs:{org_id}:data_bags", "infra:infraServers:get", "GET", "/api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags", func(unexpandedResource string, input interface{}) string { if m, ok := input.(*request.DataBags); ok { return policy.ExpandParameterizedResource(unexpandedResource, func(want string) string { diff --git a/api/external/infra_proxy/infra_proxy.proto b/api/external/infra_proxy/infra_proxy.proto index 0d63cd6ebfa..b8bee793350 100644 --- a/api/external/infra_proxy/infra_proxy.proto +++ b/api/external/infra_proxy/infra_proxy.proto @@ -148,7 +148,24 @@ service InfraProxy { option (google.api.http).get = "/api/v0/infra/servers/{server_id}/orgs/{org_id}/clients/{name}"; option (chef.automate.api.iam.policy).resource = "infra:servers:{server_id}:orgs:{org_id}:clients"; option (chef.automate.api.iam.policy).action = "infra:infraServers:get"; - } + }; + rpc CreateClient (infra_proxy.request.CreateClient) returns (infra_proxy.response.CreateClient) { + option (google.api.http).post = "/api/v0/infra/servers/{server_id}/orgs/{org_id}/clients"; + option (google.api.http).body = "*"; + option (chef.automate.api.iam.policy).resource = "infra:servers:{server_id}:orgs:{org_id}:clients"; + option (chef.automate.api.iam.policy).action = "infra:infraServers:update"; + }; + rpc DeleteClient (infra_proxy.request.Client) returns (infra_proxy.response.Client) { + option (google.api.http).delete = "/api/v0/infra/servers/{server_id}/orgs/{org_id}/clients/{name}"; + option (chef.automate.api.iam.policy).resource = "infra:servers:{server_id}:orgs:{org_id}:clients"; + option (chef.automate.api.iam.policy).action = "infra:infraServers:update"; + }; + rpc ResetClientKey (infra_proxy.request.ClientKey) returns (infra_proxy.response.ClientKey) { + option (google.api.http).put = "/api/v0/infra/servers/{server_id}/orgs/{org_id}/clients/{name}/reset"; + option (google.api.http).body = "*"; + option (chef.automate.api.iam.policy).resource = "infra:servers:{server_id}:orgs:{org_id}:clients"; + option (chef.automate.api.iam.policy).action = "infra:infraServers:update"; + }; rpc GetDataBags (infra_proxy.request.DataBags) returns (infra_proxy.response.DataBags) { option (google.api.http).get = "/api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags"; diff --git a/api/external/infra_proxy/infra_proxy.swagger.json b/api/external/infra_proxy/infra_proxy.swagger.json index 30e4fe8541c..e6f5728b793 100644 --- a/api/external/infra_proxy/infra_proxy.swagger.json +++ b/api/external/infra_proxy/infra_proxy.swagger.json @@ -487,6 +487,50 @@ "tags": [ "InfraProxy" ] + }, + "post": { + "operationId": "InfraProxy_CreateClient", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.response.CreateClient" + } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/grpc.gateway.runtime.Error" + } + } + }, + "parameters": [ + { + "name": "server_id", + "description": "Chef Infra Server ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "org_id", + "description": "Chef organization ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.request.CreateClient" + } + } + ], + "tags": [ + "InfraProxy" + ] } }, "/api/v0/infra/servers/{server_id}/orgs/{org_id}/clients/{name}": { @@ -532,6 +576,102 @@ "tags": [ "InfraProxy" ] + }, + "delete": { + "operationId": "InfraProxy_DeleteClient", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.response.Client" + } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/grpc.gateway.runtime.Error" + } + } + }, + "parameters": [ + { + "name": "server_id", + "description": "Chef Infra Server ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "org_id", + "description": "Chef organization ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "name", + "description": "Client name.", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "InfraProxy" + ] + } + }, + "/api/v0/infra/servers/{server_id}/orgs/{org_id}/clients/{name}/reset": { + "put": { + "operationId": "InfraProxy_ResetClientKey", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.response.ClientKey" + } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/grpc.gateway.runtime.Error" + } + } + }, + "parameters": [ + { + "name": "server_id", + "description": "Chef Infra Server ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "org_id", + "description": "Chef organization ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "name", + "description": "Client name.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.request.ClientKey" + } + } + ], + "tags": [ + "InfraProxy" + ] } }, "/api/v0/infra/servers/{server_id}/orgs/{org_id}/cookbooks": { @@ -1788,6 +1928,54 @@ } }, "definitions": { + "chef.automate.api.infra_proxy.request.ClientKey": { + "type": "object", + "properties": { + "org_id": { + "type": "string", + "description": "Chef organization ID." + }, + "server_id": { + "type": "string", + "description": "Chef Infra Server ID." + }, + "name": { + "type": "string", + "description": "Client name." + }, + "key": { + "type": "string", + "description": "Client key name." + } + } + }, + "chef.automate.api.infra_proxy.request.CreateClient": { + "type": "object", + "properties": { + "org_id": { + "type": "string", + "description": "Chef organization ID." + }, + "server_id": { + "type": "string", + "description": "Chef Infra Server ID." + }, + "name": { + "type": "string", + "description": "Client name." + }, + "validator": { + "type": "boolean", + "format": "boolean", + "description": "Boolean indicates client type is validator or not." + }, + "create_key": { + "type": "boolean", + "format": "boolean", + "description": "Boolean indicates whether it's required to create a key or not." + } + } + }, "chef.automate.api.infra_proxy.request.CreateDataBag": { "type": "object", "properties": { @@ -2243,6 +2431,48 @@ "chef_type": { "type": "string", "description": "Chef object type." + }, + "client_key": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.response.ClientAccessKey", + "description": "Client key detail." + } + } + }, + "chef.automate.api.infra_proxy.response.ClientAccessKey": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Client key name." + }, + "public_key": { + "type": "string", + "description": "Client public key." + }, + "expiration_date": { + "type": "string", + "description": "Client key expiration date string." + } + } + }, + "chef.automate.api.infra_proxy.response.ClientKey": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Client key name." + }, + "public_key": { + "type": "string", + "description": "Client public key." + }, + "expiration_date": { + "type": "string", + "description": "Client key expiration date string." + }, + "private_key": { + "type": "string", + "description": "Client private key." } } }, @@ -2509,6 +2739,19 @@ } } }, + "chef.automate.api.infra_proxy.response.CreateClient": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Client name." + }, + "client_key": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.response.ClientKey", + "description": "Client key detail." + } + } + }, "chef.automate.api.infra_proxy.response.CreateDataBag": { "type": "object", "properties": { diff --git a/api/external/infra_proxy/request/clients.pb.go b/api/external/infra_proxy/request/clients.pb.go index daaff0b22f2..33ba6346e00 100644 --- a/api/external/infra_proxy/request/clients.pb.go +++ b/api/external/infra_proxy/request/clients.pb.go @@ -148,6 +148,165 @@ func (x *Client) GetName() string { return "" } +type CreateClient struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Chef organization ID. + OrgId string `protobuf:"bytes,1,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + // Chef Infra Server ID. + ServerId string `protobuf:"bytes,2,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"` + // Client name. + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + // Boolean indicates client type is validator or not. + Validator bool `protobuf:"varint,4,opt,name=validator,proto3" json:"validator,omitempty"` + // Boolean indicates whether it's required to create a key or not. + CreateKey bool `protobuf:"varint,5,opt,name=create_key,json=createKey,proto3" json:"create_key,omitempty"` +} + +func (x *CreateClient) Reset() { + *x = CreateClient{} + if protoimpl.UnsafeEnabled { + mi := &file_external_infra_proxy_request_clients_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateClient) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateClient) ProtoMessage() {} + +func (x *CreateClient) ProtoReflect() protoreflect.Message { + mi := &file_external_infra_proxy_request_clients_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateClient.ProtoReflect.Descriptor instead. +func (*CreateClient) Descriptor() ([]byte, []int) { + return file_external_infra_proxy_request_clients_proto_rawDescGZIP(), []int{2} +} + +func (x *CreateClient) GetOrgId() string { + if x != nil { + return x.OrgId + } + return "" +} + +func (x *CreateClient) GetServerId() string { + if x != nil { + return x.ServerId + } + return "" +} + +func (x *CreateClient) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CreateClient) GetValidator() bool { + if x != nil { + return x.Validator + } + return false +} + +func (x *CreateClient) GetCreateKey() bool { + if x != nil { + return x.CreateKey + } + return false +} + +type ClientKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Chef organization ID. + OrgId string `protobuf:"bytes,1,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + // Chef Infra Server ID. + ServerId string `protobuf:"bytes,2,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"` + // Client name. + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + // Client key name. + Key string `protobuf:"bytes,4,opt,name=key,proto3" json:"key,omitempty"` +} + +func (x *ClientKey) Reset() { + *x = ClientKey{} + if protoimpl.UnsafeEnabled { + mi := &file_external_infra_proxy_request_clients_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClientKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClientKey) ProtoMessage() {} + +func (x *ClientKey) ProtoReflect() protoreflect.Message { + mi := &file_external_infra_proxy_request_clients_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ClientKey.ProtoReflect.Descriptor instead. +func (*ClientKey) Descriptor() ([]byte, []int) { + return file_external_infra_proxy_request_clients_proto_rawDescGZIP(), []int{3} +} + +func (x *ClientKey) GetOrgId() string { + if x != nil { + return x.OrgId + } + return "" +} + +func (x *ClientKey) GetServerId() string { + if x != nil { + return x.ServerId + } + return "" +} + +func (x *ClientKey) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ClientKey) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + var File_external_infra_proxy_request_clients_proto protoreflect.FileDescriptor var file_external_infra_proxy_request_clients_proto_rawDesc = []byte{ @@ -165,11 +324,27 @@ var file_external_infra_proxy_request_clients_proto_rawDesc = []byte{ 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x3b, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x69, 0x6e, - 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x65, 0x0a, 0x09, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x1b, + 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x42, 0x3b, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, + 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -184,10 +359,12 @@ func file_external_infra_proxy_request_clients_proto_rawDescGZIP() []byte { return file_external_infra_proxy_request_clients_proto_rawDescData } -var file_external_infra_proxy_request_clients_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_external_infra_proxy_request_clients_proto_msgTypes = make([]protoimpl.MessageInfo, 4) var file_external_infra_proxy_request_clients_proto_goTypes = []interface{}{ - (*Clients)(nil), // 0: chef.automate.api.infra_proxy.request.Clients - (*Client)(nil), // 1: chef.automate.api.infra_proxy.request.Client + (*Clients)(nil), // 0: chef.automate.api.infra_proxy.request.Clients + (*Client)(nil), // 1: chef.automate.api.infra_proxy.request.Client + (*CreateClient)(nil), // 2: chef.automate.api.infra_proxy.request.CreateClient + (*ClientKey)(nil), // 3: chef.automate.api.infra_proxy.request.ClientKey } var file_external_infra_proxy_request_clients_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type @@ -227,6 +404,30 @@ func file_external_infra_proxy_request_clients_proto_init() { return nil } } + file_external_infra_proxy_request_clients_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateClient); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_external_infra_proxy_request_clients_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClientKey); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -234,7 +435,7 @@ func file_external_infra_proxy_request_clients_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_external_infra_proxy_request_clients_proto_rawDesc, NumEnums: 0, - NumMessages: 2, + NumMessages: 4, NumExtensions: 0, NumServices: 0, }, diff --git a/api/external/infra_proxy/request/clients.proto b/api/external/infra_proxy/request/clients.proto index 481f0986f14..fe94436a11f 100644 --- a/api/external/infra_proxy/request/clients.proto +++ b/api/external/infra_proxy/request/clients.proto @@ -18,3 +18,27 @@ message Client { // Client name. string name = 3; } + +message CreateClient { + // Chef organization ID. + string org_id = 1; + // Chef Infra Server ID. + string server_id = 2; + // Client name. + string name = 3; + // Boolean indicates client type is validator or not. + bool validator = 4; + // Boolean indicates whether it's required to create a key or not. + bool create_key = 5; +} + +message ClientKey { + // Chef organization ID. + string org_id = 1; + // Chef Infra Server ID. + string server_id = 2; + // Client name. + string name = 3; + // Client key name. + string key = 4; +} diff --git a/api/external/infra_proxy/response/clients.pb.go b/api/external/infra_proxy/response/clients.pb.go index f31899f3e22..dd4c9900d62 100644 --- a/api/external/infra_proxy/response/clients.pb.go +++ b/api/external/infra_proxy/response/clients.pb.go @@ -138,6 +138,8 @@ type Client struct { JsonClass string `protobuf:"bytes,5,opt,name=json_class,json=jsonClass,proto3" json:"json_class,omitempty"` // Chef object type. ChefType string `protobuf:"bytes,6,opt,name=chef_type,json=chefType,proto3" json:"chef_type,omitempty"` + // Client key detail. + ClientKey *ClientAccessKey `protobuf:"bytes,7,opt,name=client_key,json=clientKey,proto3" json:"client_key,omitempty"` } func (x *Client) Reset() { @@ -214,6 +216,211 @@ func (x *Client) GetChefType() string { return "" } +func (x *Client) GetClientKey() *ClientAccessKey { + if x != nil { + return x.ClientKey + } + return nil +} + +type CreateClient struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Client name. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Client key detail. + ClientKey *ClientKey `protobuf:"bytes,2,opt,name=client_key,json=clientKey,proto3" json:"client_key,omitempty"` +} + +func (x *CreateClient) Reset() { + *x = CreateClient{} + if protoimpl.UnsafeEnabled { + mi := &file_external_infra_proxy_response_clients_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateClient) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateClient) ProtoMessage() {} + +func (x *CreateClient) ProtoReflect() protoreflect.Message { + mi := &file_external_infra_proxy_response_clients_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateClient.ProtoReflect.Descriptor instead. +func (*CreateClient) Descriptor() ([]byte, []int) { + return file_external_infra_proxy_response_clients_proto_rawDescGZIP(), []int{3} +} + +func (x *CreateClient) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CreateClient) GetClientKey() *ClientKey { + if x != nil { + return x.ClientKey + } + return nil +} + +type ClientKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Client key name. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Client public key. + PublicKey string `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` + // Client key expiration date string. + ExpirationDate string `protobuf:"bytes,3,opt,name=expiration_date,json=expirationDate,proto3" json:"expiration_date,omitempty"` + // Client private key. + PrivateKey string `protobuf:"bytes,4,opt,name=private_key,json=privateKey,proto3" json:"private_key,omitempty"` +} + +func (x *ClientKey) Reset() { + *x = ClientKey{} + if protoimpl.UnsafeEnabled { + mi := &file_external_infra_proxy_response_clients_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClientKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClientKey) ProtoMessage() {} + +func (x *ClientKey) ProtoReflect() protoreflect.Message { + mi := &file_external_infra_proxy_response_clients_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ClientKey.ProtoReflect.Descriptor instead. +func (*ClientKey) Descriptor() ([]byte, []int) { + return file_external_infra_proxy_response_clients_proto_rawDescGZIP(), []int{4} +} + +func (x *ClientKey) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ClientKey) GetPublicKey() string { + if x != nil { + return x.PublicKey + } + return "" +} + +func (x *ClientKey) GetExpirationDate() string { + if x != nil { + return x.ExpirationDate + } + return "" +} + +func (x *ClientKey) GetPrivateKey() string { + if x != nil { + return x.PrivateKey + } + return "" +} + +type ClientAccessKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Client key name. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Client public key. + PublicKey string `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` + // Client key expiration date string. + ExpirationDate string `protobuf:"bytes,3,opt,name=expiration_date,json=expirationDate,proto3" json:"expiration_date,omitempty"` +} + +func (x *ClientAccessKey) Reset() { + *x = ClientAccessKey{} + if protoimpl.UnsafeEnabled { + mi := &file_external_infra_proxy_response_clients_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClientAccessKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClientAccessKey) ProtoMessage() {} + +func (x *ClientAccessKey) ProtoReflect() protoreflect.Message { + mi := &file_external_infra_proxy_response_clients_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ClientAccessKey.ProtoReflect.Descriptor instead. +func (*ClientAccessKey) Descriptor() ([]byte, []int) { + return file_external_infra_proxy_response_clients_proto_rawDescGZIP(), []int{5} +} + +func (x *ClientAccessKey) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ClientAccessKey) GetPublicKey() string { + if x != nil { + return x.PublicKey + } + return "" +} + +func (x *ClientAccessKey) GetExpirationDate() string { + if x != nil { + return x.ExpirationDate + } + return "" +} + var File_external_infra_proxy_response_clients_proto protoreflect.FileDescriptor var file_external_infra_proxy_response_clients_proto_rawDesc = []byte{ @@ -230,7 +437,7 @@ var file_external_infra_proxy_response_clients_proto_rawDesc = []byte{ 0x74, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x24, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x06, 0x43, 0x6c, 0x69, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x8a, 0x02, 0x0a, 0x06, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, @@ -241,12 +448,40 @@ var file_external_infra_proxy_response_clients_proto_rawDesc = []byte{ 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x68, 0x65, 0x66, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x42, 0x3c, 0x5a, - 0x3a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, - 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x78, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, - 0x78, 0x79, 0x2f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x56, 0x0a, + 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x37, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, + 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, 0x74, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x50, 0x0a, 0x0a, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, + 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, + 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, 0x88, 0x01, 0x0a, 0x09, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x0f, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, + 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x6d, 0x0a, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x0f, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x65, 0x42, 0x3c, 0x5a, 0x3a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, + 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x69, + 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -261,19 +496,24 @@ func file_external_infra_proxy_response_clients_proto_rawDescGZIP() []byte { return file_external_infra_proxy_response_clients_proto_rawDescData } -var file_external_infra_proxy_response_clients_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_external_infra_proxy_response_clients_proto_msgTypes = make([]protoimpl.MessageInfo, 6) var file_external_infra_proxy_response_clients_proto_goTypes = []interface{}{ - (*Clients)(nil), // 0: chef.automate.api.infra_proxy.response.Clients - (*ClientListItem)(nil), // 1: chef.automate.api.infra_proxy.response.ClientListItem - (*Client)(nil), // 2: chef.automate.api.infra_proxy.response.Client + (*Clients)(nil), // 0: chef.automate.api.infra_proxy.response.Clients + (*ClientListItem)(nil), // 1: chef.automate.api.infra_proxy.response.ClientListItem + (*Client)(nil), // 2: chef.automate.api.infra_proxy.response.Client + (*CreateClient)(nil), // 3: chef.automate.api.infra_proxy.response.CreateClient + (*ClientKey)(nil), // 4: chef.automate.api.infra_proxy.response.ClientKey + (*ClientAccessKey)(nil), // 5: chef.automate.api.infra_proxy.response.ClientAccessKey } var file_external_infra_proxy_response_clients_proto_depIdxs = []int32{ 1, // 0: chef.automate.api.infra_proxy.response.Clients.clients:type_name -> chef.automate.api.infra_proxy.response.ClientListItem - 1, // [1:1] is the sub-list for method output_type - 1, // [1:1] is the sub-list for method input_type - 1, // [1:1] is the sub-list for extension type_name - 1, // [1:1] is the sub-list for extension extendee - 0, // [0:1] is the sub-list for field type_name + 5, // 1: chef.automate.api.infra_proxy.response.Client.client_key:type_name -> chef.automate.api.infra_proxy.response.ClientAccessKey + 4, // 2: chef.automate.api.infra_proxy.response.CreateClient.client_key:type_name -> chef.automate.api.infra_proxy.response.ClientKey + 3, // [3:3] is the sub-list for method output_type + 3, // [3:3] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name } func init() { file_external_infra_proxy_response_clients_proto_init() } @@ -318,6 +558,42 @@ func file_external_infra_proxy_response_clients_proto_init() { return nil } } + file_external_infra_proxy_response_clients_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateClient); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_external_infra_proxy_response_clients_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClientKey); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_external_infra_proxy_response_clients_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClientAccessKey); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -325,7 +601,7 @@ func file_external_infra_proxy_response_clients_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_external_infra_proxy_response_clients_proto_rawDesc, NumEnums: 0, - NumMessages: 3, + NumMessages: 6, NumExtensions: 0, NumServices: 0, }, diff --git a/api/external/infra_proxy/response/clients.proto b/api/external/infra_proxy/response/clients.proto index 3d687614f3b..5525d405acd 100644 --- a/api/external/infra_proxy/response/clients.proto +++ b/api/external/infra_proxy/response/clients.proto @@ -4,26 +4,55 @@ package chef.automate.api.infra_proxy.response; option go_package = "github.com/chef/automate/api/external/infra_proxy/response"; message Clients { - // Client list. + // Client list. repeated ClientListItem clients = 1; } message ClientListItem { - // Client name. + // Client name. string name = 1; } message Client { - // Client name. - string name = 1; - // Client name return by Chef Infra Server API. - string client_name = 2; - // Chef organization name. - string org_name = 3; - // Boolean indicates client type is validator or not. - bool validator = 4; - // Client JSON class. - string json_class = 5; - // Chef object type. - string chef_type = 6; + // Client name. + string name = 1; + // Client name return by Chef Infra Server API. + string client_name = 2; + // Chef organization name. + string org_name = 3; + // Boolean indicates client type is validator or not. + bool validator = 4; + // Client JSON class. + string json_class = 5; + // Chef object type. + string chef_type = 6; + // Client key detail. + ClientAccessKey client_key = 7; +} + +message CreateClient { + // Client name. + string name = 1; + // Client key detail. + ClientKey client_key = 2; +} + +message ClientKey { + // Client key name. + string name = 1; + // Client public key. + string public_key = 2; + // Client key expiration date string. + string expiration_date = 3; + // Client private key. + string private_key = 4; +} + +message ClientAccessKey { + // Client key name. + string name = 1; + // Client public key. + string public_key = 2; + // Client key expiration date string. + string expiration_date = 3; } diff --git a/api/interservice/infra_proxy/request/clients.pb.go b/api/interservice/infra_proxy/request/clients.pb.go index e8a1ce65338..7a287f91200 100644 --- a/api/interservice/infra_proxy/request/clients.pb.go +++ b/api/interservice/infra_proxy/request/clients.pb.go @@ -148,6 +148,165 @@ func (x *Client) GetName() string { return "" } +type CreateClient struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Chef organization ID. + OrgId string `protobuf:"bytes,1,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty" toml:"org_id,omitempty" mapstructure:"org_id,omitempty"` + // Chef Infra Server ID. + ServerId string `protobuf:"bytes,2,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty" toml:"server_id,omitempty" mapstructure:"server_id,omitempty"` + // Client name. + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty" toml:"name,omitempty" mapstructure:"name,omitempty"` + // Boolean indicates client type is validator or not. + Validator bool `protobuf:"varint,4,opt,name=validator,proto3" json:"validator,omitempty" toml:"validator,omitempty" mapstructure:"validator,omitempty"` + // Boolean indicates whether it's required to create a key or not. + CreateKey bool `protobuf:"varint,5,opt,name=create_key,json=createKey,proto3" json:"create_key,omitempty" toml:"create_key,omitempty" mapstructure:"create_key,omitempty"` +} + +func (x *CreateClient) Reset() { + *x = CreateClient{} + if protoimpl.UnsafeEnabled { + mi := &file_interservice_infra_proxy_request_clients_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateClient) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateClient) ProtoMessage() {} + +func (x *CreateClient) ProtoReflect() protoreflect.Message { + mi := &file_interservice_infra_proxy_request_clients_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateClient.ProtoReflect.Descriptor instead. +func (*CreateClient) Descriptor() ([]byte, []int) { + return file_interservice_infra_proxy_request_clients_proto_rawDescGZIP(), []int{2} +} + +func (x *CreateClient) GetOrgId() string { + if x != nil { + return x.OrgId + } + return "" +} + +func (x *CreateClient) GetServerId() string { + if x != nil { + return x.ServerId + } + return "" +} + +func (x *CreateClient) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CreateClient) GetValidator() bool { + if x != nil { + return x.Validator + } + return false +} + +func (x *CreateClient) GetCreateKey() bool { + if x != nil { + return x.CreateKey + } + return false +} + +type ClientKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Chef organization ID. + OrgId string `protobuf:"bytes,1,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty" toml:"org_id,omitempty" mapstructure:"org_id,omitempty"` + // Chef Infra Server ID. + ServerId string `protobuf:"bytes,2,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty" toml:"server_id,omitempty" mapstructure:"server_id,omitempty"` + // Client name. + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty" toml:"name,omitempty" mapstructure:"name,omitempty"` + // Client key name. + Key string `protobuf:"bytes,4,opt,name=key,proto3" json:"key,omitempty" toml:"key,omitempty" mapstructure:"key,omitempty"` +} + +func (x *ClientKey) Reset() { + *x = ClientKey{} + if protoimpl.UnsafeEnabled { + mi := &file_interservice_infra_proxy_request_clients_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClientKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClientKey) ProtoMessage() {} + +func (x *ClientKey) ProtoReflect() protoreflect.Message { + mi := &file_interservice_infra_proxy_request_clients_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ClientKey.ProtoReflect.Descriptor instead. +func (*ClientKey) Descriptor() ([]byte, []int) { + return file_interservice_infra_proxy_request_clients_proto_rawDescGZIP(), []int{3} +} + +func (x *ClientKey) GetOrgId() string { + if x != nil { + return x.OrgId + } + return "" +} + +func (x *ClientKey) GetServerId() string { + if x != nil { + return x.ServerId + } + return "" +} + +func (x *ClientKey) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ClientKey) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + var File_interservice_infra_proxy_request_clients_proto protoreflect.FileDescriptor var file_interservice_infra_proxy_request_clients_proto_rawDesc = []byte{ @@ -165,12 +324,28 @@ var file_interservice_infra_proxy_request_clients_proto_rawDesc = []byte{ 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x3f, 0x5a, 0x3d, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, - 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, - 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x0c, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x15, 0x0a, 0x06, + 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, + 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, + 0x79, 0x22, 0x65, 0x0a, 0x09, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x15, + 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x42, 0x3f, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, + 0x6d, 0x61, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, + 0x79, 0x2f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -185,10 +360,12 @@ func file_interservice_infra_proxy_request_clients_proto_rawDescGZIP() []byte { return file_interservice_infra_proxy_request_clients_proto_rawDescData } -var file_interservice_infra_proxy_request_clients_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_interservice_infra_proxy_request_clients_proto_msgTypes = make([]protoimpl.MessageInfo, 4) var file_interservice_infra_proxy_request_clients_proto_goTypes = []interface{}{ - (*Clients)(nil), // 0: chef.automate.domain.infra_proxy.request.Clients - (*Client)(nil), // 1: chef.automate.domain.infra_proxy.request.Client + (*Clients)(nil), // 0: chef.automate.domain.infra_proxy.request.Clients + (*Client)(nil), // 1: chef.automate.domain.infra_proxy.request.Client + (*CreateClient)(nil), // 2: chef.automate.domain.infra_proxy.request.CreateClient + (*ClientKey)(nil), // 3: chef.automate.domain.infra_proxy.request.ClientKey } var file_interservice_infra_proxy_request_clients_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type @@ -228,6 +405,30 @@ func file_interservice_infra_proxy_request_clients_proto_init() { return nil } } + file_interservice_infra_proxy_request_clients_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateClient); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_interservice_infra_proxy_request_clients_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClientKey); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -235,7 +436,7 @@ func file_interservice_infra_proxy_request_clients_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_interservice_infra_proxy_request_clients_proto_rawDesc, NumEnums: 0, - NumMessages: 2, + NumMessages: 4, NumExtensions: 0, NumServices: 0, }, diff --git a/api/interservice/infra_proxy/request/clients.proto b/api/interservice/infra_proxy/request/clients.proto index 337bbe39e35..a587e0f631d 100644 --- a/api/interservice/infra_proxy/request/clients.proto +++ b/api/interservice/infra_proxy/request/clients.proto @@ -18,3 +18,27 @@ message Client { // Client name. string name = 3; } + +message CreateClient { + // Chef organization ID. + string org_id = 1; + // Chef Infra Server ID. + string server_id = 2; + // Client name. + string name = 3; + // Boolean indicates client type is validator or not. + bool validator = 4; + // Boolean indicates whether it's required to create a key or not. + bool create_key = 5; +} + +message ClientKey { + // Chef organization ID. + string org_id = 1; + // Chef Infra Server ID. + string server_id = 2; + // Client name. + string name = 3; + // Client key name. + string key = 4; +} diff --git a/api/interservice/infra_proxy/response/clients.pb.go b/api/interservice/infra_proxy/response/clients.pb.go index 731bf53213f..5546bba2f03 100644 --- a/api/interservice/infra_proxy/response/clients.pb.go +++ b/api/interservice/infra_proxy/response/clients.pb.go @@ -138,6 +138,8 @@ type Client struct { JsonClass string `protobuf:"bytes,5,opt,name=json_class,json=jsonClass,proto3" json:"json_class,omitempty" toml:"json_class,omitempty" mapstructure:"json_class,omitempty"` // Chef object type. ChefType string `protobuf:"bytes,6,opt,name=chef_type,json=chefType,proto3" json:"chef_type,omitempty" toml:"chef_type,omitempty" mapstructure:"chef_type,omitempty"` + // Client key detail. + ClientKey *ClientAccessKey `protobuf:"bytes,7,opt,name=client_key,json=clientKey,proto3" json:"client_key,omitempty" toml:"client_key,omitempty" mapstructure:"client_key,omitempty"` } func (x *Client) Reset() { @@ -214,6 +216,211 @@ func (x *Client) GetChefType() string { return "" } +func (x *Client) GetClientKey() *ClientAccessKey { + if x != nil { + return x.ClientKey + } + return nil +} + +type CreateClient struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Client name. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty" toml:"name,omitempty" mapstructure:"name,omitempty"` + // Client key detail. + ClientKey *ClientKey `protobuf:"bytes,2,opt,name=client_key,json=clientKey,proto3" json:"client_key,omitempty" toml:"client_key,omitempty" mapstructure:"client_key,omitempty"` +} + +func (x *CreateClient) Reset() { + *x = CreateClient{} + if protoimpl.UnsafeEnabled { + mi := &file_interservice_infra_proxy_response_clients_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateClient) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateClient) ProtoMessage() {} + +func (x *CreateClient) ProtoReflect() protoreflect.Message { + mi := &file_interservice_infra_proxy_response_clients_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateClient.ProtoReflect.Descriptor instead. +func (*CreateClient) Descriptor() ([]byte, []int) { + return file_interservice_infra_proxy_response_clients_proto_rawDescGZIP(), []int{3} +} + +func (x *CreateClient) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CreateClient) GetClientKey() *ClientKey { + if x != nil { + return x.ClientKey + } + return nil +} + +type ClientKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Client key name. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty" toml:"name,omitempty" mapstructure:"name,omitempty"` + // Client public key. + PublicKey string `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty" toml:"public_key,omitempty" mapstructure:"public_key,omitempty"` + // Client key expiration date string. + ExpirationDate string `protobuf:"bytes,3,opt,name=expiration_date,json=expirationDate,proto3" json:"expiration_date,omitempty" toml:"expiration_date,omitempty" mapstructure:"expiration_date,omitempty"` + // Client private key. + PrivateKey string `protobuf:"bytes,4,opt,name=private_key,json=privateKey,proto3" json:"private_key,omitempty" toml:"private_key,omitempty" mapstructure:"private_key,omitempty"` +} + +func (x *ClientKey) Reset() { + *x = ClientKey{} + if protoimpl.UnsafeEnabled { + mi := &file_interservice_infra_proxy_response_clients_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClientKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClientKey) ProtoMessage() {} + +func (x *ClientKey) ProtoReflect() protoreflect.Message { + mi := &file_interservice_infra_proxy_response_clients_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ClientKey.ProtoReflect.Descriptor instead. +func (*ClientKey) Descriptor() ([]byte, []int) { + return file_interservice_infra_proxy_response_clients_proto_rawDescGZIP(), []int{4} +} + +func (x *ClientKey) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ClientKey) GetPublicKey() string { + if x != nil { + return x.PublicKey + } + return "" +} + +func (x *ClientKey) GetExpirationDate() string { + if x != nil { + return x.ExpirationDate + } + return "" +} + +func (x *ClientKey) GetPrivateKey() string { + if x != nil { + return x.PrivateKey + } + return "" +} + +type ClientAccessKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Client key name. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty" toml:"name,omitempty" mapstructure:"name,omitempty"` + // Client public key. + PublicKey string `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty" toml:"public_key,omitempty" mapstructure:"public_key,omitempty"` + // Client key expiration date string. + ExpirationDate string `protobuf:"bytes,3,opt,name=expiration_date,json=expirationDate,proto3" json:"expiration_date,omitempty" toml:"expiration_date,omitempty" mapstructure:"expiration_date,omitempty"` +} + +func (x *ClientAccessKey) Reset() { + *x = ClientAccessKey{} + if protoimpl.UnsafeEnabled { + mi := &file_interservice_infra_proxy_response_clients_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClientAccessKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClientAccessKey) ProtoMessage() {} + +func (x *ClientAccessKey) ProtoReflect() protoreflect.Message { + mi := &file_interservice_infra_proxy_response_clients_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ClientAccessKey.ProtoReflect.Descriptor instead. +func (*ClientAccessKey) Descriptor() ([]byte, []int) { + return file_interservice_infra_proxy_response_clients_proto_rawDescGZIP(), []int{5} +} + +func (x *ClientAccessKey) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ClientAccessKey) GetPublicKey() string { + if x != nil { + return x.PublicKey + } + return "" +} + +func (x *ClientAccessKey) GetExpirationDate() string { + if x != nil { + return x.ExpirationDate + } + return "" +} + var File_interservice_infra_proxy_response_clients_proto protoreflect.FileDescriptor var file_interservice_infra_proxy_response_clients_proto_rawDesc = []byte{ @@ -231,7 +438,7 @@ var file_interservice_infra_proxy_response_clients_proto_rawDesc = []byte{ 0x74, 0x65, 0x6d, 0x52, 0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x24, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x06, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, + 0x6d, 0x65, 0x22, 0x8d, 0x02, 0x0a, 0x06, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, @@ -242,12 +449,40 @@ var file_interservice_infra_proxy_response_clients_proto_rawDesc = []byte{ 0x73, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x68, 0x65, 0x66, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, - 0x68, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x42, 0x40, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, - 0x61, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, - 0x2f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x68, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x59, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x63, 0x68, + 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, + 0x65, 0x79, 0x22, 0x77, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x53, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x68, 0x65, + 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, + 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, 0x88, 0x01, 0x0a, 0x09, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x0f, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, + 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x6d, 0x0a, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x0f, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x65, 0x42, 0x40, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, + 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -262,19 +497,24 @@ func file_interservice_infra_proxy_response_clients_proto_rawDescGZIP() []byte { return file_interservice_infra_proxy_response_clients_proto_rawDescData } -var file_interservice_infra_proxy_response_clients_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_interservice_infra_proxy_response_clients_proto_msgTypes = make([]protoimpl.MessageInfo, 6) var file_interservice_infra_proxy_response_clients_proto_goTypes = []interface{}{ - (*Clients)(nil), // 0: chef.automate.domain.infra_proxy.response.Clients - (*ClientListItem)(nil), // 1: chef.automate.domain.infra_proxy.response.ClientListItem - (*Client)(nil), // 2: chef.automate.domain.infra_proxy.response.Client + (*Clients)(nil), // 0: chef.automate.domain.infra_proxy.response.Clients + (*ClientListItem)(nil), // 1: chef.automate.domain.infra_proxy.response.ClientListItem + (*Client)(nil), // 2: chef.automate.domain.infra_proxy.response.Client + (*CreateClient)(nil), // 3: chef.automate.domain.infra_proxy.response.CreateClient + (*ClientKey)(nil), // 4: chef.automate.domain.infra_proxy.response.ClientKey + (*ClientAccessKey)(nil), // 5: chef.automate.domain.infra_proxy.response.ClientAccessKey } var file_interservice_infra_proxy_response_clients_proto_depIdxs = []int32{ 1, // 0: chef.automate.domain.infra_proxy.response.Clients.clients:type_name -> chef.automate.domain.infra_proxy.response.ClientListItem - 1, // [1:1] is the sub-list for method output_type - 1, // [1:1] is the sub-list for method input_type - 1, // [1:1] is the sub-list for extension type_name - 1, // [1:1] is the sub-list for extension extendee - 0, // [0:1] is the sub-list for field type_name + 5, // 1: chef.automate.domain.infra_proxy.response.Client.client_key:type_name -> chef.automate.domain.infra_proxy.response.ClientAccessKey + 4, // 2: chef.automate.domain.infra_proxy.response.CreateClient.client_key:type_name -> chef.automate.domain.infra_proxy.response.ClientKey + 3, // [3:3] is the sub-list for method output_type + 3, // [3:3] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name } func init() { file_interservice_infra_proxy_response_clients_proto_init() } @@ -319,6 +559,42 @@ func file_interservice_infra_proxy_response_clients_proto_init() { return nil } } + file_interservice_infra_proxy_response_clients_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateClient); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_interservice_infra_proxy_response_clients_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClientKey); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_interservice_infra_proxy_response_clients_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClientAccessKey); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -326,7 +602,7 @@ func file_interservice_infra_proxy_response_clients_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_interservice_infra_proxy_response_clients_proto_rawDesc, NumEnums: 0, - NumMessages: 3, + NumMessages: 6, NumExtensions: 0, NumServices: 0, }, diff --git a/api/interservice/infra_proxy/response/clients.proto b/api/interservice/infra_proxy/response/clients.proto index 71326c84970..106677747af 100644 --- a/api/interservice/infra_proxy/response/clients.proto +++ b/api/interservice/infra_proxy/response/clients.proto @@ -4,26 +4,55 @@ package chef.automate.domain.infra_proxy.response; option go_package = "github.com/chef/automate/api/interservice/infra_proxy/response"; message Clients { - // Client list. + // Client list. repeated ClientListItem clients = 1; } message ClientListItem { - // Client name. + // Client name. string name = 1; } message Client { - // Client name. - string name = 1; - // Client name return by Chef Infra Server API. - string client_name = 2; - // Chef organization name. - string org_name = 3; - // Boolean indicates client type is validator or not. - bool validator = 4; - // Client JSON class. - string json_class = 5; - // Chef object type. - string chef_type = 6; + // Client name. + string name = 1; + // Client name return by Chef Infra Server API. + string client_name = 2; + // Chef organization name. + string org_name = 3; + // Boolean indicates client type is validator or not. + bool validator = 4; + // Client JSON class. + string json_class = 5; + // Chef object type. + string chef_type = 6; + // Client key detail. + ClientAccessKey client_key = 7; +} + +message CreateClient { + // Client name. + string name = 1; + // Client key detail. + ClientKey client_key = 2; +} + +message ClientKey { + // Client key name. + string name = 1; + // Client public key. + string public_key = 2; + // Client key expiration date string. + string expiration_date = 3; + // Client private key. + string private_key = 4; +} + +message ClientAccessKey { + // Client key name. + string name = 1; + // Client public key. + string public_key = 2; + // Client key expiration date string. + string expiration_date = 3; } diff --git a/api/interservice/infra_proxy/service/infra_proxy.pb.go b/api/interservice/infra_proxy/service/infra_proxy.pb.go index ae12ae023bb..c05e73fcaac 100644 --- a/api/interservice/infra_proxy/service/infra_proxy.pb.go +++ b/api/interservice/infra_proxy/service/infra_proxy.pb.go @@ -94,7 +94,7 @@ var file_interservice_infra_proxy_service_infra_proxy_proto_rawDesc = []byte{ 0x74, 0x65, 0x72, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x32, 0x8d, 0x29, 0x0a, 0x11, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x50, 0x72, 0x6f, 0x78, 0x79, + 0x6f, 0x32, 0x87, 0x2c, 0x0a, 0x11, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x36, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, @@ -266,168 +266,192 @@ var file_interservice_infra_proxy_service_infra_proxy_proto_rawDesc = []byte{ 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x0b, - 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x73, 0x12, 0x32, 0x2e, 0x63, 0x68, - 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x73, 0x1a, - 0x33, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, - 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, - 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, - 0x42, 0x61, 0x67, 0x73, 0x22, 0x00, 0x12, 0x79, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, - 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x31, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, - 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, - 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x1a, 0x32, 0x2e, 0x63, 0x68, - 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x22, - 0x00, 0x12, 0x84, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x42, 0x61, 0x67, 0x12, 0x37, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, - 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, - 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x1a, 0x38, 0x2e, 0x63, - 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, - 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, - 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, - 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x22, 0x00, 0x12, 0x90, 0x01, 0x0a, 0x11, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x3b, + 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, + 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x36, 0x2e, + 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, + 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, + 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, + 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x00, + 0x12, 0x75, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x12, 0x30, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, + 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, + 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, + 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x00, 0x12, 0x7d, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x65, 0x74, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x33, 0x2e, 0x63, 0x68, 0x65, 0x66, + 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x1a, 0x34, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, - 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x1a, 0x3c, 0x2e, 0x63, 0x68, - 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x0d, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x12, 0x31, 0x2e, 0x63, - 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, - 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x1a, - 0x32, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, - 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, - 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, - 0x42, 0x61, 0x67, 0x22, 0x00, 0x12, 0x90, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x3b, 0x2e, 0x63, 0x68, - 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x1a, 0x3c, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, - 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, - 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, - 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, - 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x36, 0x2e, 0x63, - 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, - 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x37, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, - 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, - 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x00, 0x12, - 0x81, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x35, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, - 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, - 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x6e, - 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x36, 0x2e, 0x63, 0x68, 0x65, 0x66, + 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4b, 0x65, 0x79, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x61, 0x67, 0x73, 0x12, 0x32, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, + 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, + 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x73, 0x1a, 0x33, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x00, 0x12, 0x8a, 0x01, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, - 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3b, 0x2e, 0x63, 0x68, 0x65, 0x66, - 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, - 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x36, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x73, 0x22, 0x00, + 0x12, 0x79, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, + 0x65, 0x6d, 0x12, 0x31, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, + 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, + 0x74, 0x61, 0x42, 0x61, 0x67, 0x1a, 0x32, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, + 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, + 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x0d, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x12, 0x37, 0x2e, + 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, + 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x1a, 0x38, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x00, - 0x12, 0x8a, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, - 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3b, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, + 0x73, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, + 0x22, 0x00, 0x12, 0x90, 0x01, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x3b, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, + 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, + 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, + 0x67, 0x49, 0x74, 0x65, 0x6d, 0x1a, 0x3c, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, + 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, + 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, + 0x74, 0x65, 0x6d, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x12, 0x31, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, + 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, + 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x1a, 0x32, 0x2e, 0x63, 0x68, 0x65, 0x66, + 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x22, 0x00, 0x12, + 0x90, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, + 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x3b, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, + 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, + 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, + 0x65, 0x6d, 0x1a, 0x3c, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, + 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, + 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x36, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, + 0x74, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x37, + 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, + 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, + 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x0e, 0x47, 0x65, + 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x35, 0x2e, 0x63, + 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x36, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, - 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x00, 0x12, 0x84, 0x01, - 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0x35, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, + 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x00, 0x12, 0x8a, 0x01, + 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x3b, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, - 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, - 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x36, 0x2e, 0x63, 0x68, 0x65, - 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x00, 0x12, 0x93, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, - 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x63, 0x69, 0x70, 0x65, 0x73, 0x12, 0x35, - 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, - 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, - 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x41, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, - 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, - 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x63, - 0x69, 0x70, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x08, 0x47, 0x65, - 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x2f, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, - 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, - 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x1a, 0x30, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, - 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, - 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x10, - 0x47, 0x65, 0x74, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, - 0x12, 0x37, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, + 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x1a, 0x36, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, - 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x66, 0x66, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x1a, 0x38, 0x2e, 0x63, 0x68, 0x65, 0x66, - 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4e, 0x6f, - 0x64, 0x65, 0x73, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, - 0x12, 0x2e, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, + 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, + 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x00, 0x12, 0x8a, 0x01, 0x0a, 0x11, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x3b, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, - 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4e, 0x6f, 0x64, 0x65, - 0x1a, 0x2f, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, + 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x36, 0x2e, + 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, + 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x35, 0x2e, + 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, + 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x36, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, + 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x00, 0x12, 0x93, + 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x63, 0x69, 0x70, 0x65, 0x73, 0x12, 0x35, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, + 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, + 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, + 0x41, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, + 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, + 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x63, 0x69, 0x70, 0x65, 0x73, 0x4c, 0x69, + 0x73, 0x74, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, + 0x12, 0x2f, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, - 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x6f, 0x64, - 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, - 0x65, 0x12, 0x34, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, + 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4e, 0x6f, 0x64, 0x65, + 0x73, 0x1a, 0x30, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, - 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x1a, 0x35, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, - 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, - 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x22, 0x00, - 0x12, 0x7b, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x34, + 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x6f, + 0x64, 0x65, 0x73, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x41, 0x66, 0x66, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x37, 0x2e, 0x63, 0x68, 0x65, + 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4e, 0x6f, + 0x64, 0x65, 0x73, 0x1a, 0x38, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, + 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, + 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x00, 0x12, + 0x6c, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x2e, 0x2e, 0x63, 0x68, 0x65, + 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x1a, 0x2f, 0x2e, 0x63, 0x68, 0x65, + 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, + 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x34, 0x2e, 0x63, 0x68, + 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, + 0x65, 0x1a, 0x35, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, + 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, + 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x0a, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x34, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, + 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, + 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x1a, 0x35, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, - 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x4e, 0x6f, 0x64, 0x65, 0x1a, 0x35, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, - 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, - 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, - 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x12, 0x35, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, - 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, - 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x1a, 0x36, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, - 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, - 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, - 0x00, 0x12, 0x7e, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, - 0x6c, 0x65, 0x12, 0x34, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, + 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x35, 0x2e, 0x63, 0x68, 0x65, + 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x1a, 0x36, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, + 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, + 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x0d, 0x47, + 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x34, 0x2e, 0x63, + 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, + 0x6c, 0x65, 0x1a, 0x35, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, - 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x35, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, - 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, - 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x22, - 0x00, 0x42, 0x3f, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x69, - 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x00, 0x42, 0x3f, 0x5a, 0x3d, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, + 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, + 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var file_interservice_infra_proxy_service_infra_proxy_proto_goTypes = []interface{}{ @@ -452,56 +476,60 @@ var file_interservice_infra_proxy_service_infra_proxy_proto_goTypes = []interfac (*request.UpdateRole)(nil), // 18: chef.automate.domain.infra_proxy.request.UpdateRole (*request.Clients)(nil), // 19: chef.automate.domain.infra_proxy.request.Clients (*request.Client)(nil), // 20: chef.automate.domain.infra_proxy.request.Client - (*request.DataBags)(nil), // 21: chef.automate.domain.infra_proxy.request.DataBags - (*request.DataBag)(nil), // 22: chef.automate.domain.infra_proxy.request.DataBag - (*request.CreateDataBag)(nil), // 23: chef.automate.domain.infra_proxy.request.CreateDataBag - (*request.CreateDataBagItem)(nil), // 24: chef.automate.domain.infra_proxy.request.CreateDataBagItem - (*request.UpdateDataBagItem)(nil), // 25: chef.automate.domain.infra_proxy.request.UpdateDataBagItem - (*request.Environments)(nil), // 26: chef.automate.domain.infra_proxy.request.Environments - (*request.Environment)(nil), // 27: chef.automate.domain.infra_proxy.request.Environment - (*request.CreateEnvironment)(nil), // 28: chef.automate.domain.infra_proxy.request.CreateEnvironment - (*request.UpdateEnvironment)(nil), // 29: chef.automate.domain.infra_proxy.request.UpdateEnvironment - (*request.Nodes)(nil), // 30: chef.automate.domain.infra_proxy.request.Nodes - (*request.AffectedNodes)(nil), // 31: chef.automate.domain.infra_proxy.request.AffectedNodes - (*request.Node)(nil), // 32: chef.automate.domain.infra_proxy.request.Node - (*request.DeleteNode)(nil), // 33: chef.automate.domain.infra_proxy.request.DeleteNode - (*request.UpdateNode)(nil), // 34: chef.automate.domain.infra_proxy.request.UpdateNode - (*request.Policyfiles)(nil), // 35: chef.automate.domain.infra_proxy.request.Policyfiles - (*request.Policyfile)(nil), // 36: chef.automate.domain.infra_proxy.request.Policyfile - (*response.CreateServer)(nil), // 37: chef.automate.domain.infra_proxy.response.CreateServer - (*response.DeleteServer)(nil), // 38: chef.automate.domain.infra_proxy.response.DeleteServer - (*response.UpdateServer)(nil), // 39: chef.automate.domain.infra_proxy.response.UpdateServer - (*response.GetServers)(nil), // 40: chef.automate.domain.infra_proxy.response.GetServers - (*response.GetServer)(nil), // 41: chef.automate.domain.infra_proxy.response.GetServer - (*response.CreateOrg)(nil), // 42: chef.automate.domain.infra_proxy.response.CreateOrg - (*response.DeleteOrg)(nil), // 43: chef.automate.domain.infra_proxy.response.DeleteOrg - (*response.UpdateOrg)(nil), // 44: chef.automate.domain.infra_proxy.response.UpdateOrg - (*response.GetOrgs)(nil), // 45: chef.automate.domain.infra_proxy.response.GetOrgs - (*response.GetOrg)(nil), // 46: chef.automate.domain.infra_proxy.response.GetOrg - (*response.ResetOrgAdminKey)(nil), // 47: chef.automate.domain.infra_proxy.response.ResetOrgAdminKey - (*response.Cookbooks)(nil), // 48: chef.automate.domain.infra_proxy.response.Cookbooks - (*response.CookbookVersions)(nil), // 49: chef.automate.domain.infra_proxy.response.CookbookVersions - (*response.Cookbook)(nil), // 50: chef.automate.domain.infra_proxy.response.Cookbook - (*response.CookbookFileContent)(nil), // 51: chef.automate.domain.infra_proxy.response.CookbookFileContent - (*response.Roles)(nil), // 52: chef.automate.domain.infra_proxy.response.Roles - (*response.Role)(nil), // 53: chef.automate.domain.infra_proxy.response.Role - (*response.Clients)(nil), // 54: chef.automate.domain.infra_proxy.response.Clients - (*response.Client)(nil), // 55: chef.automate.domain.infra_proxy.response.Client - (*response.DataBags)(nil), // 56: chef.automate.domain.infra_proxy.response.DataBags - (*response.DataBag)(nil), // 57: chef.automate.domain.infra_proxy.response.DataBag - (*response.CreateDataBag)(nil), // 58: chef.automate.domain.infra_proxy.response.CreateDataBag - (*response.CreateDataBagItem)(nil), // 59: chef.automate.domain.infra_proxy.response.CreateDataBagItem - (*response.UpdateDataBagItem)(nil), // 60: chef.automate.domain.infra_proxy.response.UpdateDataBagItem - (*response.Environments)(nil), // 61: chef.automate.domain.infra_proxy.response.Environments - (*response.Environment)(nil), // 62: chef.automate.domain.infra_proxy.response.Environment - (*response.EnvironmentRecipesList)(nil), // 63: chef.automate.domain.infra_proxy.response.EnvironmentRecipesList - (*response.Nodes)(nil), // 64: chef.automate.domain.infra_proxy.response.Nodes - (*response.AffectedNodes)(nil), // 65: chef.automate.domain.infra_proxy.response.AffectedNodes - (*response.Node)(nil), // 66: chef.automate.domain.infra_proxy.response.Node - (*response.DeleteNode)(nil), // 67: chef.automate.domain.infra_proxy.response.DeleteNode - (*response.UpdateNode)(nil), // 68: chef.automate.domain.infra_proxy.response.UpdateNode - (*response.Policyfiles)(nil), // 69: chef.automate.domain.infra_proxy.response.Policyfiles - (*response.Policyfile)(nil), // 70: chef.automate.domain.infra_proxy.response.Policyfile + (*request.CreateClient)(nil), // 21: chef.automate.domain.infra_proxy.request.CreateClient + (*request.ClientKey)(nil), // 22: chef.automate.domain.infra_proxy.request.ClientKey + (*request.DataBags)(nil), // 23: chef.automate.domain.infra_proxy.request.DataBags + (*request.DataBag)(nil), // 24: chef.automate.domain.infra_proxy.request.DataBag + (*request.CreateDataBag)(nil), // 25: chef.automate.domain.infra_proxy.request.CreateDataBag + (*request.CreateDataBagItem)(nil), // 26: chef.automate.domain.infra_proxy.request.CreateDataBagItem + (*request.UpdateDataBagItem)(nil), // 27: chef.automate.domain.infra_proxy.request.UpdateDataBagItem + (*request.Environments)(nil), // 28: chef.automate.domain.infra_proxy.request.Environments + (*request.Environment)(nil), // 29: chef.automate.domain.infra_proxy.request.Environment + (*request.CreateEnvironment)(nil), // 30: chef.automate.domain.infra_proxy.request.CreateEnvironment + (*request.UpdateEnvironment)(nil), // 31: chef.automate.domain.infra_proxy.request.UpdateEnvironment + (*request.Nodes)(nil), // 32: chef.automate.domain.infra_proxy.request.Nodes + (*request.AffectedNodes)(nil), // 33: chef.automate.domain.infra_proxy.request.AffectedNodes + (*request.Node)(nil), // 34: chef.automate.domain.infra_proxy.request.Node + (*request.DeleteNode)(nil), // 35: chef.automate.domain.infra_proxy.request.DeleteNode + (*request.UpdateNode)(nil), // 36: chef.automate.domain.infra_proxy.request.UpdateNode + (*request.Policyfiles)(nil), // 37: chef.automate.domain.infra_proxy.request.Policyfiles + (*request.Policyfile)(nil), // 38: chef.automate.domain.infra_proxy.request.Policyfile + (*response.CreateServer)(nil), // 39: chef.automate.domain.infra_proxy.response.CreateServer + (*response.DeleteServer)(nil), // 40: chef.automate.domain.infra_proxy.response.DeleteServer + (*response.UpdateServer)(nil), // 41: chef.automate.domain.infra_proxy.response.UpdateServer + (*response.GetServers)(nil), // 42: chef.automate.domain.infra_proxy.response.GetServers + (*response.GetServer)(nil), // 43: chef.automate.domain.infra_proxy.response.GetServer + (*response.CreateOrg)(nil), // 44: chef.automate.domain.infra_proxy.response.CreateOrg + (*response.DeleteOrg)(nil), // 45: chef.automate.domain.infra_proxy.response.DeleteOrg + (*response.UpdateOrg)(nil), // 46: chef.automate.domain.infra_proxy.response.UpdateOrg + (*response.GetOrgs)(nil), // 47: chef.automate.domain.infra_proxy.response.GetOrgs + (*response.GetOrg)(nil), // 48: chef.automate.domain.infra_proxy.response.GetOrg + (*response.ResetOrgAdminKey)(nil), // 49: chef.automate.domain.infra_proxy.response.ResetOrgAdminKey + (*response.Cookbooks)(nil), // 50: chef.automate.domain.infra_proxy.response.Cookbooks + (*response.CookbookVersions)(nil), // 51: chef.automate.domain.infra_proxy.response.CookbookVersions + (*response.Cookbook)(nil), // 52: chef.automate.domain.infra_proxy.response.Cookbook + (*response.CookbookFileContent)(nil), // 53: chef.automate.domain.infra_proxy.response.CookbookFileContent + (*response.Roles)(nil), // 54: chef.automate.domain.infra_proxy.response.Roles + (*response.Role)(nil), // 55: chef.automate.domain.infra_proxy.response.Role + (*response.Clients)(nil), // 56: chef.automate.domain.infra_proxy.response.Clients + (*response.Client)(nil), // 57: chef.automate.domain.infra_proxy.response.Client + (*response.CreateClient)(nil), // 58: chef.automate.domain.infra_proxy.response.CreateClient + (*response.ClientKey)(nil), // 59: chef.automate.domain.infra_proxy.response.ClientKey + (*response.DataBags)(nil), // 60: chef.automate.domain.infra_proxy.response.DataBags + (*response.DataBag)(nil), // 61: chef.automate.domain.infra_proxy.response.DataBag + (*response.CreateDataBag)(nil), // 62: chef.automate.domain.infra_proxy.response.CreateDataBag + (*response.CreateDataBagItem)(nil), // 63: chef.automate.domain.infra_proxy.response.CreateDataBagItem + (*response.UpdateDataBagItem)(nil), // 64: chef.automate.domain.infra_proxy.response.UpdateDataBagItem + (*response.Environments)(nil), // 65: chef.automate.domain.infra_proxy.response.Environments + (*response.Environment)(nil), // 66: chef.automate.domain.infra_proxy.response.Environment + (*response.EnvironmentRecipesList)(nil), // 67: chef.automate.domain.infra_proxy.response.EnvironmentRecipesList + (*response.Nodes)(nil), // 68: chef.automate.domain.infra_proxy.response.Nodes + (*response.AffectedNodes)(nil), // 69: chef.automate.domain.infra_proxy.response.AffectedNodes + (*response.Node)(nil), // 70: chef.automate.domain.infra_proxy.response.Node + (*response.DeleteNode)(nil), // 71: chef.automate.domain.infra_proxy.response.DeleteNode + (*response.UpdateNode)(nil), // 72: chef.automate.domain.infra_proxy.response.UpdateNode + (*response.Policyfiles)(nil), // 73: chef.automate.domain.infra_proxy.response.Policyfiles + (*response.Policyfile)(nil), // 74: chef.automate.domain.infra_proxy.response.Policyfile } var file_interservice_infra_proxy_service_infra_proxy_proto_depIdxs = []int32{ 0, // 0: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateServer:input_type -> chef.automate.domain.infra_proxy.request.CreateServer @@ -526,68 +554,74 @@ var file_interservice_infra_proxy_service_infra_proxy_proto_depIdxs = []int32{ 18, // 19: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateRole:input_type -> chef.automate.domain.infra_proxy.request.UpdateRole 19, // 20: chef.automate.domain.infra_proxy.service.InfraProxyService.GetClients:input_type -> chef.automate.domain.infra_proxy.request.Clients 20, // 21: chef.automate.domain.infra_proxy.service.InfraProxyService.GetClient:input_type -> chef.automate.domain.infra_proxy.request.Client - 21, // 22: chef.automate.domain.infra_proxy.service.InfraProxyService.GetDataBags:input_type -> chef.automate.domain.infra_proxy.request.DataBags - 22, // 23: chef.automate.domain.infra_proxy.service.InfraProxyService.GetDataBagItem:input_type -> chef.automate.domain.infra_proxy.request.DataBag - 23, // 24: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateDataBag:input_type -> chef.automate.domain.infra_proxy.request.CreateDataBag - 24, // 25: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateDataBagItem:input_type -> chef.automate.domain.infra_proxy.request.CreateDataBagItem - 22, // 26: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteDataBag:input_type -> chef.automate.domain.infra_proxy.request.DataBag - 25, // 27: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateDataBagItem:input_type -> chef.automate.domain.infra_proxy.request.UpdateDataBagItem - 26, // 28: chef.automate.domain.infra_proxy.service.InfraProxyService.GetEnvironments:input_type -> chef.automate.domain.infra_proxy.request.Environments - 27, // 29: chef.automate.domain.infra_proxy.service.InfraProxyService.GetEnvironment:input_type -> chef.automate.domain.infra_proxy.request.Environment - 28, // 30: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateEnvironment:input_type -> chef.automate.domain.infra_proxy.request.CreateEnvironment - 29, // 31: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateEnvironment:input_type -> chef.automate.domain.infra_proxy.request.UpdateEnvironment - 27, // 32: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteEnvironment:input_type -> chef.automate.domain.infra_proxy.request.Environment - 27, // 33: chef.automate.domain.infra_proxy.service.InfraProxyService.GetEnvironmentRecipes:input_type -> chef.automate.domain.infra_proxy.request.Environment - 30, // 34: chef.automate.domain.infra_proxy.service.InfraProxyService.GetNodes:input_type -> chef.automate.domain.infra_proxy.request.Nodes - 31, // 35: chef.automate.domain.infra_proxy.service.InfraProxyService.GetAffectedNodes:input_type -> chef.automate.domain.infra_proxy.request.AffectedNodes - 32, // 36: chef.automate.domain.infra_proxy.service.InfraProxyService.GetNode:input_type -> chef.automate.domain.infra_proxy.request.Node - 33, // 37: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteNode:input_type -> chef.automate.domain.infra_proxy.request.DeleteNode - 34, // 38: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateNode:input_type -> chef.automate.domain.infra_proxy.request.UpdateNode - 35, // 39: chef.automate.domain.infra_proxy.service.InfraProxyService.GetPolicyfiles:input_type -> chef.automate.domain.infra_proxy.request.Policyfiles - 36, // 40: chef.automate.domain.infra_proxy.service.InfraProxyService.GetPolicyfile:input_type -> chef.automate.domain.infra_proxy.request.Policyfile - 37, // 41: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateServer:output_type -> chef.automate.domain.infra_proxy.response.CreateServer - 38, // 42: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteServer:output_type -> chef.automate.domain.infra_proxy.response.DeleteServer - 39, // 43: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateServer:output_type -> chef.automate.domain.infra_proxy.response.UpdateServer - 40, // 44: chef.automate.domain.infra_proxy.service.InfraProxyService.GetServers:output_type -> chef.automate.domain.infra_proxy.response.GetServers - 41, // 45: chef.automate.domain.infra_proxy.service.InfraProxyService.GetServer:output_type -> chef.automate.domain.infra_proxy.response.GetServer - 42, // 46: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateOrg:output_type -> chef.automate.domain.infra_proxy.response.CreateOrg - 43, // 47: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteOrg:output_type -> chef.automate.domain.infra_proxy.response.DeleteOrg - 44, // 48: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateOrg:output_type -> chef.automate.domain.infra_proxy.response.UpdateOrg - 45, // 49: chef.automate.domain.infra_proxy.service.InfraProxyService.GetOrgs:output_type -> chef.automate.domain.infra_proxy.response.GetOrgs - 46, // 50: chef.automate.domain.infra_proxy.service.InfraProxyService.GetOrg:output_type -> chef.automate.domain.infra_proxy.response.GetOrg - 47, // 51: chef.automate.domain.infra_proxy.service.InfraProxyService.ResetOrgAdminKey:output_type -> chef.automate.domain.infra_proxy.response.ResetOrgAdminKey - 48, // 52: chef.automate.domain.infra_proxy.service.InfraProxyService.GetCookbooks:output_type -> chef.automate.domain.infra_proxy.response.Cookbooks - 49, // 53: chef.automate.domain.infra_proxy.service.InfraProxyService.GetCookbookVersions:output_type -> chef.automate.domain.infra_proxy.response.CookbookVersions - 50, // 54: chef.automate.domain.infra_proxy.service.InfraProxyService.GetCookbook:output_type -> chef.automate.domain.infra_proxy.response.Cookbook - 51, // 55: chef.automate.domain.infra_proxy.service.InfraProxyService.GetCookbookFileContent:output_type -> chef.automate.domain.infra_proxy.response.CookbookFileContent - 52, // 56: chef.automate.domain.infra_proxy.service.InfraProxyService.GetRoles:output_type -> chef.automate.domain.infra_proxy.response.Roles - 53, // 57: chef.automate.domain.infra_proxy.service.InfraProxyService.GetRole:output_type -> chef.automate.domain.infra_proxy.response.Role - 53, // 58: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateRole:output_type -> chef.automate.domain.infra_proxy.response.Role - 53, // 59: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteRole:output_type -> chef.automate.domain.infra_proxy.response.Role - 53, // 60: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateRole:output_type -> chef.automate.domain.infra_proxy.response.Role - 54, // 61: chef.automate.domain.infra_proxy.service.InfraProxyService.GetClients:output_type -> chef.automate.domain.infra_proxy.response.Clients - 55, // 62: chef.automate.domain.infra_proxy.service.InfraProxyService.GetClient:output_type -> chef.automate.domain.infra_proxy.response.Client - 56, // 63: chef.automate.domain.infra_proxy.service.InfraProxyService.GetDataBags:output_type -> chef.automate.domain.infra_proxy.response.DataBags - 57, // 64: chef.automate.domain.infra_proxy.service.InfraProxyService.GetDataBagItem:output_type -> chef.automate.domain.infra_proxy.response.DataBag - 58, // 65: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateDataBag:output_type -> chef.automate.domain.infra_proxy.response.CreateDataBag - 59, // 66: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateDataBagItem:output_type -> chef.automate.domain.infra_proxy.response.CreateDataBagItem - 57, // 67: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteDataBag:output_type -> chef.automate.domain.infra_proxy.response.DataBag - 60, // 68: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateDataBagItem:output_type -> chef.automate.domain.infra_proxy.response.UpdateDataBagItem - 61, // 69: chef.automate.domain.infra_proxy.service.InfraProxyService.GetEnvironments:output_type -> chef.automate.domain.infra_proxy.response.Environments - 62, // 70: chef.automate.domain.infra_proxy.service.InfraProxyService.GetEnvironment:output_type -> chef.automate.domain.infra_proxy.response.Environment - 62, // 71: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateEnvironment:output_type -> chef.automate.domain.infra_proxy.response.Environment - 62, // 72: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateEnvironment:output_type -> chef.automate.domain.infra_proxy.response.Environment - 62, // 73: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteEnvironment:output_type -> chef.automate.domain.infra_proxy.response.Environment - 63, // 74: chef.automate.domain.infra_proxy.service.InfraProxyService.GetEnvironmentRecipes:output_type -> chef.automate.domain.infra_proxy.response.EnvironmentRecipesList - 64, // 75: chef.automate.domain.infra_proxy.service.InfraProxyService.GetNodes:output_type -> chef.automate.domain.infra_proxy.response.Nodes - 65, // 76: chef.automate.domain.infra_proxy.service.InfraProxyService.GetAffectedNodes:output_type -> chef.automate.domain.infra_proxy.response.AffectedNodes - 66, // 77: chef.automate.domain.infra_proxy.service.InfraProxyService.GetNode:output_type -> chef.automate.domain.infra_proxy.response.Node - 67, // 78: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteNode:output_type -> chef.automate.domain.infra_proxy.response.DeleteNode - 68, // 79: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateNode:output_type -> chef.automate.domain.infra_proxy.response.UpdateNode - 69, // 80: chef.automate.domain.infra_proxy.service.InfraProxyService.GetPolicyfiles:output_type -> chef.automate.domain.infra_proxy.response.Policyfiles - 70, // 81: chef.automate.domain.infra_proxy.service.InfraProxyService.GetPolicyfile:output_type -> chef.automate.domain.infra_proxy.response.Policyfile - 41, // [41:82] is the sub-list for method output_type - 0, // [0:41] is the sub-list for method input_type + 21, // 22: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateClient:input_type -> chef.automate.domain.infra_proxy.request.CreateClient + 20, // 23: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteClient:input_type -> chef.automate.domain.infra_proxy.request.Client + 22, // 24: chef.automate.domain.infra_proxy.service.InfraProxyService.ResetClientKey:input_type -> chef.automate.domain.infra_proxy.request.ClientKey + 23, // 25: chef.automate.domain.infra_proxy.service.InfraProxyService.GetDataBags:input_type -> chef.automate.domain.infra_proxy.request.DataBags + 24, // 26: chef.automate.domain.infra_proxy.service.InfraProxyService.GetDataBagItem:input_type -> chef.automate.domain.infra_proxy.request.DataBag + 25, // 27: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateDataBag:input_type -> chef.automate.domain.infra_proxy.request.CreateDataBag + 26, // 28: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateDataBagItem:input_type -> chef.automate.domain.infra_proxy.request.CreateDataBagItem + 24, // 29: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteDataBag:input_type -> chef.automate.domain.infra_proxy.request.DataBag + 27, // 30: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateDataBagItem:input_type -> chef.automate.domain.infra_proxy.request.UpdateDataBagItem + 28, // 31: chef.automate.domain.infra_proxy.service.InfraProxyService.GetEnvironments:input_type -> chef.automate.domain.infra_proxy.request.Environments + 29, // 32: chef.automate.domain.infra_proxy.service.InfraProxyService.GetEnvironment:input_type -> chef.automate.domain.infra_proxy.request.Environment + 30, // 33: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateEnvironment:input_type -> chef.automate.domain.infra_proxy.request.CreateEnvironment + 31, // 34: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateEnvironment:input_type -> chef.automate.domain.infra_proxy.request.UpdateEnvironment + 29, // 35: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteEnvironment:input_type -> chef.automate.domain.infra_proxy.request.Environment + 29, // 36: chef.automate.domain.infra_proxy.service.InfraProxyService.GetEnvironmentRecipes:input_type -> chef.automate.domain.infra_proxy.request.Environment + 32, // 37: chef.automate.domain.infra_proxy.service.InfraProxyService.GetNodes:input_type -> chef.automate.domain.infra_proxy.request.Nodes + 33, // 38: chef.automate.domain.infra_proxy.service.InfraProxyService.GetAffectedNodes:input_type -> chef.automate.domain.infra_proxy.request.AffectedNodes + 34, // 39: chef.automate.domain.infra_proxy.service.InfraProxyService.GetNode:input_type -> chef.automate.domain.infra_proxy.request.Node + 35, // 40: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteNode:input_type -> chef.automate.domain.infra_proxy.request.DeleteNode + 36, // 41: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateNode:input_type -> chef.automate.domain.infra_proxy.request.UpdateNode + 37, // 42: chef.automate.domain.infra_proxy.service.InfraProxyService.GetPolicyfiles:input_type -> chef.automate.domain.infra_proxy.request.Policyfiles + 38, // 43: chef.automate.domain.infra_proxy.service.InfraProxyService.GetPolicyfile:input_type -> chef.automate.domain.infra_proxy.request.Policyfile + 39, // 44: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateServer:output_type -> chef.automate.domain.infra_proxy.response.CreateServer + 40, // 45: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteServer:output_type -> chef.automate.domain.infra_proxy.response.DeleteServer + 41, // 46: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateServer:output_type -> chef.automate.domain.infra_proxy.response.UpdateServer + 42, // 47: chef.automate.domain.infra_proxy.service.InfraProxyService.GetServers:output_type -> chef.automate.domain.infra_proxy.response.GetServers + 43, // 48: chef.automate.domain.infra_proxy.service.InfraProxyService.GetServer:output_type -> chef.automate.domain.infra_proxy.response.GetServer + 44, // 49: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateOrg:output_type -> chef.automate.domain.infra_proxy.response.CreateOrg + 45, // 50: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteOrg:output_type -> chef.automate.domain.infra_proxy.response.DeleteOrg + 46, // 51: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateOrg:output_type -> chef.automate.domain.infra_proxy.response.UpdateOrg + 47, // 52: chef.automate.domain.infra_proxy.service.InfraProxyService.GetOrgs:output_type -> chef.automate.domain.infra_proxy.response.GetOrgs + 48, // 53: chef.automate.domain.infra_proxy.service.InfraProxyService.GetOrg:output_type -> chef.automate.domain.infra_proxy.response.GetOrg + 49, // 54: chef.automate.domain.infra_proxy.service.InfraProxyService.ResetOrgAdminKey:output_type -> chef.automate.domain.infra_proxy.response.ResetOrgAdminKey + 50, // 55: chef.automate.domain.infra_proxy.service.InfraProxyService.GetCookbooks:output_type -> chef.automate.domain.infra_proxy.response.Cookbooks + 51, // 56: chef.automate.domain.infra_proxy.service.InfraProxyService.GetCookbookVersions:output_type -> chef.automate.domain.infra_proxy.response.CookbookVersions + 52, // 57: chef.automate.domain.infra_proxy.service.InfraProxyService.GetCookbook:output_type -> chef.automate.domain.infra_proxy.response.Cookbook + 53, // 58: chef.automate.domain.infra_proxy.service.InfraProxyService.GetCookbookFileContent:output_type -> chef.automate.domain.infra_proxy.response.CookbookFileContent + 54, // 59: chef.automate.domain.infra_proxy.service.InfraProxyService.GetRoles:output_type -> chef.automate.domain.infra_proxy.response.Roles + 55, // 60: chef.automate.domain.infra_proxy.service.InfraProxyService.GetRole:output_type -> chef.automate.domain.infra_proxy.response.Role + 55, // 61: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateRole:output_type -> chef.automate.domain.infra_proxy.response.Role + 55, // 62: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteRole:output_type -> chef.automate.domain.infra_proxy.response.Role + 55, // 63: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateRole:output_type -> chef.automate.domain.infra_proxy.response.Role + 56, // 64: chef.automate.domain.infra_proxy.service.InfraProxyService.GetClients:output_type -> chef.automate.domain.infra_proxy.response.Clients + 57, // 65: chef.automate.domain.infra_proxy.service.InfraProxyService.GetClient:output_type -> chef.automate.domain.infra_proxy.response.Client + 58, // 66: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateClient:output_type -> chef.automate.domain.infra_proxy.response.CreateClient + 57, // 67: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteClient:output_type -> chef.automate.domain.infra_proxy.response.Client + 59, // 68: chef.automate.domain.infra_proxy.service.InfraProxyService.ResetClientKey:output_type -> chef.automate.domain.infra_proxy.response.ClientKey + 60, // 69: chef.automate.domain.infra_proxy.service.InfraProxyService.GetDataBags:output_type -> chef.automate.domain.infra_proxy.response.DataBags + 61, // 70: chef.automate.domain.infra_proxy.service.InfraProxyService.GetDataBagItem:output_type -> chef.automate.domain.infra_proxy.response.DataBag + 62, // 71: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateDataBag:output_type -> chef.automate.domain.infra_proxy.response.CreateDataBag + 63, // 72: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateDataBagItem:output_type -> chef.automate.domain.infra_proxy.response.CreateDataBagItem + 61, // 73: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteDataBag:output_type -> chef.automate.domain.infra_proxy.response.DataBag + 64, // 74: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateDataBagItem:output_type -> chef.automate.domain.infra_proxy.response.UpdateDataBagItem + 65, // 75: chef.automate.domain.infra_proxy.service.InfraProxyService.GetEnvironments:output_type -> chef.automate.domain.infra_proxy.response.Environments + 66, // 76: chef.automate.domain.infra_proxy.service.InfraProxyService.GetEnvironment:output_type -> chef.automate.domain.infra_proxy.response.Environment + 66, // 77: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateEnvironment:output_type -> chef.automate.domain.infra_proxy.response.Environment + 66, // 78: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateEnvironment:output_type -> chef.automate.domain.infra_proxy.response.Environment + 66, // 79: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteEnvironment:output_type -> chef.automate.domain.infra_proxy.response.Environment + 67, // 80: chef.automate.domain.infra_proxy.service.InfraProxyService.GetEnvironmentRecipes:output_type -> chef.automate.domain.infra_proxy.response.EnvironmentRecipesList + 68, // 81: chef.automate.domain.infra_proxy.service.InfraProxyService.GetNodes:output_type -> chef.automate.domain.infra_proxy.response.Nodes + 69, // 82: chef.automate.domain.infra_proxy.service.InfraProxyService.GetAffectedNodes:output_type -> chef.automate.domain.infra_proxy.response.AffectedNodes + 70, // 83: chef.automate.domain.infra_proxy.service.InfraProxyService.GetNode:output_type -> chef.automate.domain.infra_proxy.response.Node + 71, // 84: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteNode:output_type -> chef.automate.domain.infra_proxy.response.DeleteNode + 72, // 85: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateNode:output_type -> chef.automate.domain.infra_proxy.response.UpdateNode + 73, // 86: chef.automate.domain.infra_proxy.service.InfraProxyService.GetPolicyfiles:output_type -> chef.automate.domain.infra_proxy.response.Policyfiles + 74, // 87: chef.automate.domain.infra_proxy.service.InfraProxyService.GetPolicyfile:output_type -> chef.automate.domain.infra_proxy.response.Policyfile + 44, // [44:88] is the sub-list for method output_type + 0, // [0:44] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name @@ -651,6 +685,9 @@ type InfraProxyServiceClient interface { UpdateRole(ctx context.Context, in *request.UpdateRole, opts ...grpc.CallOption) (*response.Role, error) GetClients(ctx context.Context, in *request.Clients, opts ...grpc.CallOption) (*response.Clients, error) GetClient(ctx context.Context, in *request.Client, opts ...grpc.CallOption) (*response.Client, error) + CreateClient(ctx context.Context, in *request.CreateClient, opts ...grpc.CallOption) (*response.CreateClient, error) + DeleteClient(ctx context.Context, in *request.Client, opts ...grpc.CallOption) (*response.Client, error) + ResetClientKey(ctx context.Context, in *request.ClientKey, opts ...grpc.CallOption) (*response.ClientKey, error) GetDataBags(ctx context.Context, in *request.DataBags, opts ...grpc.CallOption) (*response.DataBags, error) GetDataBagItem(ctx context.Context, in *request.DataBag, opts ...grpc.CallOption) (*response.DataBag, error) CreateDataBag(ctx context.Context, in *request.CreateDataBag, opts ...grpc.CallOption) (*response.CreateDataBag, error) @@ -878,6 +915,33 @@ func (c *infraProxyServiceClient) GetClient(ctx context.Context, in *request.Cli return out, nil } +func (c *infraProxyServiceClient) CreateClient(ctx context.Context, in *request.CreateClient, opts ...grpc.CallOption) (*response.CreateClient, error) { + out := new(response.CreateClient) + err := c.cc.Invoke(ctx, "/chef.automate.domain.infra_proxy.service.InfraProxyService/CreateClient", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *infraProxyServiceClient) DeleteClient(ctx context.Context, in *request.Client, opts ...grpc.CallOption) (*response.Client, error) { + out := new(response.Client) + err := c.cc.Invoke(ctx, "/chef.automate.domain.infra_proxy.service.InfraProxyService/DeleteClient", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *infraProxyServiceClient) ResetClientKey(ctx context.Context, in *request.ClientKey, opts ...grpc.CallOption) (*response.ClientKey, error) { + out := new(response.ClientKey) + err := c.cc.Invoke(ctx, "/chef.automate.domain.infra_proxy.service.InfraProxyService/ResetClientKey", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *infraProxyServiceClient) GetDataBags(ctx context.Context, in *request.DataBags, opts ...grpc.CallOption) (*response.DataBags, error) { out := new(response.DataBags) err := c.cc.Invoke(ctx, "/chef.automate.domain.infra_proxy.service.InfraProxyService/GetDataBags", in, out, opts...) @@ -1073,6 +1137,9 @@ type InfraProxyServiceServer interface { UpdateRole(context.Context, *request.UpdateRole) (*response.Role, error) GetClients(context.Context, *request.Clients) (*response.Clients, error) GetClient(context.Context, *request.Client) (*response.Client, error) + CreateClient(context.Context, *request.CreateClient) (*response.CreateClient, error) + DeleteClient(context.Context, *request.Client) (*response.Client, error) + ResetClientKey(context.Context, *request.ClientKey) (*response.ClientKey, error) GetDataBags(context.Context, *request.DataBags) (*response.DataBags, error) GetDataBagItem(context.Context, *request.DataBag) (*response.DataBag, error) CreateDataBag(context.Context, *request.CreateDataBag) (*response.CreateDataBag, error) @@ -1164,6 +1231,15 @@ func (*UnimplementedInfraProxyServiceServer) GetClients(context.Context, *reques func (*UnimplementedInfraProxyServiceServer) GetClient(context.Context, *request.Client) (*response.Client, error) { return nil, status.Errorf(codes.Unimplemented, "method GetClient not implemented") } +func (*UnimplementedInfraProxyServiceServer) CreateClient(context.Context, *request.CreateClient) (*response.CreateClient, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateClient not implemented") +} +func (*UnimplementedInfraProxyServiceServer) DeleteClient(context.Context, *request.Client) (*response.Client, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteClient not implemented") +} +func (*UnimplementedInfraProxyServiceServer) ResetClientKey(context.Context, *request.ClientKey) (*response.ClientKey, error) { + return nil, status.Errorf(codes.Unimplemented, "method ResetClientKey not implemented") +} func (*UnimplementedInfraProxyServiceServer) GetDataBags(context.Context, *request.DataBags) (*response.DataBags, error) { return nil, status.Errorf(codes.Unimplemented, "method GetDataBags not implemented") } @@ -1622,6 +1698,60 @@ func _InfraProxyService_GetClient_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _InfraProxyService_CreateClient_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(request.CreateClient) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(InfraProxyServiceServer).CreateClient(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/chef.automate.domain.infra_proxy.service.InfraProxyService/CreateClient", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(InfraProxyServiceServer).CreateClient(ctx, req.(*request.CreateClient)) + } + return interceptor(ctx, in, info, handler) +} + +func _InfraProxyService_DeleteClient_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(request.Client) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(InfraProxyServiceServer).DeleteClient(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/chef.automate.domain.infra_proxy.service.InfraProxyService/DeleteClient", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(InfraProxyServiceServer).DeleteClient(ctx, req.(*request.Client)) + } + return interceptor(ctx, in, info, handler) +} + +func _InfraProxyService_ResetClientKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(request.ClientKey) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(InfraProxyServiceServer).ResetClientKey(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/chef.automate.domain.infra_proxy.service.InfraProxyService/ResetClientKey", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(InfraProxyServiceServer).ResetClientKey(ctx, req.(*request.ClientKey)) + } + return interceptor(ctx, in, info, handler) +} + func _InfraProxyService_GetDataBags_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(request.DataBags) if err := dec(in); err != nil { @@ -2056,6 +2186,18 @@ var _InfraProxyService_serviceDesc = grpc.ServiceDesc{ MethodName: "GetClient", Handler: _InfraProxyService_GetClient_Handler, }, + { + MethodName: "CreateClient", + Handler: _InfraProxyService_CreateClient_Handler, + }, + { + MethodName: "DeleteClient", + Handler: _InfraProxyService_DeleteClient_Handler, + }, + { + MethodName: "ResetClientKey", + Handler: _InfraProxyService_ResetClientKey_Handler, + }, { MethodName: "GetDataBags", Handler: _InfraProxyService_GetDataBags_Handler, diff --git a/api/interservice/infra_proxy/service/infra_proxy.proto b/api/interservice/infra_proxy/service/infra_proxy.proto index 50271743855..721dd521cf9 100644 --- a/api/interservice/infra_proxy/service/infra_proxy.proto +++ b/api/interservice/infra_proxy/service/infra_proxy.proto @@ -50,6 +50,9 @@ service InfraProxyService { rpc GetClients (chef.automate.domain.infra_proxy.request.Clients) returns (chef.automate.domain.infra_proxy.response.Clients) {}; rpc GetClient (chef.automate.domain.infra_proxy.request.Client) returns (chef.automate.domain.infra_proxy.response.Client) {}; + rpc CreateClient (chef.automate.domain.infra_proxy.request.CreateClient) returns (chef.automate.domain.infra_proxy.response.CreateClient) {}; + rpc DeleteClient (chef.automate.domain.infra_proxy.request.Client) returns (chef.automate.domain.infra_proxy.response.Client) {}; + rpc ResetClientKey (chef.automate.domain.infra_proxy.request.ClientKey) returns (chef.automate.domain.infra_proxy.response.ClientKey) {}; rpc GetDataBags (chef.automate.domain.infra_proxy.request.DataBags) returns (chef.automate.domain.infra_proxy.response.DataBags) {}; rpc GetDataBagItem (chef.automate.domain.infra_proxy.request.DataBag) returns (chef.automate.domain.infra_proxy.response.DataBag) {}; diff --git a/components/automate-gateway/api/infra_proxy.pb.swagger.go b/components/automate-gateway/api/infra_proxy.pb.swagger.go index 7ea00a0e7bb..f8b40ff52dc 100644 --- a/components/automate-gateway/api/infra_proxy.pb.swagger.go +++ b/components/automate-gateway/api/infra_proxy.pb.swagger.go @@ -490,6 +490,50 @@ func init() { "tags": [ "InfraProxy" ] + }, + "post": { + "operationId": "InfraProxy_CreateClient", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.response.CreateClient" + } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/grpc.gateway.runtime.Error" + } + } + }, + "parameters": [ + { + "name": "server_id", + "description": "Chef Infra Server ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "org_id", + "description": "Chef organization ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.request.CreateClient" + } + } + ], + "tags": [ + "InfraProxy" + ] } }, "/api/v0/infra/servers/{server_id}/orgs/{org_id}/clients/{name}": { @@ -535,6 +579,102 @@ func init() { "tags": [ "InfraProxy" ] + }, + "delete": { + "operationId": "InfraProxy_DeleteClient", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.response.Client" + } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/grpc.gateway.runtime.Error" + } + } + }, + "parameters": [ + { + "name": "server_id", + "description": "Chef Infra Server ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "org_id", + "description": "Chef organization ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "name", + "description": "Client name.", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "InfraProxy" + ] + } + }, + "/api/v0/infra/servers/{server_id}/orgs/{org_id}/clients/{name}/reset": { + "put": { + "operationId": "InfraProxy_ResetClientKey", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.response.ClientKey" + } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/grpc.gateway.runtime.Error" + } + } + }, + "parameters": [ + { + "name": "server_id", + "description": "Chef Infra Server ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "org_id", + "description": "Chef organization ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "name", + "description": "Client name.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.request.ClientKey" + } + } + ], + "tags": [ + "InfraProxy" + ] } }, "/api/v0/infra/servers/{server_id}/orgs/{org_id}/cookbooks": { @@ -1791,6 +1931,54 @@ func init() { } }, "definitions": { + "chef.automate.api.infra_proxy.request.ClientKey": { + "type": "object", + "properties": { + "org_id": { + "type": "string", + "description": "Chef organization ID." + }, + "server_id": { + "type": "string", + "description": "Chef Infra Server ID." + }, + "name": { + "type": "string", + "description": "Client name." + }, + "key": { + "type": "string", + "description": "Client key name." + } + } + }, + "chef.automate.api.infra_proxy.request.CreateClient": { + "type": "object", + "properties": { + "org_id": { + "type": "string", + "description": "Chef organization ID." + }, + "server_id": { + "type": "string", + "description": "Chef Infra Server ID." + }, + "name": { + "type": "string", + "description": "Client name." + }, + "validator": { + "type": "boolean", + "format": "boolean", + "description": "Boolean indicates client type is validator or not." + }, + "create_key": { + "type": "boolean", + "format": "boolean", + "description": "Boolean indicates whether it's required to create a key or not." + } + } + }, "chef.automate.api.infra_proxy.request.CreateDataBag": { "type": "object", "properties": { @@ -2246,6 +2434,48 @@ func init() { "chef_type": { "type": "string", "description": "Chef object type." + }, + "client_key": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.response.ClientAccessKey", + "description": "Client key detail." + } + } + }, + "chef.automate.api.infra_proxy.response.ClientAccessKey": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Client key name." + }, + "public_key": { + "type": "string", + "description": "Client public key." + }, + "expiration_date": { + "type": "string", + "description": "Client key expiration date string." + } + } + }, + "chef.automate.api.infra_proxy.response.ClientKey": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Client key name." + }, + "public_key": { + "type": "string", + "description": "Client public key." + }, + "expiration_date": { + "type": "string", + "description": "Client key expiration date string." + }, + "private_key": { + "type": "string", + "description": "Client private key." } } }, @@ -2512,6 +2742,19 @@ func init() { } } }, + "chef.automate.api.infra_proxy.response.CreateClient": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Client name." + }, + "client_key": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.response.ClientKey", + "description": "Client key detail." + } + } + }, "chef.automate.api.infra_proxy.response.CreateDataBag": { "type": "object", "properties": { diff --git a/components/automate-gateway/handler/infra_proxy/clients.go b/components/automate-gateway/handler/infra_proxy/clients.go index bd3053893c2..9b0751a97e4 100644 --- a/components/automate-gateway/handler/infra_proxy/clients.go +++ b/components/automate-gateway/handler/infra_proxy/clients.go @@ -44,6 +44,73 @@ func (a *InfraProxyServer) GetClient(ctx context.Context, r *gwreq.Client) (*gwr Validator: res.GetValidator(), JsonClass: res.GetJsonClass(), ChefType: res.GetChefType(), + ClientKey: &gwres.ClientAccessKey{ + Name: res.GetClientKey().GetName(), + ExpirationDate: res.GetClientKey().GetExpirationDate(), + PublicKey: res.GetClientKey().GetPublicKey(), + }, + }, nil +} + +// CreateClient creates an infra client +func (a *InfraProxyServer) CreateClient(ctx context.Context, r *gwreq.CreateClient) (*gwres.CreateClient, error) { + req := &infra_req.CreateClient{ + OrgId: r.OrgId, + ServerId: r.ServerId, + Name: r.Name, + Validator: r.Validator, + CreateKey: r.CreateKey, + } + res, err := a.client.CreateClient(ctx, req) + if err != nil { + return nil, err + } + + return &gwres.CreateClient{ + Name: res.GetName(), + ClientKey: &gwres.ClientKey{ + Name: res.GetClientKey().GetName(), + PublicKey: res.GetClientKey().GetPublicKey(), + ExpirationDate: res.GetClientKey().GetExpirationDate(), + PrivateKey: res.GetClientKey().GetPrivateKey(), + }, + }, nil +} + +// DeleteClient deletes an infra client +func (a *InfraProxyServer) DeleteClient(ctx context.Context, r *gwreq.Client) (*gwres.Client, error) { + req := &infra_req.Client{ + OrgId: r.OrgId, + ServerId: r.ServerId, + Name: r.Name, + } + res, err := a.client.DeleteClient(ctx, req) + if err != nil { + return nil, err + } + + return &gwres.Client{ + Name: res.GetName(), + }, nil +} + +// ResetClientKey resets an infra client key +// Deletes the associated key pair and generates new key pair again, and then attaches it to the client. +func (a *InfraProxyServer) ResetClientKey(ctx context.Context, r *gwreq.ClientKey) (*gwres.ClientKey, error) { + req := &infra_req.ClientKey{ + OrgId: r.OrgId, + ServerId: r.ServerId, + Name: r.Name, + Key: r.Key, + } + res, err := a.client.ResetClientKey(ctx, req) + if err != nil { + return nil, err + } + + return &gwres.ClientKey{ + Name: res.GetName(), + PrivateKey: res.GetPrivateKey(), }, nil } diff --git a/components/docs-chef-io/data/automate/api_chef_automate/infra_proxy/infra_proxy.swagger.json b/components/docs-chef-io/data/automate/api_chef_automate/infra_proxy/infra_proxy.swagger.json index 30e4fe8541c..e6f5728b793 100644 --- a/components/docs-chef-io/data/automate/api_chef_automate/infra_proxy/infra_proxy.swagger.json +++ b/components/docs-chef-io/data/automate/api_chef_automate/infra_proxy/infra_proxy.swagger.json @@ -487,6 +487,50 @@ "tags": [ "InfraProxy" ] + }, + "post": { + "operationId": "InfraProxy_CreateClient", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.response.CreateClient" + } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/grpc.gateway.runtime.Error" + } + } + }, + "parameters": [ + { + "name": "server_id", + "description": "Chef Infra Server ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "org_id", + "description": "Chef organization ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.request.CreateClient" + } + } + ], + "tags": [ + "InfraProxy" + ] } }, "/api/v0/infra/servers/{server_id}/orgs/{org_id}/clients/{name}": { @@ -532,6 +576,102 @@ "tags": [ "InfraProxy" ] + }, + "delete": { + "operationId": "InfraProxy_DeleteClient", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.response.Client" + } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/grpc.gateway.runtime.Error" + } + } + }, + "parameters": [ + { + "name": "server_id", + "description": "Chef Infra Server ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "org_id", + "description": "Chef organization ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "name", + "description": "Client name.", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "InfraProxy" + ] + } + }, + "/api/v0/infra/servers/{server_id}/orgs/{org_id}/clients/{name}/reset": { + "put": { + "operationId": "InfraProxy_ResetClientKey", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.response.ClientKey" + } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/grpc.gateway.runtime.Error" + } + } + }, + "parameters": [ + { + "name": "server_id", + "description": "Chef Infra Server ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "org_id", + "description": "Chef organization ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "name", + "description": "Client name.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.request.ClientKey" + } + } + ], + "tags": [ + "InfraProxy" + ] } }, "/api/v0/infra/servers/{server_id}/orgs/{org_id}/cookbooks": { @@ -1788,6 +1928,54 @@ } }, "definitions": { + "chef.automate.api.infra_proxy.request.ClientKey": { + "type": "object", + "properties": { + "org_id": { + "type": "string", + "description": "Chef organization ID." + }, + "server_id": { + "type": "string", + "description": "Chef Infra Server ID." + }, + "name": { + "type": "string", + "description": "Client name." + }, + "key": { + "type": "string", + "description": "Client key name." + } + } + }, + "chef.automate.api.infra_proxy.request.CreateClient": { + "type": "object", + "properties": { + "org_id": { + "type": "string", + "description": "Chef organization ID." + }, + "server_id": { + "type": "string", + "description": "Chef Infra Server ID." + }, + "name": { + "type": "string", + "description": "Client name." + }, + "validator": { + "type": "boolean", + "format": "boolean", + "description": "Boolean indicates client type is validator or not." + }, + "create_key": { + "type": "boolean", + "format": "boolean", + "description": "Boolean indicates whether it's required to create a key or not." + } + } + }, "chef.automate.api.infra_proxy.request.CreateDataBag": { "type": "object", "properties": { @@ -2243,6 +2431,48 @@ "chef_type": { "type": "string", "description": "Chef object type." + }, + "client_key": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.response.ClientAccessKey", + "description": "Client key detail." + } + } + }, + "chef.automate.api.infra_proxy.response.ClientAccessKey": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Client key name." + }, + "public_key": { + "type": "string", + "description": "Client public key." + }, + "expiration_date": { + "type": "string", + "description": "Client key expiration date string." + } + } + }, + "chef.automate.api.infra_proxy.response.ClientKey": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Client key name." + }, + "public_key": { + "type": "string", + "description": "Client public key." + }, + "expiration_date": { + "type": "string", + "description": "Client key expiration date string." + }, + "private_key": { + "type": "string", + "description": "Client private key." } } }, @@ -2509,6 +2739,19 @@ } } }, + "chef.automate.api.infra_proxy.response.CreateClient": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Client name." + }, + "client_key": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.response.ClientKey", + "description": "Client key detail." + } + } + }, "chef.automate.api.infra_proxy.response.CreateDataBag": { "type": "object", "properties": { diff --git a/components/infra-proxy-service/server/clients.go b/components/infra-proxy-service/server/clients.go index d4a7a872501..9b6a30ef7c2 100644 --- a/components/infra-proxy-service/server/clients.go +++ b/components/infra-proxy-service/server/clients.go @@ -2,18 +2,27 @@ package server import ( "context" + "fmt" "sort" chef "github.com/go-chef/chef" "github.com/chef/automate/api/interservice/infra_proxy/request" "github.com/chef/automate/api/interservice/infra_proxy/response" + "github.com/chef/automate/components/infra-proxy-service/validation" ) +// AccessKeyReq struct to add key. +type AccessKeyReq struct { + Name string `json:"name,omitempty"` + PublicKey string `json:"public_key,omitempty"` + ExpirationDate string `json:"expiration_date,omitempty"` + CreateKey bool `json:"create_key,omitempty"` +} + // GetClients get clients list func (s *Server) GetClients(ctx context.Context, req *request.Clients) (*response.Clients, error) { c, err := s.createClient(ctx, req.OrgId, req.ServerId) - if err != nil { return nil, err } @@ -28,7 +37,7 @@ func (s *Server) GetClients(ctx context.Context, req *request.Clients) (*respons }, nil } -// GetClient get client +// GetClient gets the client func (s *Server) GetClient(ctx context.Context, req *request.Client) (*response.Client, error) { c, err := s.createClient(ctx, req.OrgId, req.ServerId) if err != nil { @@ -40,6 +49,18 @@ func (s *Server) GetClient(ctx context.Context, req *request.Client) (*response. return nil, ParseAPIError(err) } + // Fetch associated default client key detail + // Ignore if any error while fetching this. + var clientKey response.ClientAccessKey + chefKey, err := c.client.Clients.GetKey(req.Name, "default") + if err == nil { + clientKey = response.ClientAccessKey{ + Name: chefKey.Name, + ExpirationDate: chefKey.ExpirationDate, + PublicKey: chefKey.PublicKey, + } + } + return &response.Client{ Name: ic.Name, ClientName: ic.ClientName, @@ -47,6 +68,137 @@ func (s *Server) GetClient(ctx context.Context, req *request.Client) (*response. Validator: ic.Validator, JsonClass: ic.JsonClass, ChefType: ic.ChefType, + ClientKey: &clientKey, + }, nil + +} + +// CreateClient creates the client +func (s *Server) CreateClient(ctx context.Context, req *request.CreateClient) (*response.CreateClient, error) { + err := validation.New(validation.Options{ + Target: "client", + Request: *req, + Rules: validation.Rules{ + "OrgId": []string{"required"}, + "ServerId": []string{"required"}, + "Name": []string{"required"}, + }, + }).Validate() + + if err != nil { + return nil, err + } + + c, err := s.createClient(ctx, req.OrgId, req.ServerId) + if err != nil { + return nil, err + } + + res, err := c.client.Clients.Create(chef.ApiNewClient{ + Name: req.Name, + Validator: req.Validator, + CreateKey: req.CreateKey, + }) + if err != nil { + return nil, ParseAPIError(err) + } + + return &response.CreateClient{ + Name: req.Name, + ClientKey: &response.ClientKey{ + Name: res.ChefKey.Name, + PublicKey: res.ChefKey.PublicKey, + ExpirationDate: res.ChefKey.ExpirationDate, + PrivateKey: res.ChefKey.PrivateKey, + }, + }, nil + +} + +// DeleteClient deletes the client +func (s *Server) DeleteClient(ctx context.Context, req *request.Client) (*response.Client, error) { + err := validation.New(validation.Options{ + Target: "client", + Request: *req, + RequiredDefault: true, + }).Validate() + + if err != nil { + return nil, err + } + + c, err := s.createClient(ctx, req.OrgId, req.ServerId) + if err != nil { + return nil, err + } + + err = c.client.Clients.Delete(req.Name) + if err != nil { + return nil, ParseAPIError(err) + } + + return &response.Client{ + Name: req.Name, + }, nil + +} + +// ResetClientKey resets the client key +// Deletes the associated key pair and generates new key pair again, and then attaches it to the client. +func (s *Server) ResetClientKey(ctx context.Context, req *request.ClientKey) (*response.ClientKey, error) { + err := validation.New(validation.Options{ + Target: "client", + Request: *req, + Rules: validation.Rules{ + "OrgId": []string{"required"}, + "ServerId": []string{"required"}, + "Name": []string{"required"}, + }, + }).Validate() + + if err != nil { + return nil, err + } + + c, err := s.createClient(ctx, req.OrgId, req.ServerId) + if err != nil { + return nil, err + } + + key := req.Key + + if key == "" { + key = "default" + } + + // Deletes the existing key + _, err = c.client.Clients.DeleteKey(req.Name, key) + chefError, _ := chef.ChefError(err) + if err != nil && chefError.StatusCode() != 404 { + return nil, ParseAPIError(err) + } + + // Add new key to existing client + body, err := chef.JSONReader(AccessKeyReq{ + Name: key, + ExpirationDate: "infinity", + CreateKey: true, + }) + + var chefKey chef.ChefKey + addReq, err := c.client.NewRequest("POST", fmt.Sprintf("clients/%s/keys", req.Name), body) + res, err := c.client.Do(addReq, &chefKey) + if res != nil { + defer res.Body.Close() + } + + if err != nil { + return nil, ParseAPIError(err) + } + + return &response.ClientKey{ + Name: key, + PrivateKey: chefKey.PrivateKey, }, nil }