diff --git a/vxc_types.go b/vxc_types.go index e12193f..8b17b31 100644 --- a/vxc_types.go +++ b/vxc_types.go @@ -442,15 +442,16 @@ type CSPConnectionAWSHC struct { // CSPConnectionAzure represents the configuration of a CSP connection for Azure ExpressRoute. type CSPConnectionAzure struct { CSPConnectionConfig - ConnectType string `json:"connectType"` - ResourceName string `json:"resource_name"` - ResourceType string `json:"resource_type"` - Bandwidth int `json:"bandwidth"` - Managed bool `json:"managed"` - Megaports []CSPConnectionAzureMegaport `json:"megaports"` - Ports []CSPConnectionAzurePort `json:"ports"` - ServiceKey string `json:"service_key"` - VLAN int `json:"vlan"` + ConnectType string `json:"connectType"` + ResourceName string `json:"resource_name"` + ResourceType string `json:"resource_type"` + Bandwidth int `json:"bandwidth"` + Managed bool `json:"managed"` + Megaports []CSPConnectionAzureMegaport `json:"megaports"` + Ports []CSPConnectionAzurePort `json:"ports"` + ServiceKey string `json:"service_key"` + VLAN int `json:"vlan"` + Peers []PartnerOrderAzurePeeringConfig `json:"peers"` } // CSPConnectionAzureMegaport represents the configuration of a CSP connection for Azure ExpressRoute megaport. @@ -507,7 +508,17 @@ type CSPConnectionVirtualRouter struct { // CSPConnectionVirtualRouterInterface represents the configuration of a CSP connection for Virtual Router interface. type CSPConnectionVirtualRouterInterface struct { - IPAddresses []string `json:"ipAddresses"` + IPAddresses []string `json:"ipAddresses"` + IPRoutes []IpRoute `json:"ipRoutes"` + BGPConnections []BgpConnectionConfig `json:"bgpConnections"` + NatIPAddresses []string `json:"natIpAddresses"` + BFD BfdConfig `json:"bfd"` +} + +type CSPConnectionOracle struct { + CSPConnectionConfig + ConnectType string `json:"connectType"` + VirtualCircuitId string `json:"virtualCircuitId"` } // CSPConnectionTransit represents the configuration of a CSP connection for a Transit VXC. @@ -680,6 +691,16 @@ func (c *CSPConnection) UnmarshalJSON(data []byte) error { return err } c.CSPConnection = append(c.CSPConnection, transit) + case "ORACLE": + marshaled, err := json.Marshal(cn) + if err != nil { + return err + } + oracle := CSPConnectionOracle{} + if err := json.Unmarshal(marshaled, &oracle); err != nil { + return err + } + c.CSPConnection = append(c.CSPConnection, oracle) default: // Any other cases will be marshaled into a map[string]interface{} marshaled, err := json.Marshal(cn) if err != nil {