diff --git a/doc/index.html b/doc/index.html index d9f91307..83ffef54 100644 --- a/doc/index.html +++ b/doc/index.html @@ -1589,15 +1589,15 @@

Table of Contents

  • - EMachineLiveliness + EMachineAllocationType
  • - EMachineProvisioningEventState + EMachineLiveliness
  • - EMachineRole + EMachineProvisioningEventState
  • @@ -14661,10 +14661,10 @@

    MachineAllocation

    - role - MachineRole - -

    Role defines if this is machine or a firewall

    + allocation_type + MachineAllocationType + optional +

    AllocationType of this machine

    @@ -14787,10 +14787,10 @@

    MachineAllocationQuery

    - role - MachineRole + allocation_type + MachineAllocationType optional -

    Role of this machine

    +

    AllocationType of this machine

    @@ -15333,6 +15333,27 @@

    MachineNic

    Identifier the unique identifier of this network interface

    + + vendor + string + +

    Vendor of this network card

    + + + + model + string + +

    Model of this network card

    + + + + speed + uint64 + +

    Speed in bits/second of this network card

    + + neighbors MachineNic @@ -15739,10 +15760,10 @@

    MachineServiceCreateReque - role - MachineRole - -

    Role defines if this is machine or a firewall

    + allocation_type + MachineAllocationType + optional +

    AllocationType of this machine

    @@ -16216,6 +16237,35 @@

    IPProtocol

    +

    MachineAllocationType

    +

    MachineAllocationType defines if this is a machine or a firewall

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameNumberDescription
    MACHINE_ALLOCATION_TYPE_UNSPECIFIED0

    MACHINE_ALLOCATION_TYPE_UNSPECIFIED is unspecified

    MACHINE_ALLOCATION_TYPE_MACHINE1

    MACHINE_ALLOCATION_TYPE_MACHINE is a machine

    MACHINE_ALLOCATION_TYPE_FIREWALL2

    MACHINE_ALLOCATION_TYPE_FIREWALL is a firewall

    +

    MachineLiveliness

    MachineLiveliness specifies the liveliness of a machine

    @@ -16280,35 +16330,6 @@

    MachineProvisioningEven

    -

    MachineRole

    -

    MachineRole defines if this is a machine or a firewall

    - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameNumberDescription
    MACHINE_ROLE_UNSPECIFIED0

    MACHINE_ROLE_UNSPECIFIED is unspecified

    MACHINE_ROLE_MACHINE1

    MACHINE_ROLE_MACHINE is a machine

    MACHINE_ROLE_FIREWALL2

    MACHINE_ROLE_FIREWALL is a firewall

    -

    MachineState

    MachineState defines if the machine was locked or reserved from a operator

    diff --git a/go/metalstack/api/v2/machine.pb.go b/go/metalstack/api/v2/machine.pb.go index 344873c9..cb9da59d 100644 --- a/go/metalstack/api/v2/machine.pb.go +++ b/go/metalstack/api/v2/machine.pb.go @@ -243,56 +243,56 @@ func (MachineLiveliness) EnumDescriptor() ([]byte, []int) { return file_metalstack_api_v2_machine_proto_rawDescGZIP(), []int{3} } -// MachineRole defines if this is a machine or a firewall -type MachineRole int32 +// MachineAllocationType defines if this is a machine or a firewall +type MachineAllocationType int32 const ( - // MACHINE_ROLE_UNSPECIFIED is unspecified - MachineRole_MACHINE_ROLE_UNSPECIFIED MachineRole = 0 - // MACHINE_ROLE_MACHINE is a machine - MachineRole_MACHINE_ROLE_MACHINE MachineRole = 1 - // MACHINE_ROLE_FIREWALL is a firewall - MachineRole_MACHINE_ROLE_FIREWALL MachineRole = 2 + // MACHINE_ALLOCATION_TYPE_UNSPECIFIED is unspecified + MachineAllocationType_MACHINE_ALLOCATION_TYPE_UNSPECIFIED MachineAllocationType = 0 + // MACHINE_ALLOCATION_TYPE_MACHINE is a machine + MachineAllocationType_MACHINE_ALLOCATION_TYPE_MACHINE MachineAllocationType = 1 + // MACHINE_ALLOCATION_TYPE_FIREWALL is a firewall + MachineAllocationType_MACHINE_ALLOCATION_TYPE_FIREWALL MachineAllocationType = 2 ) -// Enum value maps for MachineRole. +// Enum value maps for MachineAllocationType. var ( - MachineRole_name = map[int32]string{ - 0: "MACHINE_ROLE_UNSPECIFIED", - 1: "MACHINE_ROLE_MACHINE", - 2: "MACHINE_ROLE_FIREWALL", + MachineAllocationType_name = map[int32]string{ + 0: "MACHINE_ALLOCATION_TYPE_UNSPECIFIED", + 1: "MACHINE_ALLOCATION_TYPE_MACHINE", + 2: "MACHINE_ALLOCATION_TYPE_FIREWALL", } - MachineRole_value = map[string]int32{ - "MACHINE_ROLE_UNSPECIFIED": 0, - "MACHINE_ROLE_MACHINE": 1, - "MACHINE_ROLE_FIREWALL": 2, + MachineAllocationType_value = map[string]int32{ + "MACHINE_ALLOCATION_TYPE_UNSPECIFIED": 0, + "MACHINE_ALLOCATION_TYPE_MACHINE": 1, + "MACHINE_ALLOCATION_TYPE_FIREWALL": 2, } ) -func (x MachineRole) Enum() *MachineRole { - p := new(MachineRole) +func (x MachineAllocationType) Enum() *MachineAllocationType { + p := new(MachineAllocationType) *p = x return p } -func (x MachineRole) String() string { +func (x MachineAllocationType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (MachineRole) Descriptor() protoreflect.EnumDescriptor { +func (MachineAllocationType) Descriptor() protoreflect.EnumDescriptor { return file_metalstack_api_v2_machine_proto_enumTypes[4].Descriptor() } -func (MachineRole) Type() protoreflect.EnumType { +func (MachineAllocationType) Type() protoreflect.EnumType { return &file_metalstack_api_v2_machine_proto_enumTypes[4] } -func (x MachineRole) Number() protoreflect.EnumNumber { +func (x MachineAllocationType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } -// Deprecated: Use MachineRole.Descriptor instead. -func (MachineRole) EnumDescriptor() ([]byte, []int) { +// Deprecated: Use MachineAllocationType.Descriptor instead. +func (MachineAllocationType) EnumDescriptor() ([]byte, []int) { return file_metalstack_api_v2_machine_proto_rawDescGZIP(), []int{4} } @@ -439,8 +439,8 @@ type MachineServiceCreateRequest struct { DnsServer []*DNSServer `protobuf:"bytes,16,rep,name=dns_server,json=dnsServer,proto3" json:"dns_server,omitempty"` // NTPServer the ntp servers used for the machine NtpServer []*NTPServer `protobuf:"bytes,17,rep,name=ntp_server,json=ntpServer,proto3" json:"ntp_server,omitempty"` - // Role defines if this is machine or a firewall - Role MachineRole `protobuf:"varint,18,opt,name=role,proto3,enum=metalstack.api.v2.MachineRole" json:"role,omitempty"` + // AllocationType of this machine + AllocationType *MachineAllocationType `protobuf:"varint,18,opt,name=allocation_type,json=allocationType,proto3,enum=metalstack.api.v2.MachineAllocationType,oneof" json:"allocation_type,omitempty"` // FirewallRules to be applied if this is a firewall FirewallRules *FirewallRules `protobuf:"bytes,19,opt,name=firewall_rules,json=firewallRules,proto3" json:"firewall_rules,omitempty"` unknownFields protoimpl.UnknownFields @@ -596,11 +596,11 @@ func (x *MachineServiceCreateRequest) GetNtpServer() []*NTPServer { return nil } -func (x *MachineServiceCreateRequest) GetRole() MachineRole { - if x != nil { - return x.Role +func (x *MachineServiceCreateRequest) GetAllocationType() MachineAllocationType { + if x != nil && x.AllocationType != nil { + return *x.AllocationType } - return MachineRole_MACHINE_ROLE_UNSPECIFIED + return MachineAllocationType_MACHINE_ALLOCATION_TYPE_UNSPECIFIED } func (x *MachineServiceCreateRequest) GetFirewallRules() *FirewallRules { @@ -1278,8 +1278,8 @@ type MachineAllocation struct { // Userdata contains instructions required to bootstrap the machine. // AWS limits the max userdata size to 16k, lets allow twice as much Userdata string `protobuf:"bytes,12,opt,name=userdata,proto3" json:"userdata,omitempty"` - // Role defines if this is machine or a firewall - Role MachineRole `protobuf:"varint,13,opt,name=role,proto3,enum=metalstack.api.v2.MachineRole" json:"role,omitempty"` + // AllocationType of this machine + AllocationType *MachineAllocationType `protobuf:"varint,13,opt,name=allocation_type,json=allocationType,proto3,enum=metalstack.api.v2.MachineAllocationType,oneof" json:"allocation_type,omitempty"` // FirewallRules to be applied if this is a firewall FirewallRules *FirewallRules `protobuf:"bytes,14,opt,name=firewall_rules,json=firewallRules,proto3" json:"firewall_rules,omitempty"` // DNSServers for this machine @@ -1406,11 +1406,11 @@ func (x *MachineAllocation) GetUserdata() string { return "" } -func (x *MachineAllocation) GetRole() MachineRole { - if x != nil { - return x.Role +func (x *MachineAllocation) GetAllocationType() MachineAllocationType { + if x != nil && x.AllocationType != nil { + return *x.AllocationType } - return MachineRole_MACHINE_ROLE_UNSPECIFIED + return MachineAllocationType_MACHINE_ALLOCATION_TYPE_UNSPECIFIED } func (x *MachineAllocation) GetFirewallRules() *FirewallRules { @@ -2035,8 +2035,14 @@ type MachineNic struct { Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // Identifier the unique identifier of this network interface Identifier string `protobuf:"bytes,3,opt,name=identifier,proto3" json:"identifier,omitempty"` + // Vendor of this network card + Vendor string `protobuf:"bytes,4,opt,name=vendor,proto3" json:"vendor,omitempty"` + // Model of this network card + Model string `protobuf:"bytes,5,opt,name=model,proto3" json:"model,omitempty"` + // Speed in bits/second of this network card + Speed uint64 `protobuf:"varint,6,opt,name=speed,proto3" json:"speed,omitempty"` // Neighbors the neighbors visible to this network interface - Neighbors []*MachineNic `protobuf:"bytes,4,rep,name=neighbors,proto3" json:"neighbors,omitempty"` + Neighbors []*MachineNic `protobuf:"bytes,7,rep,name=neighbors,proto3" json:"neighbors,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -2092,6 +2098,27 @@ func (x *MachineNic) GetIdentifier() string { return "" } +func (x *MachineNic) GetVendor() string { + if x != nil { + return x.Vendor + } + return "" +} + +func (x *MachineNic) GetModel() string { + if x != nil { + return x.Model + } + return "" +} + +func (x *MachineNic) GetSpeed() uint64 { + if x != nil { + return x.Speed + } + return 0 +} + func (x *MachineNic) GetNeighbors() []*MachineNic { if x != nil { return x.Neighbors @@ -2652,10 +2679,10 @@ type MachineAllocationQuery struct { FilesystemLayout *string `protobuf:"bytes,5,opt,name=filesystem_layout,json=filesystemLayout,proto3,oneof" json:"filesystem_layout,omitempty"` // Hostname of the machine to get Hostname *string `protobuf:"bytes,6,opt,name=hostname,proto3,oneof" json:"hostname,omitempty"` - // Role of this machine - Role *MachineRole `protobuf:"varint,7,opt,name=role,proto3,enum=metalstack.api.v2.MachineRole,oneof" json:"role,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + // AllocationType of this machine + AllocationType *MachineAllocationType `protobuf:"varint,7,opt,name=allocation_type,json=allocationType,proto3,enum=metalstack.api.v2.MachineAllocationType,oneof" json:"allocation_type,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *MachineAllocationQuery) Reset() { @@ -2730,11 +2757,11 @@ func (x *MachineAllocationQuery) GetHostname() string { return "" } -func (x *MachineAllocationQuery) GetRole() MachineRole { - if x != nil && x.Role != nil { - return *x.Role +func (x *MachineAllocationQuery) GetAllocationType() MachineAllocationType { + if x != nil && x.AllocationType != nil { + return *x.AllocationType } - return MachineRole_MACHINE_ROLE_UNSPECIFIED + return MachineAllocationType_MACHINE_ALLOCATION_TYPE_UNSPECIFIED } // MachineNetworkQuery network specific machine queries @@ -3220,7 +3247,7 @@ const file_metalstack_api_v2_machine_proto_rawDesc = "" + "\x04uuid\x18\x01 \x01(\tB\b\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12\"\n" + "\aproject\x18\x02 \x01(\tB\b\xbaH\x05r\x03\xb0\x01\x01R\aproject\"Q\n" + "\x19MachineServiceGetResponse\x124\n" + - "\amachine\x18\x01 \x01(\v2\x1a.metalstack.api.v2.MachineR\amachine\"\x92\b\n" + + "\amachine\x18\x01 \x01(\v2\x1a.metalstack.api.v2.MachineR\amachine\"\xca\b\n" + "\x1bMachineServiceCreateRequest\x12\"\n" + "\aproject\x18\x01 \x01(\tB\b\xbaH\x05r\x03\xb0\x01\x01R\aproject\x12!\n" + "\x04uuid\x18\x02 \x01(\tB\b\xbaH\x05r\x03\xb0\x01\x01H\x00R\x04uuid\x88\x01\x01\x12\x1c\n" + @@ -3243,13 +3270,14 @@ const file_metalstack_api_v2_machine_proto_rawDesc = "" + "dns_server\x18\x10 \x03(\v2\x1c.metalstack.api.v2.DNSServerB\b\xbaH\x05\x92\x01\x02\x10\x03R\tdnsServer\x12E\n" + "\n" + "ntp_server\x18\x11 \x03(\v2\x1c.metalstack.api.v2.NTPServerB\b\xbaH\x05\x92\x01\x02\x10\n" + - "R\tntpServer\x12<\n" + - "\x04role\x18\x12 \x01(\x0e2\x1e.metalstack.api.v2.MachineRoleB\b\xbaH\x05\x82\x01\x02\x10\x01R\x04role\x12G\n" + + "R\tntpServer\x12`\n" + + "\x0fallocation_type\x18\x12 \x01(\x0e2(.metalstack.api.v2.MachineAllocationTypeB\b\xbaH\x05\x82\x01\x02\x10\x01H\x04R\x0eallocationType\x88\x01\x01\x12G\n" + "\x0efirewall_rules\x18\x13 \x01(\v2 .metalstack.api.v2.FirewallRulesR\rfirewallRulesB\a\n" + "\x05_uuidB\v\n" + "\t_hostnameB\x14\n" + "\x12_filesystem_layoutB\v\n" + - "\t_userdata\"T\n" + + "\t_userdataB\x12\n" + + "\x10_allocation_type\"T\n" + "\x1cMachineServiceCreateResponse\x124\n" + "\amachine\x18\x01 \x01(\v2\x1a.metalstack.api.v2.MachineR\amachine\"\xa4\x02\n" + "\x1bMachineServiceUpdateRequest\x12\x1c\n" + @@ -3296,7 +3324,7 @@ const file_metalstack_api_v2_machine_proto_rawDesc = "" + "\x10MachineCondition\x12?\n" + "\x05state\x18\x01 \x01(\x0e2\x1f.metalstack.api.v2.MachineStateB\b\xbaH\x05\x82\x01\x02\x10\x01R\x05state\x12*\n" + "\vdescription\x18\x02 \x01(\tB\b\xbaH\x05r\x03\x18\x80\x02R\vdescription\x12 \n" + - "\x06issuer\x18\x03 \x01(\tB\b\xbaH\x05r\x03\x18\x80\x02R\x06issuer\"\x83\a\n" + + "\x06issuer\x18\x03 \x01(\tB\b\xbaH\x05r\x03\x18\x80\x02R\x06issuer\"\xbb\a\n" + "\x11MachineAllocation\x12\x1c\n" + "\x04uuid\x18\x01 \x01(\tB\b\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12+\n" + "\x04meta\x18\x02 \x01(\v2\x17.metalstack.api.v2.MetaR\x04meta\x12\x1c\n" + @@ -3311,15 +3339,16 @@ const file_metalstack_api_v2_machine_proto_rawDesc = "" + "\bhostname\x18\n" + " \x01(\tB\a\xbaH\x04r\x02h\x01R\bhostname\x129\n" + "\x0fssh_public_keys\x18\v \x03(\tB\x11\xbaH\x0e\x92\x01\v\x102\"\ar\x05\x10\x01\x18\x80@R\rsshPublicKeys\x12%\n" + - "\buserdata\x18\f \x01(\tB\t\xbaH\x06r\x04\x18\x80\x80\x02R\buserdata\x12<\n" + - "\x04role\x18\r \x01(\x0e2\x1e.metalstack.api.v2.MachineRoleB\b\xbaH\x05\x82\x01\x02\x10\x01R\x04role\x12G\n" + + "\buserdata\x18\f \x01(\tB\t\xbaH\x06r\x04\x18\x80\x80\x02R\buserdata\x12`\n" + + "\x0fallocation_type\x18\r \x01(\x0e2(.metalstack.api.v2.MachineAllocationTypeB\b\xbaH\x05\x82\x01\x02\x10\x01H\x00R\x0eallocationType\x88\x01\x01\x12G\n" + "\x0efirewall_rules\x18\x0e \x01(\v2 .metalstack.api.v2.FirewallRulesR\rfirewallRules\x12E\n" + "\n" + "dns_server\x18\x0f \x03(\v2\x1c.metalstack.api.v2.DNSServerB\b\xbaH\x05\x92\x01\x02\x10\x03R\tdnsServer\x12E\n" + "\n" + "ntp_server\x18\x10 \x03(\v2\x1c.metalstack.api.v2.NTPServerB\b\xbaH\x05\x92\x01\x02\x10\n" + "R\tntpServer\x12/\n" + - "\x03vpn\x18\x11 \x01(\v2\x1d.metalstack.api.v2.MachineVPNR\x03vpn\"}\n" + + "\x03vpn\x18\x11 \x01(\v2\x1d.metalstack.api.v2.MachineVPNR\x03vpnB\x12\n" + + "\x10_allocation_type\"}\n" + "\x18MachineAllocationNetwork\x12\x18\n" + "\anetwork\x18\x01 \x01(\tR\anetwork\x120\n" + "\x12no_auto_acquire_ip\x18\x02 \x01(\bH\x00R\x0fnoAutoAcquireIp\x88\x01\x01B\x15\n" + @@ -3367,7 +3396,7 @@ const file_metalstack_api_v2_machine_proto_rawDesc = "" + "\athreads\x18\x04 \x01(\rR\athreads\"L\n" + "\bMetalGPU\x12 \n" + "\x06vendor\x18\x01 \x01(\tB\b\xbaH\x05r\x03\x18\x80\x02R\x06vendor\x12\x1e\n" + - "\x05model\x18\x02 \x01(\tB\b\xbaH\x05r\x03\x18\x80\x02R\x05model\"\xd6\x01\n" + + "\x05model\x18\x02 \x01(\tB\b\xbaH\x05r\x03\x18\x80\x02R\x05model\"\xae\x02\n" + "\n" + "MachineNic\x12A\n" + "\x03mac\x18\x01 \x01(\tB/\xbaH,r*2(^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$R\x03mac\x12\x1e\n" + @@ -3375,8 +3404,11 @@ const file_metalstack_api_v2_machine_proto_rawDesc = "" + "\xbaH\ar\x05\x10\x02\x18\x80\x01R\x04name\x12(\n" + "\n" + "identifier\x18\x03 \x01(\tB\b\xbaH\x05r\x03\x18\x80\x01R\n" + - "identifier\x12;\n" + - "\tneighbors\x18\x04 \x03(\v2\x1d.metalstack.api.v2.MachineNicR\tneighbors\"F\n" + + "identifier\x12 \n" + + "\x06vendor\x18\x04 \x01(\tB\b\xbaH\x05r\x03\x18\x80\x01R\x06vendor\x12\x1e\n" + + "\x05model\x18\x05 \x01(\tB\b\xbaH\x05r\x03\x18\x80\x01R\x05model\x12\x14\n" + + "\x05speed\x18\x06 \x01(\x04R\x05speed\x12;\n" + + "\tneighbors\x18\a \x03(\v2\x1d.metalstack.api.v2.MachineNicR\tneighbors\"F\n" + "\x12MachineBlockDevice\x12\x1c\n" + "\x04name\x18\x01 \x01(\tB\b\xbaH\x05r\x03\x18\x80\x01R\x04name\x12\x12\n" + "\x04size\x18\x02 \x01(\x04R\x04size\"l\n" + @@ -3439,7 +3471,7 @@ const file_metalstack_api_v2_machine_proto_rawDesc = "" + "\x05_ipmiB\x06\n" + "\x04_fruB\v\n" + "\t_hardwareB\b\n" + - "\x06_state\"\xb2\x03\n" + + "\x06_state\"\xdc\x03\n" + "\x16MachineAllocationQuery\x12!\n" + "\x04uuid\x18\x01 \x01(\tB\b\xbaH\x05r\x03\xb0\x01\x01H\x00R\x04uuid\x88\x01\x01\x12#\n" + "\x04name\x18\x02 \x01(\tB\n" + @@ -3450,16 +3482,16 @@ const file_metalstack_api_v2_machine_proto_rawDesc = "" + "\x11filesystem_layout\x18\x05 \x01(\tB\n" + "\xbaH\ar\x05\x10\x02\x18\x80\x01H\x04R\x10filesystemLayout\x88\x01\x01\x12+\n" + "\bhostname\x18\x06 \x01(\tB\n" + - "\xbaH\ar\x05\x10\x02\x18\x80\x01H\x05R\bhostname\x88\x01\x01\x12A\n" + - "\x04role\x18\a \x01(\x0e2\x1e.metalstack.api.v2.MachineRoleB\b\xbaH\x05\x82\x01\x02\x10\x01H\x06R\x04role\x88\x01\x01B\a\n" + + "\xbaH\ar\x05\x10\x02\x18\x80\x01H\x05R\bhostname\x88\x01\x01\x12`\n" + + "\x0fallocation_type\x18\a \x01(\x0e2(.metalstack.api.v2.MachineAllocationTypeB\b\xbaH\x05\x82\x01\x02\x10\x01H\x06R\x0eallocationType\x88\x01\x01B\a\n" + "\x05_uuidB\a\n" + "\x05_nameB\n" + "\n" + "\b_projectB\b\n" + "\x06_imageB\x14\n" + "\x12_filesystem_layoutB\v\n" + - "\t_hostnameB\a\n" + - "\x05_role\"\x9b\x03\n" + + "\t_hostnameB\x12\n" + + "\x10_allocation_type\"\x9b\x03\n" + "\x13MachineNetworkQuery\x12\x1a\n" + "\bnetworks\x18\x01 \x03(\tR\bnetworks\x12b\n" + "\bprefixes\x18\x02 \x03(\tBF\xbaHC\x92\x01@\">\xba\x01;\n" + @@ -3534,11 +3566,11 @@ const file_metalstack_api_v2_machine_proto_rawDesc = "" + "\x1eMACHINE_LIVELINESS_UNSPECIFIED\x10\x00\x1a\x04\x82\xb2\x19\x00\x12'\n" + "\x18MACHINE_LIVELINESS_ALIVE\x10\x01\x1a\t\x82\xb2\x19\x05alive\x12%\n" + "\x17MACHINE_LIVELINESS_DEAD\x10\x02\x1a\b\x82\xb2\x19\x04dead\x12+\n" + - "\x1aMACHINE_LIVELINESS_UNKNOWN\x10\x03\x1a\v\x82\xb2\x19\aunknown*\x81\x01\n" + - "\vMachineRole\x12\"\n" + - "\x18MACHINE_ROLE_UNSPECIFIED\x10\x00\x1a\x04\x82\xb2\x19\x00\x12%\n" + - "\x14MACHINE_ROLE_MACHINE\x10\x01\x1a\v\x82\xb2\x19\amachine\x12'\n" + - "\x15MACHINE_ROLE_FIREWALL\x10\x02\x1a\f\x82\xb2\x19\bfirewall2\xca\x04\n" + + "\x1aMACHINE_LIVELINESS_UNKNOWN\x10\x03\x1a\v\x82\xb2\x19\aunknown*\xac\x01\n" + + "\x15MachineAllocationType\x12-\n" + + "#MACHINE_ALLOCATION_TYPE_UNSPECIFIED\x10\x00\x1a\x04\x82\xb2\x19\x00\x120\n" + + "\x1fMACHINE_ALLOCATION_TYPE_MACHINE\x10\x01\x1a\v\x82\xb2\x19\amachine\x122\n" + + " MACHINE_ALLOCATION_TYPE_FIREWALL\x10\x02\x1a\f\x82\xb2\x19\bfirewall2\xca\x04\n" + "\x0eMachineService\x12m\n" + "\x03Get\x12+.metalstack.api.v2.MachineServiceGetRequest\x1a,.metalstack.api.v2.MachineServiceGetResponse\"\v\xca\xf3\x18\x03\x01\x02\x03\xe0\xf3\x18\x02\x12q\n" + "\x06Create\x12..metalstack.api.v2.MachineServiceCreateRequest\x1a/.metalstack.api.v2.MachineServiceCreateResponse\"\x06\xca\xf3\x18\x02\x01\x02\x12q\n" + @@ -3566,7 +3598,7 @@ var file_metalstack_api_v2_machine_proto_goTypes = []any{ (MachineState)(0), // 1: metalstack.api.v2.MachineState (MachineProvisioningEventState)(0), // 2: metalstack.api.v2.MachineProvisioningEventState (MachineLiveliness)(0), // 3: metalstack.api.v2.MachineLiveliness - (MachineRole)(0), // 4: metalstack.api.v2.MachineRole + (MachineAllocationType)(0), // 4: metalstack.api.v2.MachineAllocationType (*MachineServiceGetRequest)(nil), // 5: metalstack.api.v2.MachineServiceGetRequest (*MachineServiceGetResponse)(nil), // 6: metalstack.api.v2.MachineServiceGetResponse (*MachineServiceCreateRequest)(nil), // 7: metalstack.api.v2.MachineServiceCreateRequest @@ -3623,7 +3655,7 @@ var file_metalstack_api_v2_machine_proto_depIdxs = []int32{ 19, // 2: metalstack.api.v2.MachineServiceCreateRequest.networks:type_name -> metalstack.api.v2.MachineAllocationNetwork 43, // 3: metalstack.api.v2.MachineServiceCreateRequest.dns_server:type_name -> metalstack.api.v2.DNSServer 44, // 4: metalstack.api.v2.MachineServiceCreateRequest.ntp_server:type_name -> metalstack.api.v2.NTPServer - 4, // 5: metalstack.api.v2.MachineServiceCreateRequest.role:type_name -> metalstack.api.v2.MachineRole + 4, // 5: metalstack.api.v2.MachineServiceCreateRequest.allocation_type:type_name -> metalstack.api.v2.MachineAllocationType 20, // 6: metalstack.api.v2.MachineServiceCreateRequest.firewall_rules:type_name -> metalstack.api.v2.FirewallRules 15, // 7: metalstack.api.v2.MachineServiceCreateResponse.machine:type_name -> metalstack.api.v2.Machine 45, // 8: metalstack.api.v2.MachineServiceUpdateRequest.labels:type_name -> metalstack.api.v2.UpdateLabels @@ -3647,7 +3679,7 @@ var file_metalstack_api_v2_machine_proto_depIdxs = []int32{ 49, // 26: metalstack.api.v2.MachineAllocation.image:type_name -> metalstack.api.v2.Image 50, // 27: metalstack.api.v2.MachineAllocation.filesystem_layout:type_name -> metalstack.api.v2.FilesystemLayout 23, // 28: metalstack.api.v2.MachineAllocation.networks:type_name -> metalstack.api.v2.MachineNetwork - 4, // 29: metalstack.api.v2.MachineAllocation.role:type_name -> metalstack.api.v2.MachineRole + 4, // 29: metalstack.api.v2.MachineAllocation.allocation_type:type_name -> metalstack.api.v2.MachineAllocationType 20, // 30: metalstack.api.v2.MachineAllocation.firewall_rules:type_name -> metalstack.api.v2.FirewallRules 43, // 31: metalstack.api.v2.MachineAllocation.dns_server:type_name -> metalstack.api.v2.DNSServer 44, // 32: metalstack.api.v2.MachineAllocation.ntp_server:type_name -> metalstack.api.v2.NTPServer @@ -3677,7 +3709,7 @@ var file_metalstack_api_v2_machine_proto_depIdxs = []int32{ 40, // 56: metalstack.api.v2.MachineQuery.fru:type_name -> metalstack.api.v2.MachineFRUQuery 41, // 57: metalstack.api.v2.MachineQuery.hardware:type_name -> metalstack.api.v2.MachineHardwareQuery 1, // 58: metalstack.api.v2.MachineQuery.state:type_name -> metalstack.api.v2.MachineState - 4, // 59: metalstack.api.v2.MachineAllocationQuery.role:type_name -> metalstack.api.v2.MachineRole + 4, // 59: metalstack.api.v2.MachineAllocationQuery.allocation_type:type_name -> metalstack.api.v2.MachineAllocationType 5, // 60: metalstack.api.v2.MachineService.Get:input_type -> metalstack.api.v2.MachineServiceGetRequest 7, // 61: metalstack.api.v2.MachineService.Create:input_type -> metalstack.api.v2.MachineServiceCreateRequest 9, // 62: metalstack.api.v2.MachineService.Update:input_type -> metalstack.api.v2.MachineServiceUpdateRequest @@ -3708,6 +3740,7 @@ func file_metalstack_api_v2_machine_proto_init() { file_metalstack_api_v2_size_proto_init() file_metalstack_api_v2_machine_proto_msgTypes[2].OneofWrappers = []any{} file_metalstack_api_v2_machine_proto_msgTypes[4].OneofWrappers = []any{} + file_metalstack_api_v2_machine_proto_msgTypes[13].OneofWrappers = []any{} file_metalstack_api_v2_machine_proto_msgTypes[14].OneofWrappers = []any{} file_metalstack_api_v2_machine_proto_msgTypes[29].OneofWrappers = []any{} file_metalstack_api_v2_machine_proto_msgTypes[30].OneofWrappers = []any{} diff --git a/proto/metalstack/api/v2/machine.proto b/proto/metalstack/api/v2/machine.proto index af86e255..e7021157 100644 --- a/proto/metalstack/api/v2/machine.proto +++ b/proto/metalstack/api/v2/machine.proto @@ -124,8 +124,8 @@ message MachineServiceCreateRequest { repeated DNSServer dns_server = 16 [(buf.validate.field).repeated.max_items = 3]; // NTPServer the ntp servers used for the machine repeated NTPServer ntp_server = 17 [(buf.validate.field).repeated.max_items = 10]; - // Role defines if this is machine or a firewall - MachineRole role = 18 [(buf.validate.field).enum.defined_only = true]; + // AllocationType of this machine + optional MachineAllocationType allocation_type = 18 [(buf.validate.field).enum.defined_only = true]; // FirewallRules to be applied if this is a firewall FirewallRules firewall_rules = 19; } @@ -289,8 +289,8 @@ message MachineAllocation { // Userdata contains instructions required to bootstrap the machine. // AWS limits the max userdata size to 16k, lets allow twice as much string userdata = 12 [(buf.validate.field).string = {max_len: 32768}]; - // Role defines if this is machine or a firewall - MachineRole role = 13 [(buf.validate.field).enum.defined_only = true]; + // AllocationType of this machine + optional MachineAllocationType allocation_type = 13 [(buf.validate.field).enum.defined_only = true]; // FirewallRules to be applied if this is a firewall FirewallRules firewall_rules = 14; // DNSServers for this machine @@ -487,8 +487,14 @@ message MachineNic { }]; // Identifier the unique identifier of this network interface string identifier = 3 [(buf.validate.field).string = {max_len: 128}]; + // Vendor of this network card + string vendor = 4 [(buf.validate.field).string = {max_len: 128}]; + // Model of this network card + string model = 5 [(buf.validate.field).string = {max_len: 128}]; + // Speed in bits/second of this network card + uint64 speed = 6; // Neighbors the neighbors visible to this network interface - repeated MachineNic neighbors = 4; + repeated MachineNic neighbors = 7; } // MachineBlockDevice contains details of a block device of this machine @@ -584,14 +590,14 @@ enum MachineLiveliness { MACHINE_LIVELINESS_UNKNOWN = 3 [(enum_string_value) = "unknown"]; } -// MachineRole defines if this is a machine or a firewall -enum MachineRole { - // MACHINE_ROLE_UNSPECIFIED is unspecified - MACHINE_ROLE_UNSPECIFIED = 0 [(enum_string_value) = ""]; - // MACHINE_ROLE_MACHINE is a machine - MACHINE_ROLE_MACHINE = 1 [(enum_string_value) = "machine"]; - // MACHINE_ROLE_FIREWALL is a firewall - MACHINE_ROLE_FIREWALL = 2 [(enum_string_value) = "firewall"]; +// MachineAllocationType defines if this is a machine or a firewall +enum MachineAllocationType { + // MACHINE_ALLOCATION_TYPE_UNSPECIFIED is unspecified + MACHINE_ALLOCATION_TYPE_UNSPECIFIED = 0 [(enum_string_value) = ""]; + // MACHINE_ALLOCATION_TYPE_MACHINE is a machine + MACHINE_ALLOCATION_TYPE_MACHINE = 1 [(enum_string_value) = "machine"]; + // MACHINE_ALLOCATION_TYPE_FIREWALL is a firewall + MACHINE_ALLOCATION_TYPE_FIREWALL = 2 [(enum_string_value) = "firewall"]; } // MachineQuery contains fields which can be specified to list specific machines. @@ -664,8 +670,8 @@ message MachineAllocationQuery { min_len: 2 max_len: 128 }]; - // Role of this machine - optional MachineRole role = 7 [(buf.validate.field).enum.defined_only = true]; + // AllocationType of this machine + optional MachineAllocationType allocation_type = 7 [(buf.validate.field).enum.defined_only = true]; } // MachineNetworkQuery network specific machine queries diff --git a/python/metalstack/api/v2/machine_pb2.py b/python/metalstack/api/v2/machine_pb2.py index ccb9fced..7e14191d 100644 --- a/python/metalstack/api/v2/machine_pb2.py +++ b/python/metalstack/api/v2/machine_pb2.py @@ -32,7 +32,7 @@ from metalstack.api.v2 import size_pb2 as metalstack_dot_api_dot_v2_dot_size__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fmetalstack/api/v2/machine.proto\x12\x11metalstack.api.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1emetalstack/api/v2/common.proto\x1a\"metalstack/api/v2/filesystem.proto\x1a\x1dmetalstack/api/v2/image.proto\x1a\x1fmetalstack/api/v2/network.proto\x1a!metalstack/api/v2/partition.proto\x1a\x1cmetalstack/api/v2/size.proto\"\\\n\x18MachineServiceGetRequest\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12\"\n\x07project\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\"Q\n\x19MachineServiceGetResponse\x12\x34\n\x07machine\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.MachineR\x07machine\"\x92\x08\n\x1bMachineServiceCreateRequest\x12\"\n\x07project\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12!\n\x04uuid\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x04uuid\x88\x01\x01\x12\x1c\n\x04name\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\x04name\x12*\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x0b\x64\x65scription\x12(\n\x08hostname\x18\x05 \x01(\tB\x07\xbaH\x04r\x02h\x01H\x01R\x08hostname\x88\x01\x01\x12&\n\tpartition\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\tpartition\x12\x1c\n\x04size\x18\x07 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\x04size\x12\x1e\n\x05image\x18\x08 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\x05image\x12\x30\n\x11\x66ilesystem_layout\x18\t \x01(\tH\x02R\x10\x66ilesystemLayout\x88\x01\x01\x12\x39\n\x0fssh_public_keys\x18\n \x03(\tB\x11\xbaH\x0e\x92\x01\x0b\x10\x32\"\x07r\x05\x10\x01\x18\x80@R\rsshPublicKeys\x12*\n\x08userdata\x18\x0b \x01(\tB\t\xbaH\x06r\x04\x18\x80\x80\x02H\x03R\x08userdata\x88\x01\x01\x12\x31\n\x06labels\x18\x0c \x01(\x0b\x32\x19.metalstack.api.v2.LabelsR\x06labels\x12G\n\x08networks\x18\r \x03(\x0b\x32+.metalstack.api.v2.MachineAllocationNetworkR\x08networks\x12H\n\x03ips\x18\x0e \x03(\tB6\xbaH3\x92\x01\x30\".\xba\x01+\n\tvalid_ips\x12\x11ips must be valid\x1a\x0bthis.isIp()R\x03ips\x12%\n\x0eplacement_tags\x18\x0f \x03(\tR\rplacementTags\x12\x45\n\ndns_server\x18\x10 \x03(\x0b\x32\x1c.metalstack.api.v2.DNSServerB\x08\xbaH\x05\x92\x01\x02\x10\x03R\tdnsServer\x12\x45\n\nntp_server\x18\x11 \x03(\x0b\x32\x1c.metalstack.api.v2.NTPServerB\x08\xbaH\x05\x92\x01\x02\x10\nR\tntpServer\x12<\n\x04role\x18\x12 \x01(\x0e\x32\x1e.metalstack.api.v2.MachineRoleB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x04role\x12G\n\x0e\x66irewall_rules\x18\x13 \x01(\x0b\x32 .metalstack.api.v2.FirewallRulesR\rfirewallRulesB\x07\n\x05_uuidB\x0b\n\t_hostnameB\x14\n\x12_filesystem_layoutB\x0b\n\t_userdata\"T\n\x1cMachineServiceCreateResponse\x12\x34\n\x07machine\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.MachineR\x07machine\"\xa4\x02\n\x1bMachineServiceUpdateRequest\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12\"\n\x07project\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12/\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x00R\x0b\x64\x65scription\x88\x01\x01\x12<\n\x06labels\x18\x06 \x01(\x0b\x32\x1f.metalstack.api.v2.UpdateLabelsH\x01R\x06labels\x88\x01\x01\x12\x39\n\x0fssh_public_keys\x18\x0b \x03(\tB\x11\xbaH\x0e\x92\x01\x0b\x10\x32\"\x07r\x05\x10\x01\x18\x80@R\rsshPublicKeysB\x0e\n\x0c_descriptionB\t\n\x07_labels\"T\n\x1cMachineServiceUpdateResponse\x12\x34\n\x07machine\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.MachineR\x07machine\"v\n\x19MachineServiceListRequest\x12\"\n\x07project\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12\x35\n\x05query\x18\x02 \x01(\x0b\x32\x1f.metalstack.api.v2.MachineQueryR\x05query\"T\n\x1aMachineServiceListResponse\x12\x36\n\x08machines\x18\x01 \x03(\x0b\x32\x1a.metalstack.api.v2.MachineR\x08machines\"_\n\x1bMachineServiceDeleteRequest\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12\"\n\x07project\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\"T\n\x1cMachineServiceDeleteResponse\x12\x34\n\x07machine\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.MachineR\x07machine\"\xc1\x04\n\x07Machine\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12+\n\x04meta\x18\x02 \x01(\x0b\x32\x17.metalstack.api.v2.MetaR\x04meta\x12:\n\tpartition\x18\x03 \x01(\x0b\x32\x1c.metalstack.api.v2.PartitionR\tpartition\x12\x1c\n\x04rack\x18\x04 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\x04rack\x12+\n\x04size\x18\x05 \x01(\x0b\x32\x17.metalstack.api.v2.SizeR\x04size\x12>\n\x08hardware\x18\x06 \x01(\x0b\x32\".metalstack.api.v2.MachineHardwareR\x08hardware\x12\x32\n\x04\x62ios\x18\x07 \x01(\x0b\x32\x1e.metalstack.api.v2.MachineBiosR\x04\x62ios\x12\x44\n\nallocation\x18\x08 \x01(\x0b\x32$.metalstack.api.v2.MachineAllocationR\nallocation\x12\x38\n\x06status\x18\t \x01(\x0b\x32 .metalstack.api.v2.MachineStatusR\x06status\x12p\n\x1arecent_provisioning_events\x18\n \x01(\x0b\x32\x32.metalstack.api.v2.MachineRecentProvisioningEventsR\x18recentProvisioningEvents\"\xa4\x02\n\rMachineStatus\x12\x41\n\tcondition\x18\x01 \x01(\x0b\x32#.metalstack.api.v2.MachineConditionR\tcondition\x12N\n\tled_state\x18\x02 \x01(\x0b\x32\x31.metalstack.api.v2.MachineChassisIdentifyLEDStateR\x08ledState\x12N\n\nliveliness\x18\x03 \x01(\x0e\x32$.metalstack.api.v2.MachineLivelinessB\x08\xbaH\x05\x82\x01\x02\x10\x01R\nliveliness\x12\x30\n\x14metal_hammer_version\x18\x04 \x01(\tR\x12metalHammerVersion\"\xa1\x01\n\x10MachineCondition\x12?\n\x05state\x18\x01 \x01(\x0e\x32\x1f.metalstack.api.v2.MachineStateB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x05state\x12*\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x0b\x64\x65scription\x12 \n\x06issuer\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x06issuer\"\x83\x07\n\x11MachineAllocation\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12+\n\x04meta\x18\x02 \x01(\x0b\x32\x17.metalstack.api.v2.MetaR\x04meta\x12\x1c\n\x04name\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\x04name\x12*\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\x0b\x64\x65scription\x12\'\n\ncreated_by\x18\x05 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\tcreatedBy\x12\"\n\x07project\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12.\n\x05image\x18\x07 \x01(\x0b\x32\x18.metalstack.api.v2.ImageR\x05image\x12P\n\x11\x66ilesystem_layout\x18\x08 \x01(\x0b\x32#.metalstack.api.v2.FilesystemLayoutR\x10\x66ilesystemLayout\x12=\n\x08networks\x18\t \x03(\x0b\x32!.metalstack.api.v2.MachineNetworkR\x08networks\x12#\n\x08hostname\x18\n \x01(\tB\x07\xbaH\x04r\x02h\x01R\x08hostname\x12\x39\n\x0fssh_public_keys\x18\x0b \x03(\tB\x11\xbaH\x0e\x92\x01\x0b\x10\x32\"\x07r\x05\x10\x01\x18\x80@R\rsshPublicKeys\x12%\n\x08userdata\x18\x0c \x01(\tB\t\xbaH\x06r\x04\x18\x80\x80\x02R\x08userdata\x12<\n\x04role\x18\r \x01(\x0e\x32\x1e.metalstack.api.v2.MachineRoleB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x04role\x12G\n\x0e\x66irewall_rules\x18\x0e \x01(\x0b\x32 .metalstack.api.v2.FirewallRulesR\rfirewallRules\x12\x45\n\ndns_server\x18\x0f \x03(\x0b\x32\x1c.metalstack.api.v2.DNSServerB\x08\xbaH\x05\x92\x01\x02\x10\x03R\tdnsServer\x12\x45\n\nntp_server\x18\x10 \x03(\x0b\x32\x1c.metalstack.api.v2.NTPServerB\x08\xbaH\x05\x92\x01\x02\x10\nR\tntpServer\x12/\n\x03vpn\x18\x11 \x01(\x0b\x32\x1d.metalstack.api.v2.MachineVPNR\x03vpn\"}\n\x18MachineAllocationNetwork\x12\x18\n\x07network\x18\x01 \x01(\tR\x07network\x12\x30\n\x12no_auto_acquire_ip\x18\x02 \x01(\x08H\x00R\x0fnoAutoAcquireIp\x88\x01\x01\x42\x15\n\x13_no_auto_acquire_ip\"\x90\x01\n\rFirewallRules\x12=\n\x06\x65gress\x18\x01 \x03(\x0b\x32%.metalstack.api.v2.FirewallEgressRuleR\x06\x65gress\x12@\n\x07ingress\x18\x02 \x03(\x0b\x32&.metalstack.api.v2.FirewallIngressRuleR\x07ingress\"\x87\x02\n\x12\x46irewallEgressRule\x12\x43\n\x08protocol\x18\x01 \x01(\x0e\x32\x1d.metalstack.api.v2.IPProtocolB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x08protocol\x12$\n\x05ports\x18\x02 \x03(\rB\x0e\xbaH\x0b\x92\x01\x08\"\x06*\x04\x18\xfc\xff\x03R\x05ports\x12S\n\x02to\x18\x03 \x03(\tBC\xbaH@\x92\x01=\";\xba\x01\x38\n\x08valid_to\x12\x19to prefixes must be valid\x1a\x11this.isIpPrefix()R\x02to\x12\x31\n\x07\x63omment\x18\x04 \x01(\tB\x17\xbaH\x14r\x0f\x18\x64\x32\x0b^[a-z_ -]*$\xd8\x01\x01R\x07\x63omment\"\xe5\x02\n\x13\x46irewallIngressRule\x12\x43\n\x08protocol\x18\x01 \x01(\x0e\x32\x1d.metalstack.api.v2.IPProtocolB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x08protocol\x12$\n\x05ports\x18\x02 \x03(\rB\x0e\xbaH\x0b\x92\x01\x08\"\x06*\x04\x18\xfc\xff\x03R\x05ports\x12S\n\x02to\x18\x03 \x03(\tBC\xbaH@\x92\x01=\";\xba\x01\x38\n\x08valid_to\x12\x19to prefixes must be valid\x1a\x11this.isIpPrefix()R\x02to\x12[\n\x04\x66rom\x18\x04 \x03(\tBG\xbaHD\x92\x01\x41\"?\xba\x01<\n\nvalid_from\x12\x1b\x66rom prefixes must be valid\x1a\x11this.isIpPrefix()R\x04\x66rom\x12\x31\n\x07\x63omment\x18\x05 \x01(\tB\x17\xbaH\x14r\x0f\x18\x64\x32\x0b^[a-z_ -]*$\xd8\x01\x01R\x07\x63omment\"\x9e\x04\n\x0eMachineNetwork\x12\x18\n\x07network\x18\x01 \x01(\tR\x07network\x12\x62\n\x08prefixes\x18\x02 \x03(\tBF\xbaHC\x92\x01@\">\xba\x01;\n\x0evalid_prefixes\x12\x16prefixes must be valid\x1a\x11this.isIpPrefix()R\x08prefixes\x12\x91\x01\n\x14\x64\x65stination_prefixes\x18\x03 \x03(\tB^\xbaH[\x92\x01X\"V\xba\x01S\n\x1avalid_destination_prefixes\x12\"destination_prefixes must be valid\x1a\x11this.isIpPrefix()R\x13\x64\x65stinationPrefixes\x12H\n\x03ips\x18\x04 \x03(\tB6\xbaH3\x92\x01\x30\".\xba\x01+\n\tvalid_ips\x12\x11ips must be valid\x1a\x0bthis.isIp()R\x03ips\x12K\n\x0cnetwork_type\x18\x05 \x01(\x0e\x32\x1e.metalstack.api.v2.NetworkTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x0bnetworkType\x12?\n\x08nat_type\x18\x06 \x01(\x0e\x32\x1a.metalstack.api.v2.NATTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x07natType\x12\x10\n\x03vrf\x18\x07 \x01(\x04R\x03vrf\x12\x10\n\x03\x61sn\x18\x08 \x01(\rR\x03\x61sn\"\xfb\x01\n\x0fMachineHardware\x12\x16\n\x06memory\x18\x01 \x01(\x04R\x06memory\x12;\n\x05\x64isks\x18\x03 \x03(\x0b\x32%.metalstack.api.v2.MachineBlockDeviceR\x05\x64isks\x12/\n\x04\x63pus\x18\x04 \x03(\x0b\x32\x1b.metalstack.api.v2.MetalCPUR\x04\x63pus\x12/\n\x04gpus\x18\x05 \x03(\x0b\x32\x1b.metalstack.api.v2.MetalGPUR\x04gpus\x12\x31\n\x04nics\x18\x06 \x03(\x0b\x32\x1d.metalstack.api.v2.MachineNicR\x04nics\"|\n\x08MetalCPU\x12 \n\x06vendor\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x06vendor\x12\x1e\n\x05model\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x05model\x12\x14\n\x05\x63ores\x18\x03 \x01(\rR\x05\x63ores\x12\x18\n\x07threads\x18\x04 \x01(\rR\x07threads\"L\n\x08MetalGPU\x12 \n\x06vendor\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x06vendor\x12\x1e\n\x05model\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x05model\"\xd6\x01\n\nMachineNic\x12\x41\n\x03mac\x18\x01 \x01(\tB/\xbaH,r*2(^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$R\x03mac\x12\x1e\n\x04name\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01R\x04name\x12(\n\nidentifier\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\nidentifier\x12;\n\tneighbors\x18\x04 \x03(\x0b\x32\x1d.metalstack.api.v2.MachineNicR\tneighbors\"F\n\x12MachineBlockDevice\x12\x1c\n\x04name\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\x04name\x12\x12\n\x04size\x18\x02 \x01(\x04R\x04size\"l\n\x1eMachineChassisIdentifyLEDState\x12\x1e\n\x05value\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\x05value\x12*\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x0b\x64\x65scription\"q\n\x0bMachineBios\x12\"\n\x07version\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x07version\x12 \n\x06vendor\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x06vendor\x12\x1c\n\x04\x64\x61te\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x04\x64\x61te\"\xd3\x02\n\x1fMachineRecentProvisioningEvents\x12\x43\n\x06\x65vents\x18\x01 \x03(\x0b\x32+.metalstack.api.v2.MachineProvisioningEventR\x06\x65vents\x12\x42\n\x0flast_event_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\rlastEventTime\x12U\n\x10last_error_event\x18\x03 \x01(\x0b\x32+.metalstack.api.v2.MachineProvisioningEventR\x0elastErrorEvent\x12P\n\x05state\x18\x04 \x01(\x0e\x32\x30.metalstack.api.v2.MachineProvisioningEventStateB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x05state\"z\n\x18MachineProvisioningEvent\x12.\n\x04time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x04time\x12\x14\n\x05\x65vent\x18\x02 \x01(\tR\x05\x65vent\x12\x18\n\x07message\x18\x03 \x01(\tR\x07message\"y\n\nMachineVPN\x12\x32\n\x15\x63ontrol_plane_address\x18\x01 \x01(\tR\x13\x63ontrolPlaneAddress\x12\x19\n\x08\x61uth_key\x18\x02 \x01(\tR\x07\x61uthKey\x12\x1c\n\tconnected\x18\x03 \x01(\x08R\tconnected\"\xa7\x07\n\x0cMachineQuery\x12!\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x04uuid\x88\x01\x01\x12#\n\x04name\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x01R\x04name\x88\x01\x01\x12-\n\tpartition\x18\x03 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x02R\tpartition\x88\x01\x01\x12#\n\x04size\x18\x04 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x03R\x04size\x88\x01\x01\x12#\n\x04rack\x18\x05 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x04R\x04rack\x88\x01\x01\x12\x36\n\x06labels\x18\x06 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsH\x05R\x06labels\x88\x01\x01\x12N\n\nallocation\x18\x07 \x01(\x0b\x32).metalstack.api.v2.MachineAllocationQueryH\x06R\nallocation\x88\x01\x01\x12\x45\n\x07network\x18\x08 \x01(\x0b\x32&.metalstack.api.v2.MachineNetworkQueryH\x07R\x07network\x88\x01\x01\x12\x39\n\x03nic\x18\t \x01(\x0b\x32\".metalstack.api.v2.MachineNicQueryH\x08R\x03nic\x88\x01\x01\x12<\n\x04\x64isk\x18\n \x01(\x0b\x32#.metalstack.api.v2.MachineDiskQueryH\tR\x04\x64isk\x88\x01\x01\x12<\n\x04ipmi\x18\x0b \x01(\x0b\x32#.metalstack.api.v2.MachineIPMIQueryH\nR\x04ipmi\x88\x01\x01\x12\x39\n\x03\x66ru\x18\x0c \x01(\x0b\x32\".metalstack.api.v2.MachineFRUQueryH\x0bR\x03\x66ru\x88\x01\x01\x12H\n\x08hardware\x18\r \x01(\x0b\x32\'.metalstack.api.v2.MachineHardwareQueryH\x0cR\x08hardware\x88\x01\x01\x12:\n\x05state\x18\x0e \x01(\x0e\x32\x1f.metalstack.api.v2.MachineStateH\rR\x05state\x88\x01\x01\x42\x07\n\x05_uuidB\x07\n\x05_nameB\x0c\n\n_partitionB\x07\n\x05_sizeB\x07\n\x05_rackB\t\n\x07_labelsB\r\n\x0b_allocationB\n\n\x08_networkB\x06\n\x04_nicB\x07\n\x05_diskB\x07\n\x05_ipmiB\x06\n\x04_fruB\x0b\n\t_hardwareB\x08\n\x06_state\"\xb2\x03\n\x16MachineAllocationQuery\x12!\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x04uuid\x88\x01\x01\x12#\n\x04name\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x01R\x04name\x88\x01\x01\x12\'\n\x07project\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x02R\x07project\x88\x01\x01\x12%\n\x05image\x18\x04 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x03R\x05image\x88\x01\x01\x12<\n\x11\x66ilesystem_layout\x18\x05 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x04R\x10\x66ilesystemLayout\x88\x01\x01\x12+\n\x08hostname\x18\x06 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x05R\x08hostname\x88\x01\x01\x12\x41\n\x04role\x18\x07 \x01(\x0e\x32\x1e.metalstack.api.v2.MachineRoleB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x06R\x04role\x88\x01\x01\x42\x07\n\x05_uuidB\x07\n\x05_nameB\n\n\x08_projectB\x08\n\x06_imageB\x14\n\x12_filesystem_layoutB\x0b\n\t_hostnameB\x07\n\x05_role\"\x9b\x03\n\x13MachineNetworkQuery\x12\x1a\n\x08networks\x18\x01 \x03(\tR\x08networks\x12\x62\n\x08prefixes\x18\x02 \x03(\tBF\xbaHC\x92\x01@\">\xba\x01;\n\x0evalid_prefixes\x12\x16prefixes must be valid\x1a\x11this.isIpPrefix()R\x08prefixes\x12\x91\x01\n\x14\x64\x65stination_prefixes\x18\x03 \x03(\tB^\xbaH[\x92\x01X\"V\xba\x01S\n\x1avalid_destination_prefixes\x12\"destination_prefixes must be valid\x1a\x11this.isIpPrefix()R\x13\x64\x65stinationPrefixes\x12H\n\x03ips\x18\x04 \x03(\tB6\xbaH3\x92\x01\x30\".\xba\x01+\n\tvalid_ips\x12\x11ips must be valid\x1a\x0bthis.isIp()R\x03ips\x12\x12\n\x04vrfs\x18\x05 \x03(\x04R\x04vrfs\x12\x12\n\x04\x61sns\x18\x06 \x03(\rR\x04\x61sns\"\xe6\x02\n\x0fMachineNicQuery\x12J\n\x04macs\x18\x01 \x03(\tB6\xbaH3\x92\x01\x30\x10\x64\",r*2(^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$R\x04macs\x12%\n\x05names\x18\x02 \x03(\tB\x0f\xbaH\x0c\x92\x01\t\x10\x64\"\x05r\x03\x18\x80\x01R\x05names\x12\x1c\n\x04vrfs\x18\x03 \x03(\x04\x42\x08\xbaH\x05\x92\x01\x02\x10\x64R\x04vrfs\x12[\n\rneighbor_macs\x18\x04 \x03(\tB6\xbaH3\x92\x01\x30\x10\x64\",r*2(^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$R\x0cneighborMacs\x12\x36\n\x0eneighbor_names\x18\x05 \x03(\tB\x0f\xbaH\x0c\x92\x01\t\x10\x64\"\x05r\x03\x18\x80\x01R\rneighborNames\x12-\n\rneighbor_vrfs\x18\x06 \x03(\x04\x42\x08\xbaH\x05\x92\x01\x02\x10\x64R\x0cneighborVrfs\"Y\n\x10MachineDiskQuery\x12%\n\x05names\x18\x01 \x03(\tB\x0f\xbaH\x0c\x92\x01\t\x10\x64\"\x05r\x03\x18\x80\x01R\x05names\x12\x1e\n\x05sizes\x18\x02 \x03(\x04\x42\x08\xbaH\x05\x92\x01\x02\x10\x64R\x05sizes\"\xfd\x01\n\x10MachineIPMIQuery\x12&\n\x07\x61\x64\x64ress\x18\x01 \x01(\tB\x07\xbaH\x04r\x02p\x01H\x00R\x07\x61\x64\x64ress\x88\x01\x01\x12\x46\n\x03mac\x18\x02 \x01(\tB/\xbaH,r*2(^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$H\x01R\x03mac\x88\x01\x01\x12!\n\x04user\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x02R\x04user\x88\x01\x01\x12+\n\tinterface\x18\x04 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x03R\tinterface\x88\x01\x01\x42\n\n\x08_addressB\x06\n\x04_macB\x07\n\x05_userB\x0c\n\n_interface\"\x88\x05\n\x0fMachineFRUQuery\x12=\n\x13\x63hassis_part_number\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x00R\x11\x63hassisPartNumber\x88\x01\x01\x12=\n\x13\x63hassis_part_serial\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x01R\x11\x63hassisPartSerial\x88\x01\x01\x12*\n\tboard_mfg\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x02R\x08\x62oardMfg\x88\x01\x01\x12\x30\n\x0c\x62oard_serial\x18\x04 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x03R\x0b\x62oardSerial\x88\x01\x01\x12\x39\n\x11\x62oard_part_number\x18\x05 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x04R\x0f\x62oardPartNumber\x88\x01\x01\x12@\n\x14product_manufacturer\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x05R\x13productManufacturer\x88\x01\x01\x12=\n\x13product_part_number\x18\x07 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x06R\x11productPartNumber\x88\x01\x01\x12\x34\n\x0eproduct_serial\x18\x08 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x07R\rproductSerial\x88\x01\x01\x42\x16\n\x14_chassis_part_numberB\x16\n\x14_chassis_part_serialB\x0c\n\n_board_mfgB\x0f\n\r_board_serialB\x14\n\x12_board_part_numberB\x17\n\x15_product_manufacturerB\x16\n\x14_product_part_numberB\x11\n\x0f_product_serial\"n\n\x14MachineHardwareQuery\x12\x1b\n\x06memory\x18\x01 \x01(\x04H\x00R\x06memory\x88\x01\x01\x12 \n\tcpu_cores\x18\x02 \x01(\rH\x01R\x08\x63puCores\x88\x01\x01\x42\t\n\x07_memoryB\x0c\n\n_cpu_cores*e\n\nIPProtocol\x12\x1b\n\x17IP_PROTOCOL_UNSPECIFIED\x10\x00\x12\x1c\n\x0fIP_PROTOCOL_TCP\x10\x01\x1a\x07\x82\xb2\x19\x03tcp\x12\x1c\n\x0fIP_PROTOCOL_UDP\x10\x02\x1a\x07\x82\xb2\x19\x03udp*\xaf\x01\n\x0cMachineState\x12#\n\x19MACHINE_STATE_UNSPECIFIED\x10\x00\x1a\x04\x82\xb2\x19\x00\x12(\n\x16MACHINE_STATE_RESERVED\x10\x01\x1a\x0c\x82\xb2\x19\x08reserved\x12$\n\x14MACHINE_STATE_LOCKED\x10\x02\x1a\n\x82\xb2\x19\x06locked\x12*\n\x17MACHINE_STATE_AVAILABLE\x10\x03\x1a\r\x82\xb2\x19\tavailable*\xdf\x01\n\x1dMachineProvisioningEventState\x12\x36\n,MACHINE_PROVISIONING_EVENT_STATE_UNSPECIFIED\x10\x00\x1a\x04\x82\xb2\x19\x00\x12=\n*MACHINE_PROVISIONING_EVENT_STATE_CRASHLOOP\x10\x01\x1a\r\x82\xb2\x19\tcrashloop\x12G\n/MACHINE_PROVISIONING_EVENT_STATE_FAILED_RECLAIM\x10\x02\x1a\x12\x82\xb2\x19\x0e\x66\x61iled-reclaim*\xba\x01\n\x11MachineLiveliness\x12(\n\x1eMACHINE_LIVELINESS_UNSPECIFIED\x10\x00\x1a\x04\x82\xb2\x19\x00\x12\'\n\x18MACHINE_LIVELINESS_ALIVE\x10\x01\x1a\t\x82\xb2\x19\x05\x61live\x12%\n\x17MACHINE_LIVELINESS_DEAD\x10\x02\x1a\x08\x82\xb2\x19\x04\x64\x65\x61\x64\x12+\n\x1aMACHINE_LIVELINESS_UNKNOWN\x10\x03\x1a\x0b\x82\xb2\x19\x07unknown*\x81\x01\n\x0bMachineRole\x12\"\n\x18MACHINE_ROLE_UNSPECIFIED\x10\x00\x1a\x04\x82\xb2\x19\x00\x12%\n\x14MACHINE_ROLE_MACHINE\x10\x01\x1a\x0b\x82\xb2\x19\x07machine\x12\'\n\x15MACHINE_ROLE_FIREWALL\x10\x02\x1a\x0c\x82\xb2\x19\x08\x66irewall2\xca\x04\n\x0eMachineService\x12m\n\x03Get\x12+.metalstack.api.v2.MachineServiceGetRequest\x1a,.metalstack.api.v2.MachineServiceGetResponse\"\x0b\xca\xf3\x18\x03\x01\x02\x03\xe0\xf3\x18\x02\x12q\n\x06\x43reate\x12..metalstack.api.v2.MachineServiceCreateRequest\x1a/.metalstack.api.v2.MachineServiceCreateResponse\"\x06\xca\xf3\x18\x02\x01\x02\x12q\n\x06Update\x12..metalstack.api.v2.MachineServiceUpdateRequest\x1a/.metalstack.api.v2.MachineServiceUpdateResponse\"\x06\xca\xf3\x18\x02\x01\x02\x12p\n\x04List\x12,.metalstack.api.v2.MachineServiceListRequest\x1a-.metalstack.api.v2.MachineServiceListResponse\"\x0b\xca\xf3\x18\x03\x01\x02\x03\xe0\xf3\x18\x02\x12q\n\x06\x44\x65lete\x12..metalstack.api.v2.MachineServiceDeleteRequest\x1a/.metalstack.api.v2.MachineServiceDeleteResponse\"\x06\xca\xf3\x18\x02\x01\x02\x42\xc2\x01\n\x15\x63om.metalstack.api.v2B\x0cMachineProtoP\x01Z5github.com/metal-stack/api/go/metalstack/api/v2;apiv2\xa2\x02\x03MAX\xaa\x02\x11Metalstack.Api.V2\xca\x02\x11Metalstack\\Api\\V2\xe2\x02\x1dMetalstack\\Api\\V2\\GPBMetadata\xea\x02\x13Metalstack::Api::V2b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fmetalstack/api/v2/machine.proto\x12\x11metalstack.api.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1emetalstack/api/v2/common.proto\x1a\"metalstack/api/v2/filesystem.proto\x1a\x1dmetalstack/api/v2/image.proto\x1a\x1fmetalstack/api/v2/network.proto\x1a!metalstack/api/v2/partition.proto\x1a\x1cmetalstack/api/v2/size.proto\"\\\n\x18MachineServiceGetRequest\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12\"\n\x07project\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\"Q\n\x19MachineServiceGetResponse\x12\x34\n\x07machine\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.MachineR\x07machine\"\xca\x08\n\x1bMachineServiceCreateRequest\x12\"\n\x07project\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12!\n\x04uuid\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x04uuid\x88\x01\x01\x12\x1c\n\x04name\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\x04name\x12*\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x0b\x64\x65scription\x12(\n\x08hostname\x18\x05 \x01(\tB\x07\xbaH\x04r\x02h\x01H\x01R\x08hostname\x88\x01\x01\x12&\n\tpartition\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\tpartition\x12\x1c\n\x04size\x18\x07 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\x04size\x12\x1e\n\x05image\x18\x08 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\x05image\x12\x30\n\x11\x66ilesystem_layout\x18\t \x01(\tH\x02R\x10\x66ilesystemLayout\x88\x01\x01\x12\x39\n\x0fssh_public_keys\x18\n \x03(\tB\x11\xbaH\x0e\x92\x01\x0b\x10\x32\"\x07r\x05\x10\x01\x18\x80@R\rsshPublicKeys\x12*\n\x08userdata\x18\x0b \x01(\tB\t\xbaH\x06r\x04\x18\x80\x80\x02H\x03R\x08userdata\x88\x01\x01\x12\x31\n\x06labels\x18\x0c \x01(\x0b\x32\x19.metalstack.api.v2.LabelsR\x06labels\x12G\n\x08networks\x18\r \x03(\x0b\x32+.metalstack.api.v2.MachineAllocationNetworkR\x08networks\x12H\n\x03ips\x18\x0e \x03(\tB6\xbaH3\x92\x01\x30\".\xba\x01+\n\tvalid_ips\x12\x11ips must be valid\x1a\x0bthis.isIp()R\x03ips\x12%\n\x0eplacement_tags\x18\x0f \x03(\tR\rplacementTags\x12\x45\n\ndns_server\x18\x10 \x03(\x0b\x32\x1c.metalstack.api.v2.DNSServerB\x08\xbaH\x05\x92\x01\x02\x10\x03R\tdnsServer\x12\x45\n\nntp_server\x18\x11 \x03(\x0b\x32\x1c.metalstack.api.v2.NTPServerB\x08\xbaH\x05\x92\x01\x02\x10\nR\tntpServer\x12`\n\x0f\x61llocation_type\x18\x12 \x01(\x0e\x32(.metalstack.api.v2.MachineAllocationTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x04R\x0e\x61llocationType\x88\x01\x01\x12G\n\x0e\x66irewall_rules\x18\x13 \x01(\x0b\x32 .metalstack.api.v2.FirewallRulesR\rfirewallRulesB\x07\n\x05_uuidB\x0b\n\t_hostnameB\x14\n\x12_filesystem_layoutB\x0b\n\t_userdataB\x12\n\x10_allocation_type\"T\n\x1cMachineServiceCreateResponse\x12\x34\n\x07machine\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.MachineR\x07machine\"\xa4\x02\n\x1bMachineServiceUpdateRequest\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12\"\n\x07project\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12/\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x00R\x0b\x64\x65scription\x88\x01\x01\x12<\n\x06labels\x18\x06 \x01(\x0b\x32\x1f.metalstack.api.v2.UpdateLabelsH\x01R\x06labels\x88\x01\x01\x12\x39\n\x0fssh_public_keys\x18\x0b \x03(\tB\x11\xbaH\x0e\x92\x01\x0b\x10\x32\"\x07r\x05\x10\x01\x18\x80@R\rsshPublicKeysB\x0e\n\x0c_descriptionB\t\n\x07_labels\"T\n\x1cMachineServiceUpdateResponse\x12\x34\n\x07machine\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.MachineR\x07machine\"v\n\x19MachineServiceListRequest\x12\"\n\x07project\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12\x35\n\x05query\x18\x02 \x01(\x0b\x32\x1f.metalstack.api.v2.MachineQueryR\x05query\"T\n\x1aMachineServiceListResponse\x12\x36\n\x08machines\x18\x01 \x03(\x0b\x32\x1a.metalstack.api.v2.MachineR\x08machines\"_\n\x1bMachineServiceDeleteRequest\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12\"\n\x07project\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\"T\n\x1cMachineServiceDeleteResponse\x12\x34\n\x07machine\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.MachineR\x07machine\"\xc1\x04\n\x07Machine\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12+\n\x04meta\x18\x02 \x01(\x0b\x32\x17.metalstack.api.v2.MetaR\x04meta\x12:\n\tpartition\x18\x03 \x01(\x0b\x32\x1c.metalstack.api.v2.PartitionR\tpartition\x12\x1c\n\x04rack\x18\x04 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\x04rack\x12+\n\x04size\x18\x05 \x01(\x0b\x32\x17.metalstack.api.v2.SizeR\x04size\x12>\n\x08hardware\x18\x06 \x01(\x0b\x32\".metalstack.api.v2.MachineHardwareR\x08hardware\x12\x32\n\x04\x62ios\x18\x07 \x01(\x0b\x32\x1e.metalstack.api.v2.MachineBiosR\x04\x62ios\x12\x44\n\nallocation\x18\x08 \x01(\x0b\x32$.metalstack.api.v2.MachineAllocationR\nallocation\x12\x38\n\x06status\x18\t \x01(\x0b\x32 .metalstack.api.v2.MachineStatusR\x06status\x12p\n\x1arecent_provisioning_events\x18\n \x01(\x0b\x32\x32.metalstack.api.v2.MachineRecentProvisioningEventsR\x18recentProvisioningEvents\"\xa4\x02\n\rMachineStatus\x12\x41\n\tcondition\x18\x01 \x01(\x0b\x32#.metalstack.api.v2.MachineConditionR\tcondition\x12N\n\tled_state\x18\x02 \x01(\x0b\x32\x31.metalstack.api.v2.MachineChassisIdentifyLEDStateR\x08ledState\x12N\n\nliveliness\x18\x03 \x01(\x0e\x32$.metalstack.api.v2.MachineLivelinessB\x08\xbaH\x05\x82\x01\x02\x10\x01R\nliveliness\x12\x30\n\x14metal_hammer_version\x18\x04 \x01(\tR\x12metalHammerVersion\"\xa1\x01\n\x10MachineCondition\x12?\n\x05state\x18\x01 \x01(\x0e\x32\x1f.metalstack.api.v2.MachineStateB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x05state\x12*\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x0b\x64\x65scription\x12 \n\x06issuer\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x06issuer\"\xbb\x07\n\x11MachineAllocation\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12+\n\x04meta\x18\x02 \x01(\x0b\x32\x17.metalstack.api.v2.MetaR\x04meta\x12\x1c\n\x04name\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\x04name\x12*\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\x0b\x64\x65scription\x12\'\n\ncreated_by\x18\x05 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\tcreatedBy\x12\"\n\x07project\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12.\n\x05image\x18\x07 \x01(\x0b\x32\x18.metalstack.api.v2.ImageR\x05image\x12P\n\x11\x66ilesystem_layout\x18\x08 \x01(\x0b\x32#.metalstack.api.v2.FilesystemLayoutR\x10\x66ilesystemLayout\x12=\n\x08networks\x18\t \x03(\x0b\x32!.metalstack.api.v2.MachineNetworkR\x08networks\x12#\n\x08hostname\x18\n \x01(\tB\x07\xbaH\x04r\x02h\x01R\x08hostname\x12\x39\n\x0fssh_public_keys\x18\x0b \x03(\tB\x11\xbaH\x0e\x92\x01\x0b\x10\x32\"\x07r\x05\x10\x01\x18\x80@R\rsshPublicKeys\x12%\n\x08userdata\x18\x0c \x01(\tB\t\xbaH\x06r\x04\x18\x80\x80\x02R\x08userdata\x12`\n\x0f\x61llocation_type\x18\r \x01(\x0e\x32(.metalstack.api.v2.MachineAllocationTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x00R\x0e\x61llocationType\x88\x01\x01\x12G\n\x0e\x66irewall_rules\x18\x0e \x01(\x0b\x32 .metalstack.api.v2.FirewallRulesR\rfirewallRules\x12\x45\n\ndns_server\x18\x0f \x03(\x0b\x32\x1c.metalstack.api.v2.DNSServerB\x08\xbaH\x05\x92\x01\x02\x10\x03R\tdnsServer\x12\x45\n\nntp_server\x18\x10 \x03(\x0b\x32\x1c.metalstack.api.v2.NTPServerB\x08\xbaH\x05\x92\x01\x02\x10\nR\tntpServer\x12/\n\x03vpn\x18\x11 \x01(\x0b\x32\x1d.metalstack.api.v2.MachineVPNR\x03vpnB\x12\n\x10_allocation_type\"}\n\x18MachineAllocationNetwork\x12\x18\n\x07network\x18\x01 \x01(\tR\x07network\x12\x30\n\x12no_auto_acquire_ip\x18\x02 \x01(\x08H\x00R\x0fnoAutoAcquireIp\x88\x01\x01\x42\x15\n\x13_no_auto_acquire_ip\"\x90\x01\n\rFirewallRules\x12=\n\x06\x65gress\x18\x01 \x03(\x0b\x32%.metalstack.api.v2.FirewallEgressRuleR\x06\x65gress\x12@\n\x07ingress\x18\x02 \x03(\x0b\x32&.metalstack.api.v2.FirewallIngressRuleR\x07ingress\"\x87\x02\n\x12\x46irewallEgressRule\x12\x43\n\x08protocol\x18\x01 \x01(\x0e\x32\x1d.metalstack.api.v2.IPProtocolB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x08protocol\x12$\n\x05ports\x18\x02 \x03(\rB\x0e\xbaH\x0b\x92\x01\x08\"\x06*\x04\x18\xfc\xff\x03R\x05ports\x12S\n\x02to\x18\x03 \x03(\tBC\xbaH@\x92\x01=\";\xba\x01\x38\n\x08valid_to\x12\x19to prefixes must be valid\x1a\x11this.isIpPrefix()R\x02to\x12\x31\n\x07\x63omment\x18\x04 \x01(\tB\x17\xbaH\x14r\x0f\x18\x64\x32\x0b^[a-z_ -]*$\xd8\x01\x01R\x07\x63omment\"\xe5\x02\n\x13\x46irewallIngressRule\x12\x43\n\x08protocol\x18\x01 \x01(\x0e\x32\x1d.metalstack.api.v2.IPProtocolB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x08protocol\x12$\n\x05ports\x18\x02 \x03(\rB\x0e\xbaH\x0b\x92\x01\x08\"\x06*\x04\x18\xfc\xff\x03R\x05ports\x12S\n\x02to\x18\x03 \x03(\tBC\xbaH@\x92\x01=\";\xba\x01\x38\n\x08valid_to\x12\x19to prefixes must be valid\x1a\x11this.isIpPrefix()R\x02to\x12[\n\x04\x66rom\x18\x04 \x03(\tBG\xbaHD\x92\x01\x41\"?\xba\x01<\n\nvalid_from\x12\x1b\x66rom prefixes must be valid\x1a\x11this.isIpPrefix()R\x04\x66rom\x12\x31\n\x07\x63omment\x18\x05 \x01(\tB\x17\xbaH\x14r\x0f\x18\x64\x32\x0b^[a-z_ -]*$\xd8\x01\x01R\x07\x63omment\"\x9e\x04\n\x0eMachineNetwork\x12\x18\n\x07network\x18\x01 \x01(\tR\x07network\x12\x62\n\x08prefixes\x18\x02 \x03(\tBF\xbaHC\x92\x01@\">\xba\x01;\n\x0evalid_prefixes\x12\x16prefixes must be valid\x1a\x11this.isIpPrefix()R\x08prefixes\x12\x91\x01\n\x14\x64\x65stination_prefixes\x18\x03 \x03(\tB^\xbaH[\x92\x01X\"V\xba\x01S\n\x1avalid_destination_prefixes\x12\"destination_prefixes must be valid\x1a\x11this.isIpPrefix()R\x13\x64\x65stinationPrefixes\x12H\n\x03ips\x18\x04 \x03(\tB6\xbaH3\x92\x01\x30\".\xba\x01+\n\tvalid_ips\x12\x11ips must be valid\x1a\x0bthis.isIp()R\x03ips\x12K\n\x0cnetwork_type\x18\x05 \x01(\x0e\x32\x1e.metalstack.api.v2.NetworkTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x0bnetworkType\x12?\n\x08nat_type\x18\x06 \x01(\x0e\x32\x1a.metalstack.api.v2.NATTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x07natType\x12\x10\n\x03vrf\x18\x07 \x01(\x04R\x03vrf\x12\x10\n\x03\x61sn\x18\x08 \x01(\rR\x03\x61sn\"\xfb\x01\n\x0fMachineHardware\x12\x16\n\x06memory\x18\x01 \x01(\x04R\x06memory\x12;\n\x05\x64isks\x18\x03 \x03(\x0b\x32%.metalstack.api.v2.MachineBlockDeviceR\x05\x64isks\x12/\n\x04\x63pus\x18\x04 \x03(\x0b\x32\x1b.metalstack.api.v2.MetalCPUR\x04\x63pus\x12/\n\x04gpus\x18\x05 \x03(\x0b\x32\x1b.metalstack.api.v2.MetalGPUR\x04gpus\x12\x31\n\x04nics\x18\x06 \x03(\x0b\x32\x1d.metalstack.api.v2.MachineNicR\x04nics\"|\n\x08MetalCPU\x12 \n\x06vendor\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x06vendor\x12\x1e\n\x05model\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x05model\x12\x14\n\x05\x63ores\x18\x03 \x01(\rR\x05\x63ores\x12\x18\n\x07threads\x18\x04 \x01(\rR\x07threads\"L\n\x08MetalGPU\x12 \n\x06vendor\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x06vendor\x12\x1e\n\x05model\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x05model\"\xae\x02\n\nMachineNic\x12\x41\n\x03mac\x18\x01 \x01(\tB/\xbaH,r*2(^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$R\x03mac\x12\x1e\n\x04name\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01R\x04name\x12(\n\nidentifier\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\nidentifier\x12 \n\x06vendor\x18\x04 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\x06vendor\x12\x1e\n\x05model\x18\x05 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\x05model\x12\x14\n\x05speed\x18\x06 \x01(\x04R\x05speed\x12;\n\tneighbors\x18\x07 \x03(\x0b\x32\x1d.metalstack.api.v2.MachineNicR\tneighbors\"F\n\x12MachineBlockDevice\x12\x1c\n\x04name\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\x04name\x12\x12\n\x04size\x18\x02 \x01(\x04R\x04size\"l\n\x1eMachineChassisIdentifyLEDState\x12\x1e\n\x05value\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\x05value\x12*\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x0b\x64\x65scription\"q\n\x0bMachineBios\x12\"\n\x07version\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x07version\x12 \n\x06vendor\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x06vendor\x12\x1c\n\x04\x64\x61te\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x04\x64\x61te\"\xd3\x02\n\x1fMachineRecentProvisioningEvents\x12\x43\n\x06\x65vents\x18\x01 \x03(\x0b\x32+.metalstack.api.v2.MachineProvisioningEventR\x06\x65vents\x12\x42\n\x0flast_event_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\rlastEventTime\x12U\n\x10last_error_event\x18\x03 \x01(\x0b\x32+.metalstack.api.v2.MachineProvisioningEventR\x0elastErrorEvent\x12P\n\x05state\x18\x04 \x01(\x0e\x32\x30.metalstack.api.v2.MachineProvisioningEventStateB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x05state\"z\n\x18MachineProvisioningEvent\x12.\n\x04time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x04time\x12\x14\n\x05\x65vent\x18\x02 \x01(\tR\x05\x65vent\x12\x18\n\x07message\x18\x03 \x01(\tR\x07message\"y\n\nMachineVPN\x12\x32\n\x15\x63ontrol_plane_address\x18\x01 \x01(\tR\x13\x63ontrolPlaneAddress\x12\x19\n\x08\x61uth_key\x18\x02 \x01(\tR\x07\x61uthKey\x12\x1c\n\tconnected\x18\x03 \x01(\x08R\tconnected\"\xa7\x07\n\x0cMachineQuery\x12!\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x04uuid\x88\x01\x01\x12#\n\x04name\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x01R\x04name\x88\x01\x01\x12-\n\tpartition\x18\x03 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x02R\tpartition\x88\x01\x01\x12#\n\x04size\x18\x04 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x03R\x04size\x88\x01\x01\x12#\n\x04rack\x18\x05 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x04R\x04rack\x88\x01\x01\x12\x36\n\x06labels\x18\x06 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsH\x05R\x06labels\x88\x01\x01\x12N\n\nallocation\x18\x07 \x01(\x0b\x32).metalstack.api.v2.MachineAllocationQueryH\x06R\nallocation\x88\x01\x01\x12\x45\n\x07network\x18\x08 \x01(\x0b\x32&.metalstack.api.v2.MachineNetworkQueryH\x07R\x07network\x88\x01\x01\x12\x39\n\x03nic\x18\t \x01(\x0b\x32\".metalstack.api.v2.MachineNicQueryH\x08R\x03nic\x88\x01\x01\x12<\n\x04\x64isk\x18\n \x01(\x0b\x32#.metalstack.api.v2.MachineDiskQueryH\tR\x04\x64isk\x88\x01\x01\x12<\n\x04ipmi\x18\x0b \x01(\x0b\x32#.metalstack.api.v2.MachineIPMIQueryH\nR\x04ipmi\x88\x01\x01\x12\x39\n\x03\x66ru\x18\x0c \x01(\x0b\x32\".metalstack.api.v2.MachineFRUQueryH\x0bR\x03\x66ru\x88\x01\x01\x12H\n\x08hardware\x18\r \x01(\x0b\x32\'.metalstack.api.v2.MachineHardwareQueryH\x0cR\x08hardware\x88\x01\x01\x12:\n\x05state\x18\x0e \x01(\x0e\x32\x1f.metalstack.api.v2.MachineStateH\rR\x05state\x88\x01\x01\x42\x07\n\x05_uuidB\x07\n\x05_nameB\x0c\n\n_partitionB\x07\n\x05_sizeB\x07\n\x05_rackB\t\n\x07_labelsB\r\n\x0b_allocationB\n\n\x08_networkB\x06\n\x04_nicB\x07\n\x05_diskB\x07\n\x05_ipmiB\x06\n\x04_fruB\x0b\n\t_hardwareB\x08\n\x06_state\"\xdc\x03\n\x16MachineAllocationQuery\x12!\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x04uuid\x88\x01\x01\x12#\n\x04name\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x01R\x04name\x88\x01\x01\x12\'\n\x07project\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x02R\x07project\x88\x01\x01\x12%\n\x05image\x18\x04 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x03R\x05image\x88\x01\x01\x12<\n\x11\x66ilesystem_layout\x18\x05 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x04R\x10\x66ilesystemLayout\x88\x01\x01\x12+\n\x08hostname\x18\x06 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x05R\x08hostname\x88\x01\x01\x12`\n\x0f\x61llocation_type\x18\x07 \x01(\x0e\x32(.metalstack.api.v2.MachineAllocationTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x06R\x0e\x61llocationType\x88\x01\x01\x42\x07\n\x05_uuidB\x07\n\x05_nameB\n\n\x08_projectB\x08\n\x06_imageB\x14\n\x12_filesystem_layoutB\x0b\n\t_hostnameB\x12\n\x10_allocation_type\"\x9b\x03\n\x13MachineNetworkQuery\x12\x1a\n\x08networks\x18\x01 \x03(\tR\x08networks\x12\x62\n\x08prefixes\x18\x02 \x03(\tBF\xbaHC\x92\x01@\">\xba\x01;\n\x0evalid_prefixes\x12\x16prefixes must be valid\x1a\x11this.isIpPrefix()R\x08prefixes\x12\x91\x01\n\x14\x64\x65stination_prefixes\x18\x03 \x03(\tB^\xbaH[\x92\x01X\"V\xba\x01S\n\x1avalid_destination_prefixes\x12\"destination_prefixes must be valid\x1a\x11this.isIpPrefix()R\x13\x64\x65stinationPrefixes\x12H\n\x03ips\x18\x04 \x03(\tB6\xbaH3\x92\x01\x30\".\xba\x01+\n\tvalid_ips\x12\x11ips must be valid\x1a\x0bthis.isIp()R\x03ips\x12\x12\n\x04vrfs\x18\x05 \x03(\x04R\x04vrfs\x12\x12\n\x04\x61sns\x18\x06 \x03(\rR\x04\x61sns\"\xe6\x02\n\x0fMachineNicQuery\x12J\n\x04macs\x18\x01 \x03(\tB6\xbaH3\x92\x01\x30\x10\x64\",r*2(^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$R\x04macs\x12%\n\x05names\x18\x02 \x03(\tB\x0f\xbaH\x0c\x92\x01\t\x10\x64\"\x05r\x03\x18\x80\x01R\x05names\x12\x1c\n\x04vrfs\x18\x03 \x03(\x04\x42\x08\xbaH\x05\x92\x01\x02\x10\x64R\x04vrfs\x12[\n\rneighbor_macs\x18\x04 \x03(\tB6\xbaH3\x92\x01\x30\x10\x64\",r*2(^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$R\x0cneighborMacs\x12\x36\n\x0eneighbor_names\x18\x05 \x03(\tB\x0f\xbaH\x0c\x92\x01\t\x10\x64\"\x05r\x03\x18\x80\x01R\rneighborNames\x12-\n\rneighbor_vrfs\x18\x06 \x03(\x04\x42\x08\xbaH\x05\x92\x01\x02\x10\x64R\x0cneighborVrfs\"Y\n\x10MachineDiskQuery\x12%\n\x05names\x18\x01 \x03(\tB\x0f\xbaH\x0c\x92\x01\t\x10\x64\"\x05r\x03\x18\x80\x01R\x05names\x12\x1e\n\x05sizes\x18\x02 \x03(\x04\x42\x08\xbaH\x05\x92\x01\x02\x10\x64R\x05sizes\"\xfd\x01\n\x10MachineIPMIQuery\x12&\n\x07\x61\x64\x64ress\x18\x01 \x01(\tB\x07\xbaH\x04r\x02p\x01H\x00R\x07\x61\x64\x64ress\x88\x01\x01\x12\x46\n\x03mac\x18\x02 \x01(\tB/\xbaH,r*2(^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$H\x01R\x03mac\x88\x01\x01\x12!\n\x04user\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x02R\x04user\x88\x01\x01\x12+\n\tinterface\x18\x04 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x03R\tinterface\x88\x01\x01\x42\n\n\x08_addressB\x06\n\x04_macB\x07\n\x05_userB\x0c\n\n_interface\"\x88\x05\n\x0fMachineFRUQuery\x12=\n\x13\x63hassis_part_number\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x00R\x11\x63hassisPartNumber\x88\x01\x01\x12=\n\x13\x63hassis_part_serial\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x01R\x11\x63hassisPartSerial\x88\x01\x01\x12*\n\tboard_mfg\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x02R\x08\x62oardMfg\x88\x01\x01\x12\x30\n\x0c\x62oard_serial\x18\x04 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x03R\x0b\x62oardSerial\x88\x01\x01\x12\x39\n\x11\x62oard_part_number\x18\x05 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x04R\x0f\x62oardPartNumber\x88\x01\x01\x12@\n\x14product_manufacturer\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x05R\x13productManufacturer\x88\x01\x01\x12=\n\x13product_part_number\x18\x07 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x06R\x11productPartNumber\x88\x01\x01\x12\x34\n\x0eproduct_serial\x18\x08 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x07R\rproductSerial\x88\x01\x01\x42\x16\n\x14_chassis_part_numberB\x16\n\x14_chassis_part_serialB\x0c\n\n_board_mfgB\x0f\n\r_board_serialB\x14\n\x12_board_part_numberB\x17\n\x15_product_manufacturerB\x16\n\x14_product_part_numberB\x11\n\x0f_product_serial\"n\n\x14MachineHardwareQuery\x12\x1b\n\x06memory\x18\x01 \x01(\x04H\x00R\x06memory\x88\x01\x01\x12 \n\tcpu_cores\x18\x02 \x01(\rH\x01R\x08\x63puCores\x88\x01\x01\x42\t\n\x07_memoryB\x0c\n\n_cpu_cores*e\n\nIPProtocol\x12\x1b\n\x17IP_PROTOCOL_UNSPECIFIED\x10\x00\x12\x1c\n\x0fIP_PROTOCOL_TCP\x10\x01\x1a\x07\x82\xb2\x19\x03tcp\x12\x1c\n\x0fIP_PROTOCOL_UDP\x10\x02\x1a\x07\x82\xb2\x19\x03udp*\xaf\x01\n\x0cMachineState\x12#\n\x19MACHINE_STATE_UNSPECIFIED\x10\x00\x1a\x04\x82\xb2\x19\x00\x12(\n\x16MACHINE_STATE_RESERVED\x10\x01\x1a\x0c\x82\xb2\x19\x08reserved\x12$\n\x14MACHINE_STATE_LOCKED\x10\x02\x1a\n\x82\xb2\x19\x06locked\x12*\n\x17MACHINE_STATE_AVAILABLE\x10\x03\x1a\r\x82\xb2\x19\tavailable*\xdf\x01\n\x1dMachineProvisioningEventState\x12\x36\n,MACHINE_PROVISIONING_EVENT_STATE_UNSPECIFIED\x10\x00\x1a\x04\x82\xb2\x19\x00\x12=\n*MACHINE_PROVISIONING_EVENT_STATE_CRASHLOOP\x10\x01\x1a\r\x82\xb2\x19\tcrashloop\x12G\n/MACHINE_PROVISIONING_EVENT_STATE_FAILED_RECLAIM\x10\x02\x1a\x12\x82\xb2\x19\x0e\x66\x61iled-reclaim*\xba\x01\n\x11MachineLiveliness\x12(\n\x1eMACHINE_LIVELINESS_UNSPECIFIED\x10\x00\x1a\x04\x82\xb2\x19\x00\x12\'\n\x18MACHINE_LIVELINESS_ALIVE\x10\x01\x1a\t\x82\xb2\x19\x05\x61live\x12%\n\x17MACHINE_LIVELINESS_DEAD\x10\x02\x1a\x08\x82\xb2\x19\x04\x64\x65\x61\x64\x12+\n\x1aMACHINE_LIVELINESS_UNKNOWN\x10\x03\x1a\x0b\x82\xb2\x19\x07unknown*\xac\x01\n\x15MachineAllocationType\x12-\n#MACHINE_ALLOCATION_TYPE_UNSPECIFIED\x10\x00\x1a\x04\x82\xb2\x19\x00\x12\x30\n\x1fMACHINE_ALLOCATION_TYPE_MACHINE\x10\x01\x1a\x0b\x82\xb2\x19\x07machine\x12\x32\n MACHINE_ALLOCATION_TYPE_FIREWALL\x10\x02\x1a\x0c\x82\xb2\x19\x08\x66irewall2\xca\x04\n\x0eMachineService\x12m\n\x03Get\x12+.metalstack.api.v2.MachineServiceGetRequest\x1a,.metalstack.api.v2.MachineServiceGetResponse\"\x0b\xca\xf3\x18\x03\x01\x02\x03\xe0\xf3\x18\x02\x12q\n\x06\x43reate\x12..metalstack.api.v2.MachineServiceCreateRequest\x1a/.metalstack.api.v2.MachineServiceCreateResponse\"\x06\xca\xf3\x18\x02\x01\x02\x12q\n\x06Update\x12..metalstack.api.v2.MachineServiceUpdateRequest\x1a/.metalstack.api.v2.MachineServiceUpdateResponse\"\x06\xca\xf3\x18\x02\x01\x02\x12p\n\x04List\x12,.metalstack.api.v2.MachineServiceListRequest\x1a-.metalstack.api.v2.MachineServiceListResponse\"\x0b\xca\xf3\x18\x03\x01\x02\x03\xe0\xf3\x18\x02\x12q\n\x06\x44\x65lete\x12..metalstack.api.v2.MachineServiceDeleteRequest\x1a/.metalstack.api.v2.MachineServiceDeleteResponse\"\x06\xca\xf3\x18\x02\x01\x02\x42\xc2\x01\n\x15\x63om.metalstack.api.v2B\x0cMachineProtoP\x01Z5github.com/metal-stack/api/go/metalstack/api/v2;apiv2\xa2\x02\x03MAX\xaa\x02\x11Metalstack.Api.V2\xca\x02\x11Metalstack\\Api\\V2\xe2\x02\x1dMetalstack\\Api\\V2\\GPBMetadata\xea\x02\x13Metalstack::Api::V2b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -66,12 +66,12 @@ _globals['_MACHINELIVELINESS'].values_by_name["MACHINE_LIVELINESS_DEAD"]._serialized_options = b'\202\262\031\004dead' _globals['_MACHINELIVELINESS'].values_by_name["MACHINE_LIVELINESS_UNKNOWN"]._loaded_options = None _globals['_MACHINELIVELINESS'].values_by_name["MACHINE_LIVELINESS_UNKNOWN"]._serialized_options = b'\202\262\031\007unknown' - _globals['_MACHINEROLE'].values_by_name["MACHINE_ROLE_UNSPECIFIED"]._loaded_options = None - _globals['_MACHINEROLE'].values_by_name["MACHINE_ROLE_UNSPECIFIED"]._serialized_options = b'\202\262\031\000' - _globals['_MACHINEROLE'].values_by_name["MACHINE_ROLE_MACHINE"]._loaded_options = None - _globals['_MACHINEROLE'].values_by_name["MACHINE_ROLE_MACHINE"]._serialized_options = b'\202\262\031\007machine' - _globals['_MACHINEROLE'].values_by_name["MACHINE_ROLE_FIREWALL"]._loaded_options = None - _globals['_MACHINEROLE'].values_by_name["MACHINE_ROLE_FIREWALL"]._serialized_options = b'\202\262\031\010firewall' + _globals['_MACHINEALLOCATIONTYPE'].values_by_name["MACHINE_ALLOCATION_TYPE_UNSPECIFIED"]._loaded_options = None + _globals['_MACHINEALLOCATIONTYPE'].values_by_name["MACHINE_ALLOCATION_TYPE_UNSPECIFIED"]._serialized_options = b'\202\262\031\000' + _globals['_MACHINEALLOCATIONTYPE'].values_by_name["MACHINE_ALLOCATION_TYPE_MACHINE"]._loaded_options = None + _globals['_MACHINEALLOCATIONTYPE'].values_by_name["MACHINE_ALLOCATION_TYPE_MACHINE"]._serialized_options = b'\202\262\031\007machine' + _globals['_MACHINEALLOCATIONTYPE'].values_by_name["MACHINE_ALLOCATION_TYPE_FIREWALL"]._loaded_options = None + _globals['_MACHINEALLOCATIONTYPE'].values_by_name["MACHINE_ALLOCATION_TYPE_FIREWALL"]._serialized_options = b'\202\262\031\010firewall' _globals['_MACHINESERVICEGETREQUEST'].fields_by_name['uuid']._loaded_options = None _globals['_MACHINESERVICEGETREQUEST'].fields_by_name['uuid']._serialized_options = b'\272H\005r\003\260\001\001' _globals['_MACHINESERVICEGETREQUEST'].fields_by_name['project']._loaded_options = None @@ -102,8 +102,8 @@ _globals['_MACHINESERVICECREATEREQUEST'].fields_by_name['dns_server']._serialized_options = b'\272H\005\222\001\002\020\003' _globals['_MACHINESERVICECREATEREQUEST'].fields_by_name['ntp_server']._loaded_options = None _globals['_MACHINESERVICECREATEREQUEST'].fields_by_name['ntp_server']._serialized_options = b'\272H\005\222\001\002\020\n' - _globals['_MACHINESERVICECREATEREQUEST'].fields_by_name['role']._loaded_options = None - _globals['_MACHINESERVICECREATEREQUEST'].fields_by_name['role']._serialized_options = b'\272H\005\202\001\002\020\001' + _globals['_MACHINESERVICECREATEREQUEST'].fields_by_name['allocation_type']._loaded_options = None + _globals['_MACHINESERVICECREATEREQUEST'].fields_by_name['allocation_type']._serialized_options = b'\272H\005\202\001\002\020\001' _globals['_MACHINESERVICEUPDATEREQUEST'].fields_by_name['uuid']._loaded_options = None _globals['_MACHINESERVICEUPDATEREQUEST'].fields_by_name['uuid']._serialized_options = b'\272H\005r\003\260\001\001' _globals['_MACHINESERVICEUPDATEREQUEST'].fields_by_name['project']._loaded_options = None @@ -146,8 +146,8 @@ _globals['_MACHINEALLOCATION'].fields_by_name['ssh_public_keys']._serialized_options = b'\272H\016\222\001\013\0202\"\007r\005\020\001\030\200@' _globals['_MACHINEALLOCATION'].fields_by_name['userdata']._loaded_options = None _globals['_MACHINEALLOCATION'].fields_by_name['userdata']._serialized_options = b'\272H\006r\004\030\200\200\002' - _globals['_MACHINEALLOCATION'].fields_by_name['role']._loaded_options = None - _globals['_MACHINEALLOCATION'].fields_by_name['role']._serialized_options = b'\272H\005\202\001\002\020\001' + _globals['_MACHINEALLOCATION'].fields_by_name['allocation_type']._loaded_options = None + _globals['_MACHINEALLOCATION'].fields_by_name['allocation_type']._serialized_options = b'\272H\005\202\001\002\020\001' _globals['_MACHINEALLOCATION'].fields_by_name['dns_server']._loaded_options = None _globals['_MACHINEALLOCATION'].fields_by_name['dns_server']._serialized_options = b'\272H\005\222\001\002\020\003' _globals['_MACHINEALLOCATION'].fields_by_name['ntp_server']._loaded_options = None @@ -194,6 +194,10 @@ _globals['_MACHINENIC'].fields_by_name['name']._serialized_options = b'\272H\007r\005\020\002\030\200\001' _globals['_MACHINENIC'].fields_by_name['identifier']._loaded_options = None _globals['_MACHINENIC'].fields_by_name['identifier']._serialized_options = b'\272H\005r\003\030\200\001' + _globals['_MACHINENIC'].fields_by_name['vendor']._loaded_options = None + _globals['_MACHINENIC'].fields_by_name['vendor']._serialized_options = b'\272H\005r\003\030\200\001' + _globals['_MACHINENIC'].fields_by_name['model']._loaded_options = None + _globals['_MACHINENIC'].fields_by_name['model']._serialized_options = b'\272H\005r\003\030\200\001' _globals['_MACHINEBLOCKDEVICE'].fields_by_name['name']._loaded_options = None _globals['_MACHINEBLOCKDEVICE'].fields_by_name['name']._serialized_options = b'\272H\005r\003\030\200\001' _globals['_MACHINECHASSISIDENTIFYLEDSTATE'].fields_by_name['value']._loaded_options = None @@ -230,8 +234,8 @@ _globals['_MACHINEALLOCATIONQUERY'].fields_by_name['filesystem_layout']._serialized_options = b'\272H\007r\005\020\002\030\200\001' _globals['_MACHINEALLOCATIONQUERY'].fields_by_name['hostname']._loaded_options = None _globals['_MACHINEALLOCATIONQUERY'].fields_by_name['hostname']._serialized_options = b'\272H\007r\005\020\002\030\200\001' - _globals['_MACHINEALLOCATIONQUERY'].fields_by_name['role']._loaded_options = None - _globals['_MACHINEALLOCATIONQUERY'].fields_by_name['role']._serialized_options = b'\272H\005\202\001\002\020\001' + _globals['_MACHINEALLOCATIONQUERY'].fields_by_name['allocation_type']._loaded_options = None + _globals['_MACHINEALLOCATIONQUERY'].fields_by_name['allocation_type']._serialized_options = b'\272H\005\202\001\002\020\001' _globals['_MACHINENETWORKQUERY'].fields_by_name['prefixes']._loaded_options = None _globals['_MACHINENETWORKQUERY'].fields_by_name['prefixes']._serialized_options = b'\272HC\222\001@\">\272\001;\n\016valid_prefixes\022\026prefixes must be valid\032\021this.isIpPrefix()' _globals['_MACHINENETWORKQUERY'].fields_by_name['destination_prefixes']._loaded_options = None @@ -288,90 +292,90 @@ _globals['_MACHINESERVICE'].methods_by_name['List']._serialized_options = b'\312\363\030\003\001\002\003\340\363\030\002' _globals['_MACHINESERVICE'].methods_by_name['Delete']._loaded_options = None _globals['_MACHINESERVICE'].methods_by_name['Delete']._serialized_options = b'\312\363\030\002\001\002' - _globals['_IPPROTOCOL']._serialized_start=10598 - _globals['_IPPROTOCOL']._serialized_end=10699 - _globals['_MACHINESTATE']._serialized_start=10702 - _globals['_MACHINESTATE']._serialized_end=10877 - _globals['_MACHINEPROVISIONINGEVENTSTATE']._serialized_start=10880 - _globals['_MACHINEPROVISIONINGEVENTSTATE']._serialized_end=11103 - _globals['_MACHINELIVELINESS']._serialized_start=11106 - _globals['_MACHINELIVELINESS']._serialized_end=11292 - _globals['_MACHINEROLE']._serialized_start=11295 - _globals['_MACHINEROLE']._serialized_end=11424 + _globals['_IPPROTOCOL']._serialized_start=10840 + _globals['_IPPROTOCOL']._serialized_end=10941 + _globals['_MACHINESTATE']._serialized_start=10944 + _globals['_MACHINESTATE']._serialized_end=11119 + _globals['_MACHINEPROVISIONINGEVENTSTATE']._serialized_start=11122 + _globals['_MACHINEPROVISIONINGEVENTSTATE']._serialized_end=11345 + _globals['_MACHINELIVELINESS']._serialized_start=11348 + _globals['_MACHINELIVELINESS']._serialized_end=11534 + _globals['_MACHINEALLOCATIONTYPE']._serialized_start=11537 + _globals['_MACHINEALLOCATIONTYPE']._serialized_end=11709 _globals['_MACHINESERVICEGETREQUEST']._serialized_start=313 _globals['_MACHINESERVICEGETREQUEST']._serialized_end=405 _globals['_MACHINESERVICEGETRESPONSE']._serialized_start=407 _globals['_MACHINESERVICEGETRESPONSE']._serialized_end=488 _globals['_MACHINESERVICECREATEREQUEST']._serialized_start=491 - _globals['_MACHINESERVICECREATEREQUEST']._serialized_end=1533 - _globals['_MACHINESERVICECREATERESPONSE']._serialized_start=1535 - _globals['_MACHINESERVICECREATERESPONSE']._serialized_end=1619 - _globals['_MACHINESERVICEUPDATEREQUEST']._serialized_start=1622 - _globals['_MACHINESERVICEUPDATEREQUEST']._serialized_end=1914 - _globals['_MACHINESERVICEUPDATERESPONSE']._serialized_start=1916 - _globals['_MACHINESERVICEUPDATERESPONSE']._serialized_end=2000 - _globals['_MACHINESERVICELISTREQUEST']._serialized_start=2002 - _globals['_MACHINESERVICELISTREQUEST']._serialized_end=2120 - _globals['_MACHINESERVICELISTRESPONSE']._serialized_start=2122 - _globals['_MACHINESERVICELISTRESPONSE']._serialized_end=2206 - _globals['_MACHINESERVICEDELETEREQUEST']._serialized_start=2208 - _globals['_MACHINESERVICEDELETEREQUEST']._serialized_end=2303 - _globals['_MACHINESERVICEDELETERESPONSE']._serialized_start=2305 - _globals['_MACHINESERVICEDELETERESPONSE']._serialized_end=2389 - _globals['_MACHINE']._serialized_start=2392 - _globals['_MACHINE']._serialized_end=2969 - _globals['_MACHINESTATUS']._serialized_start=2972 - _globals['_MACHINESTATUS']._serialized_end=3264 - _globals['_MACHINECONDITION']._serialized_start=3267 - _globals['_MACHINECONDITION']._serialized_end=3428 - _globals['_MACHINEALLOCATION']._serialized_start=3431 - _globals['_MACHINEALLOCATION']._serialized_end=4330 - _globals['_MACHINEALLOCATIONNETWORK']._serialized_start=4332 - _globals['_MACHINEALLOCATIONNETWORK']._serialized_end=4457 - _globals['_FIREWALLRULES']._serialized_start=4460 - _globals['_FIREWALLRULES']._serialized_end=4604 - _globals['_FIREWALLEGRESSRULE']._serialized_start=4607 - _globals['_FIREWALLEGRESSRULE']._serialized_end=4870 - _globals['_FIREWALLINGRESSRULE']._serialized_start=4873 - _globals['_FIREWALLINGRESSRULE']._serialized_end=5230 - _globals['_MACHINENETWORK']._serialized_start=5233 - _globals['_MACHINENETWORK']._serialized_end=5775 - _globals['_MACHINEHARDWARE']._serialized_start=5778 - _globals['_MACHINEHARDWARE']._serialized_end=6029 - _globals['_METALCPU']._serialized_start=6031 - _globals['_METALCPU']._serialized_end=6155 - _globals['_METALGPU']._serialized_start=6157 - _globals['_METALGPU']._serialized_end=6233 - _globals['_MACHINENIC']._serialized_start=6236 - _globals['_MACHINENIC']._serialized_end=6450 - _globals['_MACHINEBLOCKDEVICE']._serialized_start=6452 - _globals['_MACHINEBLOCKDEVICE']._serialized_end=6522 - _globals['_MACHINECHASSISIDENTIFYLEDSTATE']._serialized_start=6524 - _globals['_MACHINECHASSISIDENTIFYLEDSTATE']._serialized_end=6632 - _globals['_MACHINEBIOS']._serialized_start=6634 - _globals['_MACHINEBIOS']._serialized_end=6747 - _globals['_MACHINERECENTPROVISIONINGEVENTS']._serialized_start=6750 - _globals['_MACHINERECENTPROVISIONINGEVENTS']._serialized_end=7089 - _globals['_MACHINEPROVISIONINGEVENT']._serialized_start=7091 - _globals['_MACHINEPROVISIONINGEVENT']._serialized_end=7213 - _globals['_MACHINEVPN']._serialized_start=7215 - _globals['_MACHINEVPN']._serialized_end=7336 - _globals['_MACHINEQUERY']._serialized_start=7339 - _globals['_MACHINEQUERY']._serialized_end=8274 - _globals['_MACHINEALLOCATIONQUERY']._serialized_start=8277 - _globals['_MACHINEALLOCATIONQUERY']._serialized_end=8711 - _globals['_MACHINENETWORKQUERY']._serialized_start=8714 - _globals['_MACHINENETWORKQUERY']._serialized_end=9125 - _globals['_MACHINENICQUERY']._serialized_start=9128 - _globals['_MACHINENICQUERY']._serialized_end=9486 - _globals['_MACHINEDISKQUERY']._serialized_start=9488 - _globals['_MACHINEDISKQUERY']._serialized_end=9577 - _globals['_MACHINEIPMIQUERY']._serialized_start=9580 - _globals['_MACHINEIPMIQUERY']._serialized_end=9833 - _globals['_MACHINEFRUQUERY']._serialized_start=9836 - _globals['_MACHINEFRUQUERY']._serialized_end=10484 - _globals['_MACHINEHARDWAREQUERY']._serialized_start=10486 - _globals['_MACHINEHARDWAREQUERY']._serialized_end=10596 - _globals['_MACHINESERVICE']._serialized_start=11427 - _globals['_MACHINESERVICE']._serialized_end=12013 + _globals['_MACHINESERVICECREATEREQUEST']._serialized_end=1589 + _globals['_MACHINESERVICECREATERESPONSE']._serialized_start=1591 + _globals['_MACHINESERVICECREATERESPONSE']._serialized_end=1675 + _globals['_MACHINESERVICEUPDATEREQUEST']._serialized_start=1678 + _globals['_MACHINESERVICEUPDATEREQUEST']._serialized_end=1970 + _globals['_MACHINESERVICEUPDATERESPONSE']._serialized_start=1972 + _globals['_MACHINESERVICEUPDATERESPONSE']._serialized_end=2056 + _globals['_MACHINESERVICELISTREQUEST']._serialized_start=2058 + _globals['_MACHINESERVICELISTREQUEST']._serialized_end=2176 + _globals['_MACHINESERVICELISTRESPONSE']._serialized_start=2178 + _globals['_MACHINESERVICELISTRESPONSE']._serialized_end=2262 + _globals['_MACHINESERVICEDELETEREQUEST']._serialized_start=2264 + _globals['_MACHINESERVICEDELETEREQUEST']._serialized_end=2359 + _globals['_MACHINESERVICEDELETERESPONSE']._serialized_start=2361 + _globals['_MACHINESERVICEDELETERESPONSE']._serialized_end=2445 + _globals['_MACHINE']._serialized_start=2448 + _globals['_MACHINE']._serialized_end=3025 + _globals['_MACHINESTATUS']._serialized_start=3028 + _globals['_MACHINESTATUS']._serialized_end=3320 + _globals['_MACHINECONDITION']._serialized_start=3323 + _globals['_MACHINECONDITION']._serialized_end=3484 + _globals['_MACHINEALLOCATION']._serialized_start=3487 + _globals['_MACHINEALLOCATION']._serialized_end=4442 + _globals['_MACHINEALLOCATIONNETWORK']._serialized_start=4444 + _globals['_MACHINEALLOCATIONNETWORK']._serialized_end=4569 + _globals['_FIREWALLRULES']._serialized_start=4572 + _globals['_FIREWALLRULES']._serialized_end=4716 + _globals['_FIREWALLEGRESSRULE']._serialized_start=4719 + _globals['_FIREWALLEGRESSRULE']._serialized_end=4982 + _globals['_FIREWALLINGRESSRULE']._serialized_start=4985 + _globals['_FIREWALLINGRESSRULE']._serialized_end=5342 + _globals['_MACHINENETWORK']._serialized_start=5345 + _globals['_MACHINENETWORK']._serialized_end=5887 + _globals['_MACHINEHARDWARE']._serialized_start=5890 + _globals['_MACHINEHARDWARE']._serialized_end=6141 + _globals['_METALCPU']._serialized_start=6143 + _globals['_METALCPU']._serialized_end=6267 + _globals['_METALGPU']._serialized_start=6269 + _globals['_METALGPU']._serialized_end=6345 + _globals['_MACHINENIC']._serialized_start=6348 + _globals['_MACHINENIC']._serialized_end=6650 + _globals['_MACHINEBLOCKDEVICE']._serialized_start=6652 + _globals['_MACHINEBLOCKDEVICE']._serialized_end=6722 + _globals['_MACHINECHASSISIDENTIFYLEDSTATE']._serialized_start=6724 + _globals['_MACHINECHASSISIDENTIFYLEDSTATE']._serialized_end=6832 + _globals['_MACHINEBIOS']._serialized_start=6834 + _globals['_MACHINEBIOS']._serialized_end=6947 + _globals['_MACHINERECENTPROVISIONINGEVENTS']._serialized_start=6950 + _globals['_MACHINERECENTPROVISIONINGEVENTS']._serialized_end=7289 + _globals['_MACHINEPROVISIONINGEVENT']._serialized_start=7291 + _globals['_MACHINEPROVISIONINGEVENT']._serialized_end=7413 + _globals['_MACHINEVPN']._serialized_start=7415 + _globals['_MACHINEVPN']._serialized_end=7536 + _globals['_MACHINEQUERY']._serialized_start=7539 + _globals['_MACHINEQUERY']._serialized_end=8474 + _globals['_MACHINEALLOCATIONQUERY']._serialized_start=8477 + _globals['_MACHINEALLOCATIONQUERY']._serialized_end=8953 + _globals['_MACHINENETWORKQUERY']._serialized_start=8956 + _globals['_MACHINENETWORKQUERY']._serialized_end=9367 + _globals['_MACHINENICQUERY']._serialized_start=9370 + _globals['_MACHINENICQUERY']._serialized_end=9728 + _globals['_MACHINEDISKQUERY']._serialized_start=9730 + _globals['_MACHINEDISKQUERY']._serialized_end=9819 + _globals['_MACHINEIPMIQUERY']._serialized_start=9822 + _globals['_MACHINEIPMIQUERY']._serialized_end=10075 + _globals['_MACHINEFRUQUERY']._serialized_start=10078 + _globals['_MACHINEFRUQUERY']._serialized_end=10726 + _globals['_MACHINEHARDWAREQUERY']._serialized_start=10728 + _globals['_MACHINEHARDWAREQUERY']._serialized_end=10838 + _globals['_MACHINESERVICE']._serialized_start=11712 + _globals['_MACHINESERVICE']._serialized_end=12298 # @@protoc_insertion_point(module_scope) diff --git a/python/metalstack/api/v2/machine_pb2.pyi b/python/metalstack/api/v2/machine_pb2.pyi index b7fe8bbb..268511f8 100644 --- a/python/metalstack/api/v2/machine_pb2.pyi +++ b/python/metalstack/api/v2/machine_pb2.pyi @@ -43,11 +43,11 @@ class MachineLiveliness(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): MACHINE_LIVELINESS_DEAD: _ClassVar[MachineLiveliness] MACHINE_LIVELINESS_UNKNOWN: _ClassVar[MachineLiveliness] -class MachineRole(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): +class MachineAllocationType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): __slots__ = () - MACHINE_ROLE_UNSPECIFIED: _ClassVar[MachineRole] - MACHINE_ROLE_MACHINE: _ClassVar[MachineRole] - MACHINE_ROLE_FIREWALL: _ClassVar[MachineRole] + MACHINE_ALLOCATION_TYPE_UNSPECIFIED: _ClassVar[MachineAllocationType] + MACHINE_ALLOCATION_TYPE_MACHINE: _ClassVar[MachineAllocationType] + MACHINE_ALLOCATION_TYPE_FIREWALL: _ClassVar[MachineAllocationType] IP_PROTOCOL_UNSPECIFIED: IPProtocol IP_PROTOCOL_TCP: IPProtocol IP_PROTOCOL_UDP: IPProtocol @@ -62,9 +62,9 @@ MACHINE_LIVELINESS_UNSPECIFIED: MachineLiveliness MACHINE_LIVELINESS_ALIVE: MachineLiveliness MACHINE_LIVELINESS_DEAD: MachineLiveliness MACHINE_LIVELINESS_UNKNOWN: MachineLiveliness -MACHINE_ROLE_UNSPECIFIED: MachineRole -MACHINE_ROLE_MACHINE: MachineRole -MACHINE_ROLE_FIREWALL: MachineRole +MACHINE_ALLOCATION_TYPE_UNSPECIFIED: MachineAllocationType +MACHINE_ALLOCATION_TYPE_MACHINE: MachineAllocationType +MACHINE_ALLOCATION_TYPE_FIREWALL: MachineAllocationType class MachineServiceGetRequest(_message.Message): __slots__ = ("uuid", "project") @@ -81,7 +81,7 @@ class MachineServiceGetResponse(_message.Message): def __init__(self, machine: _Optional[_Union[Machine, _Mapping]] = ...) -> None: ... class MachineServiceCreateRequest(_message.Message): - __slots__ = ("project", "uuid", "name", "description", "hostname", "partition", "size", "image", "filesystem_layout", "ssh_public_keys", "userdata", "labels", "networks", "ips", "placement_tags", "dns_server", "ntp_server", "role", "firewall_rules") + __slots__ = ("project", "uuid", "name", "description", "hostname", "partition", "size", "image", "filesystem_layout", "ssh_public_keys", "userdata", "labels", "networks", "ips", "placement_tags", "dns_server", "ntp_server", "allocation_type", "firewall_rules") PROJECT_FIELD_NUMBER: _ClassVar[int] UUID_FIELD_NUMBER: _ClassVar[int] NAME_FIELD_NUMBER: _ClassVar[int] @@ -99,7 +99,7 @@ class MachineServiceCreateRequest(_message.Message): PLACEMENT_TAGS_FIELD_NUMBER: _ClassVar[int] DNS_SERVER_FIELD_NUMBER: _ClassVar[int] NTP_SERVER_FIELD_NUMBER: _ClassVar[int] - ROLE_FIELD_NUMBER: _ClassVar[int] + ALLOCATION_TYPE_FIELD_NUMBER: _ClassVar[int] FIREWALL_RULES_FIELD_NUMBER: _ClassVar[int] project: str uuid: str @@ -118,9 +118,9 @@ class MachineServiceCreateRequest(_message.Message): placement_tags: _containers.RepeatedScalarFieldContainer[str] dns_server: _containers.RepeatedCompositeFieldContainer[_partition_pb2.DNSServer] ntp_server: _containers.RepeatedCompositeFieldContainer[_partition_pb2.NTPServer] - role: MachineRole + allocation_type: MachineAllocationType firewall_rules: FirewallRules - def __init__(self, project: _Optional[str] = ..., uuid: _Optional[str] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., hostname: _Optional[str] = ..., partition: _Optional[str] = ..., size: _Optional[str] = ..., image: _Optional[str] = ..., filesystem_layout: _Optional[str] = ..., ssh_public_keys: _Optional[_Iterable[str]] = ..., userdata: _Optional[str] = ..., labels: _Optional[_Union[_common_pb2.Labels, _Mapping]] = ..., networks: _Optional[_Iterable[_Union[MachineAllocationNetwork, _Mapping]]] = ..., ips: _Optional[_Iterable[str]] = ..., placement_tags: _Optional[_Iterable[str]] = ..., dns_server: _Optional[_Iterable[_Union[_partition_pb2.DNSServer, _Mapping]]] = ..., ntp_server: _Optional[_Iterable[_Union[_partition_pb2.NTPServer, _Mapping]]] = ..., role: _Optional[_Union[MachineRole, str]] = ..., firewall_rules: _Optional[_Union[FirewallRules, _Mapping]] = ...) -> None: ... + def __init__(self, project: _Optional[str] = ..., uuid: _Optional[str] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., hostname: _Optional[str] = ..., partition: _Optional[str] = ..., size: _Optional[str] = ..., image: _Optional[str] = ..., filesystem_layout: _Optional[str] = ..., ssh_public_keys: _Optional[_Iterable[str]] = ..., userdata: _Optional[str] = ..., labels: _Optional[_Union[_common_pb2.Labels, _Mapping]] = ..., networks: _Optional[_Iterable[_Union[MachineAllocationNetwork, _Mapping]]] = ..., ips: _Optional[_Iterable[str]] = ..., placement_tags: _Optional[_Iterable[str]] = ..., dns_server: _Optional[_Iterable[_Union[_partition_pb2.DNSServer, _Mapping]]] = ..., ntp_server: _Optional[_Iterable[_Union[_partition_pb2.NTPServer, _Mapping]]] = ..., allocation_type: _Optional[_Union[MachineAllocationType, str]] = ..., firewall_rules: _Optional[_Union[FirewallRules, _Mapping]] = ...) -> None: ... class MachineServiceCreateResponse(_message.Message): __slots__ = ("machine",) @@ -223,7 +223,7 @@ class MachineCondition(_message.Message): def __init__(self, state: _Optional[_Union[MachineState, str]] = ..., description: _Optional[str] = ..., issuer: _Optional[str] = ...) -> None: ... class MachineAllocation(_message.Message): - __slots__ = ("uuid", "meta", "name", "description", "created_by", "project", "image", "filesystem_layout", "networks", "hostname", "ssh_public_keys", "userdata", "role", "firewall_rules", "dns_server", "ntp_server", "vpn") + __slots__ = ("uuid", "meta", "name", "description", "created_by", "project", "image", "filesystem_layout", "networks", "hostname", "ssh_public_keys", "userdata", "allocation_type", "firewall_rules", "dns_server", "ntp_server", "vpn") UUID_FIELD_NUMBER: _ClassVar[int] META_FIELD_NUMBER: _ClassVar[int] NAME_FIELD_NUMBER: _ClassVar[int] @@ -236,7 +236,7 @@ class MachineAllocation(_message.Message): HOSTNAME_FIELD_NUMBER: _ClassVar[int] SSH_PUBLIC_KEYS_FIELD_NUMBER: _ClassVar[int] USERDATA_FIELD_NUMBER: _ClassVar[int] - ROLE_FIELD_NUMBER: _ClassVar[int] + ALLOCATION_TYPE_FIELD_NUMBER: _ClassVar[int] FIREWALL_RULES_FIELD_NUMBER: _ClassVar[int] DNS_SERVER_FIELD_NUMBER: _ClassVar[int] NTP_SERVER_FIELD_NUMBER: _ClassVar[int] @@ -253,12 +253,12 @@ class MachineAllocation(_message.Message): hostname: str ssh_public_keys: _containers.RepeatedScalarFieldContainer[str] userdata: str - role: MachineRole + allocation_type: MachineAllocationType firewall_rules: FirewallRules dns_server: _containers.RepeatedCompositeFieldContainer[_partition_pb2.DNSServer] ntp_server: _containers.RepeatedCompositeFieldContainer[_partition_pb2.NTPServer] vpn: MachineVPN - def __init__(self, uuid: _Optional[str] = ..., meta: _Optional[_Union[_common_pb2.Meta, _Mapping]] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., created_by: _Optional[str] = ..., project: _Optional[str] = ..., image: _Optional[_Union[_image_pb2.Image, _Mapping]] = ..., filesystem_layout: _Optional[_Union[_filesystem_pb2.FilesystemLayout, _Mapping]] = ..., networks: _Optional[_Iterable[_Union[MachineNetwork, _Mapping]]] = ..., hostname: _Optional[str] = ..., ssh_public_keys: _Optional[_Iterable[str]] = ..., userdata: _Optional[str] = ..., role: _Optional[_Union[MachineRole, str]] = ..., firewall_rules: _Optional[_Union[FirewallRules, _Mapping]] = ..., dns_server: _Optional[_Iterable[_Union[_partition_pb2.DNSServer, _Mapping]]] = ..., ntp_server: _Optional[_Iterable[_Union[_partition_pb2.NTPServer, _Mapping]]] = ..., vpn: _Optional[_Union[MachineVPN, _Mapping]] = ...) -> None: ... + def __init__(self, uuid: _Optional[str] = ..., meta: _Optional[_Union[_common_pb2.Meta, _Mapping]] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., created_by: _Optional[str] = ..., project: _Optional[str] = ..., image: _Optional[_Union[_image_pb2.Image, _Mapping]] = ..., filesystem_layout: _Optional[_Union[_filesystem_pb2.FilesystemLayout, _Mapping]] = ..., networks: _Optional[_Iterable[_Union[MachineNetwork, _Mapping]]] = ..., hostname: _Optional[str] = ..., ssh_public_keys: _Optional[_Iterable[str]] = ..., userdata: _Optional[str] = ..., allocation_type: _Optional[_Union[MachineAllocationType, str]] = ..., firewall_rules: _Optional[_Union[FirewallRules, _Mapping]] = ..., dns_server: _Optional[_Iterable[_Union[_partition_pb2.DNSServer, _Mapping]]] = ..., ntp_server: _Optional[_Iterable[_Union[_partition_pb2.NTPServer, _Mapping]]] = ..., vpn: _Optional[_Union[MachineVPN, _Mapping]] = ...) -> None: ... class MachineAllocationNetwork(_message.Message): __slots__ = ("network", "no_auto_acquire_ip") @@ -356,16 +356,22 @@ class MetalGPU(_message.Message): def __init__(self, vendor: _Optional[str] = ..., model: _Optional[str] = ...) -> None: ... class MachineNic(_message.Message): - __slots__ = ("mac", "name", "identifier", "neighbors") + __slots__ = ("mac", "name", "identifier", "vendor", "model", "speed", "neighbors") MAC_FIELD_NUMBER: _ClassVar[int] NAME_FIELD_NUMBER: _ClassVar[int] IDENTIFIER_FIELD_NUMBER: _ClassVar[int] + VENDOR_FIELD_NUMBER: _ClassVar[int] + MODEL_FIELD_NUMBER: _ClassVar[int] + SPEED_FIELD_NUMBER: _ClassVar[int] NEIGHBORS_FIELD_NUMBER: _ClassVar[int] mac: str name: str identifier: str + vendor: str + model: str + speed: int neighbors: _containers.RepeatedCompositeFieldContainer[MachineNic] - def __init__(self, mac: _Optional[str] = ..., name: _Optional[str] = ..., identifier: _Optional[str] = ..., neighbors: _Optional[_Iterable[_Union[MachineNic, _Mapping]]] = ...) -> None: ... + def __init__(self, mac: _Optional[str] = ..., name: _Optional[str] = ..., identifier: _Optional[str] = ..., vendor: _Optional[str] = ..., model: _Optional[str] = ..., speed: _Optional[int] = ..., neighbors: _Optional[_Iterable[_Union[MachineNic, _Mapping]]] = ...) -> None: ... class MachineBlockDevice(_message.Message): __slots__ = ("name", "size") @@ -458,22 +464,22 @@ class MachineQuery(_message.Message): def __init__(self, uuid: _Optional[str] = ..., name: _Optional[str] = ..., partition: _Optional[str] = ..., size: _Optional[str] = ..., rack: _Optional[str] = ..., labels: _Optional[_Union[_common_pb2.Labels, _Mapping]] = ..., allocation: _Optional[_Union[MachineAllocationQuery, _Mapping]] = ..., network: _Optional[_Union[MachineNetworkQuery, _Mapping]] = ..., nic: _Optional[_Union[MachineNicQuery, _Mapping]] = ..., disk: _Optional[_Union[MachineDiskQuery, _Mapping]] = ..., ipmi: _Optional[_Union[MachineIPMIQuery, _Mapping]] = ..., fru: _Optional[_Union[MachineFRUQuery, _Mapping]] = ..., hardware: _Optional[_Union[MachineHardwareQuery, _Mapping]] = ..., state: _Optional[_Union[MachineState, str]] = ...) -> None: ... class MachineAllocationQuery(_message.Message): - __slots__ = ("uuid", "name", "project", "image", "filesystem_layout", "hostname", "role") + __slots__ = ("uuid", "name", "project", "image", "filesystem_layout", "hostname", "allocation_type") UUID_FIELD_NUMBER: _ClassVar[int] NAME_FIELD_NUMBER: _ClassVar[int] PROJECT_FIELD_NUMBER: _ClassVar[int] IMAGE_FIELD_NUMBER: _ClassVar[int] FILESYSTEM_LAYOUT_FIELD_NUMBER: _ClassVar[int] HOSTNAME_FIELD_NUMBER: _ClassVar[int] - ROLE_FIELD_NUMBER: _ClassVar[int] + ALLOCATION_TYPE_FIELD_NUMBER: _ClassVar[int] uuid: str name: str project: str image: str filesystem_layout: str hostname: str - role: MachineRole - def __init__(self, uuid: _Optional[str] = ..., name: _Optional[str] = ..., project: _Optional[str] = ..., image: _Optional[str] = ..., filesystem_layout: _Optional[str] = ..., hostname: _Optional[str] = ..., role: _Optional[_Union[MachineRole, str]] = ...) -> None: ... + allocation_type: MachineAllocationType + def __init__(self, uuid: _Optional[str] = ..., name: _Optional[str] = ..., project: _Optional[str] = ..., image: _Optional[str] = ..., filesystem_layout: _Optional[str] = ..., hostname: _Optional[str] = ..., allocation_type: _Optional[_Union[MachineAllocationType, str]] = ...) -> None: ... class MachineNetworkQuery(_message.Message): __slots__ = ("networks", "prefixes", "destination_prefixes", "ips", "vrfs", "asns")