From 1e4ca01709099d3e3fd5c965577b3a52bfc2127c Mon Sep 17 00:00:00 2001 From: MegaportPhilipBrowne Date: Mon, 21 Oct 2024 10:07:01 -0400 Subject: [PATCH] feat: mveLabel field for MVE and Max VXC Speed for port, mcr, and mve --- mcr_test.go | 2 ++ mcr_types.go | 1 + mve_test.go | 6 ++++-- mve_types.go | 2 ++ port_test.go | 3 ++- port_types.go | 1 + 6 files changed, 12 insertions(+), 3 deletions(-) diff --git a/mcr_test.go b/mcr_test.go index 01ba5bd..34eaf20 100644 --- a/mcr_test.go +++ b/mcr_test.go @@ -111,6 +111,7 @@ func (suite *MCRClientTestSuite) TestGetMCR() { CreatedBy: companyUid, Market: "US", PortSpeed: 1000, + MaxVXCSpeed: 1000, CompanyName: "Test Company", LocationDetails: &ProductLocationDetails{ Name: "Test Location", @@ -379,6 +380,7 @@ func (suite *MCRClientTestSuite) TestModifyMCR() { Cancelable: true, VXCPermitted: true, Virtual: true, + MaxVXCSpeed: 1000, CompanyUID: companyUid, UsageAlgorithm: "POST_PAID_HOURLY_SPEED_MCR2", AttributeTags: map[string]string{}, diff --git a/mcr_types.go b/mcr_types.go index a317765..2fd45a8 100644 --- a/mcr_types.go +++ b/mcr_types.go @@ -46,6 +46,7 @@ type MCR struct { MarketplaceVisibility bool `json:"marketplaceVisibility"` VXCPermitted bool `json:"vxcpermitted"` VXCAutoApproval bool `json:"vxcAutoApproval"` + MaxVXCSpeed int `json:"maxVxcSpeed"` SecondaryName string `json:"secondaryName"` LAGPrimary bool `json:"lagPrimary"` LAGID int `json:"lagId"` diff --git a/mve_test.go b/mve_test.go index b5f9fb9..b9cb89b 100644 --- a/mve_test.go +++ b/mve_test.go @@ -274,6 +274,7 @@ func (suite *MVEClientTestSuite) TestGetMVE() { MarketplaceVisibility: false, VXCPermitted: true, VXCAutoApproval: false, + MaxVXCSpeed: 10000, CompanyUID: companyUid, CompanyName: "test-company", ContractStartDate: startDate, @@ -322,8 +323,9 @@ func (suite *MVEClientTestSuite) TestGetMVE() { }, }, }, - Vendor: "PALO_ALTO", - Size: "SMALL", + Vendor: "PALO_ALTO", + Size: "SMALL", + MVELabel: "MVE 2/8", NetworkInterfaces: []*MVENetworkInterface{ { VLAN: 0, diff --git a/mve_types.go b/mve_types.go index 02d3918..62f2e59 100644 --- a/mve_types.go +++ b/mve_types.go @@ -183,6 +183,7 @@ type MVE struct { LocationID int `json:"locationId"` UsageAlgorithm string `json:"usageAlgorithm"` MarketplaceVisibility bool `json:"marketplaceVisibility"` + MaxVXCSpeed int `json:"maxVxcSpeed"` VXCPermitted bool `json:"vxcpermitted"` VXCAutoApproval bool `json:"vxcAutoApproval"` SecondaryName string `json:"secondaryName"` @@ -201,6 +202,7 @@ type MVE struct { Resources *MVEResources `json:"resources"` Vendor string `json:"vendor"` Size string `json:"mveSize"` + MVELabel string `json:"mveLabel"` DiversityZone string `json:"diversityZone"` NetworkInterfaces []*MVENetworkInterface `json:"vnics"` LocationDetails *ProductLocationDetails `json:"locationDetail"` diff --git a/port_test.go b/port_test.go index 82f6d3e..6c0eeb8 100644 --- a/port_test.go +++ b/port_test.go @@ -260,6 +260,7 @@ func (suite *PortClientTestSuite) TestGetPort() { VXCPermitted: true, VXCAutoApproval: false, Virtual: false, + MaxVXCSpeed: 10000, BuyoutPort: false, CompanyName: "test-company", CompanyUID: companyUid, @@ -284,7 +285,7 @@ func (suite *PortClientTestSuite) TestGetPort() { "message": "Found Product 36b3f68e-2f54-4331-bf94-f8984449365f", "terms": "This data is subject to the Acceptable Use Policy https://www.megaport.com/legal/acceptable-use-policy", "data": { - "productId":999999,"productUid":"36b3f68e-2f54-4331-bf94-f8984449365f","productName":"test-port","productType":"megaport","provisioningStatus":"CONFIGURED","createDate":1706104800000,"createdBy":"","portSpeed":10000,"terminateDate":1737727200000,"liveDate":1737728200000,"market":"US","locationId":226,"usageAlgorithm":"","marketplaceVisibility":false,"vxcpermitted":true,"vxcAutoApproval":false,"secondaryName":"test-secondary-name","lagPrimary":false,"lagId":0,"aggregationId":0,"companyUid":"32df7107-fdca-4c2a-8ccb-c6867813b3f2","companyName":"test-company","contractStartDate":1706104800000,"contractEndDate":1737727200000,"contractTermMonths":12,"attributeTags":null,"virtual":false,"buyoutPort":false,"locked":false,"adminLocked":false,"cancelable":true,"locationDetail":{"name":"Test Location","city":"Atlanta","metro":"Atlanta","country":"USA"},"resources":{"interface":{"demarcation":"","description":"","id":0,"loa_template":"","media":"","name":"","port_speed":0,"resource_name":"","resource_type":"","up":0}} + "productId":999999,"productUid":"36b3f68e-2f54-4331-bf94-f8984449365f","productName":"test-port","productType":"megaport","provisioningStatus":"CONFIGURED","maxVxcSpeed":10000,"createDate":1706104800000,"createdBy":"","portSpeed":10000,"terminateDate":1737727200000,"liveDate":1737728200000,"market":"US","locationId":226,"usageAlgorithm":"","marketplaceVisibility":false,"vxcpermitted":true,"vxcAutoApproval":false,"secondaryName":"test-secondary-name","lagPrimary":false,"lagId":0,"aggregationId":0,"companyUid":"32df7107-fdca-4c2a-8ccb-c6867813b3f2","companyName":"test-company","contractStartDate":1706104800000,"contractEndDate":1737727200000,"contractTermMonths":12,"attributeTags":null,"virtual":false,"buyoutPort":false,"locked":false,"adminLocked":false,"cancelable":true,"locationDetail":{"name":"Test Location","city":"Atlanta","metro":"Atlanta","country":"USA"},"resources":{"interface":{"demarcation":"","description":"","id":0,"loa_template":"","media":"","name":"","port_speed":0,"resource_name":"","resource_type":"","up":0}} } }` suite.mux.HandleFunc(fmt.Sprintf("/v2/product/%s", productUid), func(w http.ResponseWriter, r *http.Request) { diff --git a/port_types.go b/port_types.go index a34c0d5..3019267 100644 --- a/port_types.go +++ b/port_types.go @@ -43,6 +43,7 @@ type Port struct { LocationID int `json:"locationId"` UsageAlgorithm string `json:"usageAlgorithm"` MarketplaceVisibility bool `json:"marketplaceVisibility"` + MaxVXCSpeed int `json:"maxVxcSpeed"` VXCPermitted bool `json:"vxcpermitted"` VXCAutoApproval bool `json:"vxcAutoApproval"` SecondaryName string `json:"secondaryName"`