//nolint:golint package dcxAutohost import "encoding/json" type ( // IPBlock is the type that represents the output from the top_level_public_ip_blocks // DCX API call. SVI struct { ZoneNumber string `json:"zone_number,omitempty" bson:"zone_number,omitempty"` NetworkAddress string `json:"network_address,omitempty" bson:"network_address,omitempty"` PrefixLength int `json:"prefix_length,omitempty" bson:"prefix_length,omitempty"` VlanID int `json:"vlan_number,omitempty" bson:"vlan_number,omitempty"` EnvNumber string `json:"environment_number,omitempty" bson:"environment_number,omitempty"` } SVIResp struct { Name string `json:"name"` Leased bool `json:"leased"` Number string `json:"number"` NetworkSegmentServiceNumber string `json:"network_segment_service_number"` VlanNumber string `json:"vlan_number"` NetworkEnvironmentNumber string `json:"network_environment_number"` PublicIPBlocks []struct { Cidr string `json:"cidr"` } `json:"public_ip_blocks"` } ) // IPBlocksSVI method will create an SVI/network-segment in network architect. // // See: https://pages.github.rackspace.com/dcx/gateway/#/ip_blocks/createSvi func (a *Client) IPBlocksSVI(req SVI) (SVIResp, error) { var res SVIResp payload, err := json.Marshal(&req) if err != nil { return res, err } body, err := a.post("/ip_blocks/svi", payload) if err != nil { return res, err } if err = json.Unmarshal(body, &res); err != nil { return res, err } return res, nil }