diff --git a/internal/machine/api/pb/cluster.pb.go b/internal/machine/api/pb/cluster.pb.go index 0fa67aa1..ab42e2ca 100644 --- a/internal/machine/api/pb/cluster.pb.go +++ b/internal/machine/api/pb/cluster.pb.go @@ -78,6 +78,55 @@ func (MachineMember_MembershipState) EnumDescriptor() ([]byte, []int) { return file_internal_machine_api_pb_cluster_proto_rawDescGZIP(), []int{2, 0} } +type DNSRecord_RecordType int32 + +const ( + DNSRecord_UNSPECIFIED DNSRecord_RecordType = 0 + DNSRecord_A DNSRecord_RecordType = 1 + DNSRecord_AAAA DNSRecord_RecordType = 2 +) + +// Enum value maps for DNSRecord_RecordType. +var ( + DNSRecord_RecordType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "A", + 2: "AAAA", + } + DNSRecord_RecordType_value = map[string]int32{ + "UNSPECIFIED": 0, + "A": 1, + "AAAA": 2, + } +) + +func (x DNSRecord_RecordType) Enum() *DNSRecord_RecordType { + p := new(DNSRecord_RecordType) + *p = x + return p +} + +func (x DNSRecord_RecordType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DNSRecord_RecordType) Descriptor() protoreflect.EnumDescriptor { + return file_internal_machine_api_pb_cluster_proto_enumTypes[1].Descriptor() +} + +func (DNSRecord_RecordType) Type() protoreflect.EnumType { + return &file_internal_machine_api_pb_cluster_proto_enumTypes[1] +} + +func (x DNSRecord_RecordType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DNSRecord_RecordType.Descriptor instead. +func (DNSRecord_RecordType) EnumDescriptor() ([]byte, []int) { + return file_internal_machine_api_pb_cluster_proto_rawDescGZIP(), []int{6, 0} +} + type AddMachineRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -282,6 +331,163 @@ func (x *ListMachinesResponse) GetMachines() []*MachineMember { return nil } +type Domain struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *Domain) Reset() { + *x = Domain{} + if protoimpl.UnsafeEnabled { + mi := &file_internal_machine_api_pb_cluster_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Domain) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Domain) ProtoMessage() {} + +func (x *Domain) ProtoReflect() protoreflect.Message { + mi := &file_internal_machine_api_pb_cluster_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 Domain.ProtoReflect.Descriptor instead. +func (*Domain) Descriptor() ([]byte, []int) { + return file_internal_machine_api_pb_cluster_proto_rawDescGZIP(), []int{4} +} + +func (x *Domain) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type UpdateDomainRecordsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Records []*DNSRecord `protobuf:"bytes,1,rep,name=records,proto3" json:"records,omitempty"` +} + +func (x *UpdateDomainRecordsRequest) Reset() { + *x = UpdateDomainRecordsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_internal_machine_api_pb_cluster_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateDomainRecordsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateDomainRecordsRequest) ProtoMessage() {} + +func (x *UpdateDomainRecordsRequest) ProtoReflect() protoreflect.Message { + mi := &file_internal_machine_api_pb_cluster_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 UpdateDomainRecordsRequest.ProtoReflect.Descriptor instead. +func (*UpdateDomainRecordsRequest) Descriptor() ([]byte, []int) { + return file_internal_machine_api_pb_cluster_proto_rawDescGZIP(), []int{5} +} + +func (x *UpdateDomainRecordsRequest) GetRecords() []*DNSRecord { + if x != nil { + return x.Records + } + return nil +} + +type DNSRecord struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Type DNSRecord_RecordType `protobuf:"varint,2,opt,name=type,proto3,enum=api.DNSRecord_RecordType" json:"type,omitempty"` + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` +} + +func (x *DNSRecord) Reset() { + *x = DNSRecord{} + if protoimpl.UnsafeEnabled { + mi := &file_internal_machine_api_pb_cluster_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DNSRecord) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DNSRecord) ProtoMessage() {} + +func (x *DNSRecord) ProtoReflect() protoreflect.Message { + mi := &file_internal_machine_api_pb_cluster_proto_msgTypes[6] + 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 DNSRecord.ProtoReflect.Descriptor instead. +func (*DNSRecord) Descriptor() ([]byte, []int) { + return file_internal_machine_api_pb_cluster_proto_rawDescGZIP(), []int{6} +} + +func (x *DNSRecord) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DNSRecord) GetType() DNSRecord_RecordType { + if x != nil { + return x.Type + } + return DNSRecord_UNSPECIFIED +} + +func (x *DNSRecord) GetValues() []string { + if x != nil { + return x.Values + } + return nil +} + var File_internal_machine_api_pb_cluster_proto protoreflect.FileDescriptor var file_internal_machine_api_pb_cluster_proto_rawDesc = []byte{ @@ -317,20 +523,44 @@ var file_internal_machine_api_pb_cluster_proto_rawDesc = []byte{ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x08, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x08, - 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x73, 0x32, 0x8b, 0x01, 0x0a, 0x07, 0x43, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x4d, 0x61, 0x63, 0x68, 0x69, - 0x6e, 0x65, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x61, 0x63, 0x68, - 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x68, 0x69, - 0x6e, 0x65, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x19, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x37, 0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x73, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x6b, 0x69, 0x2f, - 0x75, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x2f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x70, 0x62, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x73, 0x22, 0x1c, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x46, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x4e, 0x53, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x96, + 0x01, 0x0a, 0x09, 0x44, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x2d, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x2e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x05, 0x0a, 0x01, 0x41, 0x10, 0x01, 0x12, 0x08, 0x0a, + 0x04, 0x41, 0x41, 0x41, 0x41, 0x10, 0x02, 0x32, 0x8d, 0x02, 0x0a, 0x07, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, + 0x65, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x41, 0x64, 0x64, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, + 0x65, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0b, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x4e, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x1f, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x37, 0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x73, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x6b, 0x69, + 0x2f, 0x75, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x2f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x70, 0x62, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -345,33 +575,43 @@ func file_internal_machine_api_pb_cluster_proto_rawDescGZIP() []byte { return file_internal_machine_api_pb_cluster_proto_rawDescData } -var file_internal_machine_api_pb_cluster_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_internal_machine_api_pb_cluster_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_internal_machine_api_pb_cluster_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_internal_machine_api_pb_cluster_proto_msgTypes = make([]protoimpl.MessageInfo, 7) var file_internal_machine_api_pb_cluster_proto_goTypes = []any{ (MachineMember_MembershipState)(0), // 0: api.MachineMember.MembershipState - (*AddMachineRequest)(nil), // 1: api.AddMachineRequest - (*AddMachineResponse)(nil), // 2: api.AddMachineResponse - (*MachineMember)(nil), // 3: api.MachineMember - (*ListMachinesResponse)(nil), // 4: api.ListMachinesResponse - (*NetworkConfig)(nil), // 5: api.NetworkConfig - (*MachineInfo)(nil), // 6: api.MachineInfo - (*emptypb.Empty)(nil), // 7: google.protobuf.Empty + (DNSRecord_RecordType)(0), // 1: api.DNSRecord.RecordType + (*AddMachineRequest)(nil), // 2: api.AddMachineRequest + (*AddMachineResponse)(nil), // 3: api.AddMachineResponse + (*MachineMember)(nil), // 4: api.MachineMember + (*ListMachinesResponse)(nil), // 5: api.ListMachinesResponse + (*Domain)(nil), // 6: api.Domain + (*UpdateDomainRecordsRequest)(nil), // 7: api.UpdateDomainRecordsRequest + (*DNSRecord)(nil), // 8: api.DNSRecord + (*NetworkConfig)(nil), // 9: api.NetworkConfig + (*MachineInfo)(nil), // 10: api.MachineInfo + (*emptypb.Empty)(nil), // 11: google.protobuf.Empty } var file_internal_machine_api_pb_cluster_proto_depIdxs = []int32{ - 5, // 0: api.AddMachineRequest.network:type_name -> api.NetworkConfig - 6, // 1: api.AddMachineResponse.machine:type_name -> api.MachineInfo - 6, // 2: api.MachineMember.machine:type_name -> api.MachineInfo - 0, // 3: api.MachineMember.state:type_name -> api.MachineMember.MembershipState - 3, // 4: api.ListMachinesResponse.machines:type_name -> api.MachineMember - 1, // 5: api.Cluster.AddMachine:input_type -> api.AddMachineRequest - 7, // 6: api.Cluster.ListMachines:input_type -> google.protobuf.Empty - 2, // 7: api.Cluster.AddMachine:output_type -> api.AddMachineResponse - 4, // 8: api.Cluster.ListMachines:output_type -> api.ListMachinesResponse - 7, // [7:9] is the sub-list for method output_type - 5, // [5:7] is the sub-list for method input_type - 5, // [5:5] is the sub-list for extension type_name - 5, // [5:5] is the sub-list for extension extendee - 0, // [0:5] is the sub-list for field type_name + 9, // 0: api.AddMachineRequest.network:type_name -> api.NetworkConfig + 10, // 1: api.AddMachineResponse.machine:type_name -> api.MachineInfo + 10, // 2: api.MachineMember.machine:type_name -> api.MachineInfo + 0, // 3: api.MachineMember.state:type_name -> api.MachineMember.MembershipState + 4, // 4: api.ListMachinesResponse.machines:type_name -> api.MachineMember + 8, // 5: api.UpdateDomainRecordsRequest.records:type_name -> api.DNSRecord + 1, // 6: api.DNSRecord.type:type_name -> api.DNSRecord.RecordType + 2, // 7: api.Cluster.AddMachine:input_type -> api.AddMachineRequest + 11, // 8: api.Cluster.ListMachines:input_type -> google.protobuf.Empty + 11, // 9: api.Cluster.GetDomain:input_type -> google.protobuf.Empty + 7, // 10: api.Cluster.UpdateDomainRecords:input_type -> api.UpdateDomainRecordsRequest + 3, // 11: api.Cluster.AddMachine:output_type -> api.AddMachineResponse + 5, // 12: api.Cluster.ListMachines:output_type -> api.ListMachinesResponse + 6, // 13: api.Cluster.GetDomain:output_type -> api.Domain + 11, // 14: api.Cluster.UpdateDomainRecords:output_type -> google.protobuf.Empty + 11, // [11:15] is the sub-list for method output_type + 7, // [7:11] is the sub-list for method input_type + 7, // [7:7] is the sub-list for extension type_name + 7, // [7:7] is the sub-list for extension extendee + 0, // [0:7] is the sub-list for field type_name } func init() { file_internal_machine_api_pb_cluster_proto_init() } @@ -429,14 +669,50 @@ func file_internal_machine_api_pb_cluster_proto_init() { return nil } } + file_internal_machine_api_pb_cluster_proto_msgTypes[4].Exporter = func(v any, i int) any { + switch v := v.(*Domain); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_internal_machine_api_pb_cluster_proto_msgTypes[5].Exporter = func(v any, i int) any { + switch v := v.(*UpdateDomainRecordsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_internal_machine_api_pb_cluster_proto_msgTypes[6].Exporter = func(v any, i int) any { + switch v := v.(*DNSRecord); 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{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_internal_machine_api_pb_cluster_proto_rawDesc, - NumEnums: 1, - NumMessages: 4, + NumEnums: 2, + NumMessages: 7, NumExtensions: 0, NumServices: 1, }, diff --git a/internal/machine/api/pb/cluster.proto b/internal/machine/api/pb/cluster.proto index ff84d7fc..5ffc27d2 100644 --- a/internal/machine/api/pb/cluster.proto +++ b/internal/machine/api/pb/cluster.proto @@ -10,6 +10,8 @@ import "internal/machine/api/pb/machine.proto"; service Cluster { rpc AddMachine(AddMachineRequest) returns (AddMachineResponse); rpc ListMachines(google.protobuf.Empty) returns (ListMachinesResponse); + rpc GetDomain(google.protobuf.Empty) returns (Domain); + rpc UpdateDomainRecords(UpdateDomainRecordsRequest) returns (google.protobuf.Empty); } message AddMachineRequest { @@ -41,3 +43,23 @@ message MachineMember { message ListMachinesResponse { repeated MachineMember machines = 1; } + +message Domain { + string name = 1; +} + +message UpdateDomainRecordsRequest { + repeated DNSRecord records = 1; +} + +message DNSRecord { + string name = 1; + + enum RecordType { + UNSPECIFIED = 0; + A = 1; + AAAA = 2; + } + RecordType type = 2; + repeated string values = 3; +} diff --git a/internal/machine/api/pb/cluster_grpc.pb.go b/internal/machine/api/pb/cluster_grpc.pb.go index 5fdcb683..fbcbeabb 100644 --- a/internal/machine/api/pb/cluster_grpc.pb.go +++ b/internal/machine/api/pb/cluster_grpc.pb.go @@ -20,8 +20,10 @@ import ( const _ = grpc.SupportPackageIsVersion9 const ( - Cluster_AddMachine_FullMethodName = "/api.Cluster/AddMachine" - Cluster_ListMachines_FullMethodName = "/api.Cluster/ListMachines" + Cluster_AddMachine_FullMethodName = "/api.Cluster/AddMachine" + Cluster_ListMachines_FullMethodName = "/api.Cluster/ListMachines" + Cluster_GetDomain_FullMethodName = "/api.Cluster/GetDomain" + Cluster_UpdateDomainRecords_FullMethodName = "/api.Cluster/UpdateDomainRecords" ) // ClusterClient is the client API for Cluster service. @@ -30,6 +32,8 @@ const ( type ClusterClient interface { AddMachine(ctx context.Context, in *AddMachineRequest, opts ...grpc.CallOption) (*AddMachineResponse, error) ListMachines(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*ListMachinesResponse, error) + GetDomain(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*Domain, error) + UpdateDomainRecords(ctx context.Context, in *UpdateDomainRecordsRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) } type clusterClient struct { @@ -60,12 +64,34 @@ func (c *clusterClient) ListMachines(ctx context.Context, in *emptypb.Empty, opt return out, nil } +func (c *clusterClient) GetDomain(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*Domain, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Domain) + err := c.cc.Invoke(ctx, Cluster_GetDomain_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *clusterClient) UpdateDomainRecords(ctx context.Context, in *UpdateDomainRecordsRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, Cluster_UpdateDomainRecords_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + // ClusterServer is the server API for Cluster service. // All implementations must embed UnimplementedClusterServer // for forward compatibility. type ClusterServer interface { AddMachine(context.Context, *AddMachineRequest) (*AddMachineResponse, error) ListMachines(context.Context, *emptypb.Empty) (*ListMachinesResponse, error) + GetDomain(context.Context, *emptypb.Empty) (*Domain, error) + UpdateDomainRecords(context.Context, *UpdateDomainRecordsRequest) (*emptypb.Empty, error) mustEmbedUnimplementedClusterServer() } @@ -82,6 +108,12 @@ func (UnimplementedClusterServer) AddMachine(context.Context, *AddMachineRequest func (UnimplementedClusterServer) ListMachines(context.Context, *emptypb.Empty) (*ListMachinesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListMachines not implemented") } +func (UnimplementedClusterServer) GetDomain(context.Context, *emptypb.Empty) (*Domain, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDomain not implemented") +} +func (UnimplementedClusterServer) UpdateDomainRecords(context.Context, *UpdateDomainRecordsRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateDomainRecords not implemented") +} func (UnimplementedClusterServer) mustEmbedUnimplementedClusterServer() {} func (UnimplementedClusterServer) testEmbeddedByValue() {} @@ -139,6 +171,42 @@ func _Cluster_ListMachines_Handler(srv interface{}, ctx context.Context, dec fun return interceptor(ctx, in, info, handler) } +func _Cluster_GetDomain_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(emptypb.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ClusterServer).GetDomain(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Cluster_GetDomain_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ClusterServer).GetDomain(ctx, req.(*emptypb.Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _Cluster_UpdateDomainRecords_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateDomainRecordsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ClusterServer).UpdateDomainRecords(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Cluster_UpdateDomainRecords_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ClusterServer).UpdateDomainRecords(ctx, req.(*UpdateDomainRecordsRequest)) + } + return interceptor(ctx, in, info, handler) +} + // Cluster_ServiceDesc is the grpc.ServiceDesc for Cluster service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -154,6 +222,14 @@ var Cluster_ServiceDesc = grpc.ServiceDesc{ MethodName: "ListMachines", Handler: _Cluster_ListMachines_Handler, }, + { + MethodName: "GetDomain", + Handler: _Cluster_GetDomain_Handler, + }, + { + MethodName: "UpdateDomainRecords", + Handler: _Cluster_UpdateDomainRecords_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "internal/machine/api/pb/cluster.proto",