package netboxgo import ( "context" "fmt" "net/http" "time" ) type VirtualMachinesService service // NewVirtualMachine is used to create new VirtualizationVirtualMachines type NewVirtualMachine struct { ID int `json:"id"` Name string `json:"name"` Status struct { Label string `json:"label"` Value int `json:"value"` } `json:"status"` Site struct { ID int `json:"id"` URL string `json:"url"` Name string `json:"name"` Slug string `json:"slug"` } `json:"site"` Cluster struct { ID int `json:"id"` URL string `json:"url"` Name string `json:"name"` VirtualmachineCount int `json:"virtualmachine_count"` } `json:"cluster"` Role struct { ID int `json:"id"` URL string `json:"url"` Name string `json:"name"` Slug string `json:"slug"` DeviceCount int `json:"device_count"` VirtualmachineCount int `json:"virtualmachine_count"` } `json:"role"` Tenant struct { ID int `json:"id"` URL string `json:"url"` Name string `json:"name"` Slug string `json:"slug"` } `json:"tenant"` Platform struct { ID int `json:"id"` URL string `json:"url"` Name string `json:"name"` Slug string `json:"slug"` DeviceCount int `json:"device_count"` VirtualmachineCount int `json:"virtualmachine_count"` } `json:"platform"` PrimaryIP struct { ID int `json:"id"` URL string `json:"url"` Family int `json:"family"` Address string `json:"address"` } `json:"primary_ip"` PrimaryIP4 struct { ID int `json:"id"` URL string `json:"url"` Family int `json:"family"` Address string `json:"address"` } `json:"primary_ip4"` PrimaryIP6 struct { ID int `json:"id"` URL string `json:"url"` Family int `json:"family"` Address string `json:"address"` } `json:"primary_ip6"` Vcpus int `json:"vcpus"` Memory int `json:"memory"` Disk int `json:"disk"` Comments string `json:"comments"` LocalContextData string `json:"local_context_data"` Tags []string `json:"tags"` CustomFields struct{} `json:"custom_fields"` ConfigContext struct { AdditionalProp1 string `json:"additionalProp1"` AdditionalProp2 string `json:"additionalProp2"` AdditionalProp3 string `json:"additionalProp3"` } `json:"config_context"` Created string `json:"created"` LastUpdated time.Time `json:"last_updated"` } const virtualMachinesPath = "/virtualization/virtual-machines" // Create a virtual-machine func (s *VirtualMachinesService) Create(ctx context.Context, c *NewVirtualMachine) error { var err error var req *http.Request req, err = s.client.newRequest(ctx, "POST", virtualMachinesPath, "", c) if err != nil { return fmt.Errorf("unable to create request: %w", err) } _, err = s.client.do(req, nil) if err != nil { return fmt.Errorf("unable to do request: %w", err) } return nil }